1 2006-04-17 Roger Sayle <roger@eyesopen.com>
3 * expr.c (expand_assignment): Optimize away no-op moves where the
4 source and destination are equal and have no side-effects.
6 2006-04-17 Richard Guenther <rguenther@suse.de>
9 * reload.c (push_reload): Guard calls to get_secondary_mem
12 2006-04-16 Kazu Hirata <kazu@codesourcery.com>
14 * alias.c (reg_base_value, old_reg_base_value): Change the
15 type to VEC(rtx,gc) *.
16 (REG_BASE_VALUE, find_base_value, record_set,
17 init_alias_analysis): Use VEC instead of VARRAY.
19 * alias.c (alias_sets): Change the type to
20 VEC(alias_set_entry,gc) *.
21 (get_alias_set_entry, new_alias_set, record_alias_subset): Use
22 VEC instead of VARRAY.
23 (last_alias_set): Remove.
25 * cgraph.h (cgraph_edge_p): New.
26 Update the prototype of cgraph_function_versioning.
27 * cgraphunit.c (cgraph_copy_node_for_versioning,
28 cgraph_function_versioning): Use VEC instead of VARRAY.
29 * ipa-cp.c (ipcp_insert_stage): Likewise.
31 2006-04-16 Roger Sayle <roger@eyesopen.com>
34 * fold-const.c (fold_ternary): When converting "A ? B : C" into either
35 "A op B" or "A op C", we may need to convert A to the type of B and C.
37 2006-04-16 Adam Nemet <anemet@caviumnetworks.com>
39 * target.h (struct gcc_target): Add mode_rep_extended.
40 * rtlanal.c (num_sign_bit_copies_in_rep): New global.
41 (init_num_sign_bit_copies_in_rep): Initialize it using
43 (truncate_to_mode): Use it.
44 (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
45 * targhooks.h (default_mode_rep_extended): Declare it.
46 * targhooks.c (default_mode_rep_extended): Define it.
47 * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to
48 default_mode_rep_extended.
49 (TARGET_INITIALIZER): Include it.
50 * doc/tm.texi (Misc): Document it.
51 * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
52 (mips_truncated_to_mode): New function.
54 2006-04-16 Roger Sayle <roger@eyesopen.com>
57 * expr.c (compress_float_constant): Copy the narrow constant into
58 a new pseudo before extending it to its final width.
60 2006-04-16 Roger Sayle <roger@eyesopen.com>
61 Andrew Pinski <pinskia@gcc.gnu.org>
62 Dale Johannesen <dalej@apple.com>
65 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
66 special case code to implement V8HImode and V16QImode with SSE2.
68 2006-04-15 Roger Sayle <roger@eyesopen.com>
70 * config/i386/i386.c (ix86_va_start): Ensure all integer constant
71 trees are constructed with a suitable tree type.
73 2006-04-15 Roger Sayle <roger@eyesopen.com>
75 * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
76 (integer_onep): Likewise.
77 (integer_all_onesp): Likewise.
78 (integer_pow2p): Likewise.
79 (integer_nonzerop): Likewise.
80 (real_zerop): Likewise.
81 (real_onep): Likewise.
82 (real_twop): Likewise.
83 (real_minus_onep): Likewise.
84 (int_size_in_bytes): Likewise.
85 (host_integerp): Likewise.
87 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
89 * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
90 jump.c, mips-tfile.c, omp-low.c, sched-int.h,
91 tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
93 * tree-ssa-structalias.h (alias_info): Remove num_references.
95 2006-04-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
97 * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
98 (output_bvb patterns): Likewise.
99 * pa.c (output_bb): Use 'bb' insn for long branch case.
100 (output_bvb): Likewise use '{bvb|bb}' for long branch case.
101 (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
102 1. Correct length operand for alternatives 1 and 2.
103 (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
104 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3.
106 2006-04-14 Roger Sayle <roger@eyesopen.com>
108 * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
109 is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
110 were accidentally reverted by r112959.
112 2006-04-15 Jakub Jelinek <jakub@redhat.com>
115 * except.h (eh_region_outermost): New prototype.
116 * except.c (eh_region_outermost): New function.
117 * tree-cfg.c (find_outermost_region_in_block): Use it.
119 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
121 * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
123 * reload1.c (reg_equiv_memory_loc_varray): Rename to
124 reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *.
125 (init_reload, reload): Use VEC instead of VARRAY.
126 * reload.h: Update the prototype for
127 reg_equiv_memory_loc_varray.
129 2006-04-14 Alexey Starovoytov <alexey.starovoytov@sun.com>
130 Eric Botcazou <ebotcazou@libertysurf.fr>
132 * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
135 2005-04-13 Uros Bizjak <uros@kss-loka.si>
138 * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
139 to expand fallback builtin function call.
141 2006-04-14 Alan Modra <amodra@bigpond.net.au>
144 * builtins.c: (expand_builtin_memset): Stabilize args before expansion
145 and emit libcall here in case the builtin fails.
146 (expand_builtin_strcmp): Always emit the libcall here on failure.
148 2006-04-14 Kazu Hirata <kazu@codesourcery.com>
150 * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
151 * flow.c (reg_n_info): Change the type to
152 VEC(reg_info_p,heap) *.
153 * regclass.c (allocate_reg_info, free_reg_info): Use VEC
155 * regs.h (reg_info_p): New.
156 (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
157 REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
158 REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
161 2006-04-13 Eric Botcazou <ebotcazou@adacore.com>
163 * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
165 * params.h (MAX_SCHED_READY_INSNS): New macro.
166 * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
167 past MAX_SCHED_READY_INSNS during the first scheduling pass.
168 (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
169 the ready list for 1 cycle during the first scheduling pass.
170 * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
172 2006-04-13 Richard Henderson <rth@redhat.com>
175 * gimple-low.c (lower_omp_directive): Remove dead code.
176 (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
177 * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
178 * omp-low.c (struct omp_region): Move to tree-flow.h.
179 (root_omp_region): Export.
180 (omp_regions, lookup_omp_region): Remove.
181 (determine_parallel_type): Update for struct omp_region changes.
182 (dump_omp_region): Dump regions with block numbers.
183 (new_omp_region): Take type and block instead of stmt; malloc
185 (free_omp_region_1, free_omp_regions): New.
186 (expand_parallel_call): Take entry_stmt as argument; update for
187 changes to omp_region.
188 (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
189 (remove_exit_barriers): New.
190 (expand_omp_parallel): Update for struct omp_region changes.
191 (expand_omp_synch): Likewise.
192 (expand_omp): Likewise.
193 (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
194 (expand_omp_for_static_chunk): Likewise.
195 (expand_omp_for): Likewise.
196 (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
197 (expand_omp_sections): Similarly, with GOMP_sections_end.
198 (expand_omp_single): New.
199 (build_omp_regions_1): Update for OMP_CONTINUE.
200 (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
201 (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
202 OMP_SECTIONS_SECTIONS.
203 (lower_omp_single_simple): Don't emit barrier here.
204 (lower_omp_single_copy): Likewise.
205 (lower_omp_single): Fix bindings, and lower to straightline now.
206 (lower_omp_master, lower_omp_ordered): Likewise.
207 (lower_omp_critical): Likewise.
208 (lower_omp_for): Likewise. Emit OMP_CONTINUE.
209 * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
210 omp edges, free it afterward.
211 (make_omp_sections_edges): Remove.
212 (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
213 (move_stmt_r): Handle OMP_CONTINUE.
214 * tree-flow.h (struct omp_region): Move from omp-low.c. Switch
215 statement pointers to basic blocks. Add type member.
216 (root_omp_region, new_omp_region, free_omp_regions): Declare.
217 * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
218 * tree-inline.c (estimate_num_insns_1): Likewise.
219 * tree-pretty-print.c (dump_generic_node): Likewise.
220 * tree-ssa-operands.c (get_expr_operands): Likewise.
221 * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
222 (OMP_RETURN): Rename from OMP_RETURN_EXPR.
224 * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
225 (OMP_SECTIONS_SECTIONS): Remove.
226 (OMP_SECTION_LAST): New.
227 (OMP_RETURN_NOWAIT): New.
229 2006-04-13 Roger Sayle <roger@eyesopen.com>
231 * fold-const.c (native_encode_vector, native_interpret_real):
232 Correct obvious mistakes in the previous check-in.
234 2006-04-13 Roger Sayle <roger@eyesopen.com>
236 * fold-const.c (native_encode_expr): New function to encode
237 the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
238 or VECTOR_CST into a specified buffer.
239 (native_encode_int): New function.
240 (native_encode_real): New function.
241 (native_encode_complex): New function.
242 (native_encode_vector): New function.
243 (native_interpret_expr): Inverse of native_encode_expr to convert
244 a target representation into an INTEGER_CST, REAL_CST etc...
245 (native_interpret_int): New function.
246 (native_interpret_real): New function.
247 (native_interpret_complex): New function.
248 (native_interpret_vector): New function.
249 (fold_view_convert_expr): New function to constant fold/evaluate
250 a VIEW_CONVERT_EXPR of a suitable constant expression.
251 (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
252 Change call of build1 to fold_build1 when constructing a
255 2006-04-13 Paolo Bonzini <bonzini@gnu.org>
256 Ulrich Weigand <uweigand@de.ibm.com>
259 * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
262 2006-04-13 Alan Modra <amodra@bigpond.net.au>
265 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
266 optimize to lo_sum for DFmode if !TARGET_FPRS.
268 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
270 * tree-ssa-alias.c (set_initial_properties, init_alias_info,
271 delete_alias_info, compute_flow_sensitive_aliasing,
272 group_aliases): Use VEC instead of VARRAY.
273 * tree-ssa-structalias.c (update_alias_info): Likewise.
274 * tree-ssa-structalias.h (alias_info): Change the type of
275 processed_ptrs to VEC(tree,heap) *.
277 2006-04-12 J"orn Rennecke <joern.rennecke@st.com>
280 * config/sh/lib1funcs.h: New file, broken out of:
281 * config/sh/lib1funcs.asm.
282 * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
284 * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
285 * config/sh/lib1funcs-Os-4-200.asm: New file.
286 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
287 * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
288 (EXTRA_MULTILIB_PARTS): Include it.
289 ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
290 ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
291 * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
292 * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
295 2006-04-12 Kazu Hirata <kazu@codesourcery.com>
297 * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
298 * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
299 tpa_compact, root_var_init, type_var_init): Use VEC instead of
301 * tree-ssa-live.h: Include vecprim.h.
302 (tree_partition_associator_d): Change the type of
303 first_partition to VEC(int,heap) *.
304 (tpa_first_partition): Use VEC instead of VARRAY.
306 * Makefile.in (GTFILES): Move functions.h after tree.h.
307 * function.c (reset_block_changes, record_block_change,
308 check_block_change, free_block_changes): Use VEC instead of
310 * function.h (function): Change the type of
311 ib_boundaries_block to VEC(tree,gc) *.
312 * tree-inline.c (copy_cfg_body): Initialize
313 ib_boundaries_block to NULL instead of (varray_type) 0.
315 2006-04-12 Roger Sayle <roger@eyesopen.com>
317 * expr.c (emit_group_store): Correct operand order in call to
318 subreg_lowpart_offset. Always create paradoxical SUBREGs with
319 a SUBREG_BYTE of zero.
321 2006-04-12 Richard Guenther <rguenther@suse.de>
323 * profile.c (compute_branch_probabilities): Remove code
324 encapsulated in !ir_type (), which are remanents of the
325 removed RTL profiling code.
326 * rtl-profile.c: Remove.
328 2006-04-12 Alan Modra <amodra@bigpond.net.au>
330 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
331 magic NULL_RTX comment.
332 (function_arg): Store entire fp arg to mem if any part should go
334 (rs6000_arg_partial_bytes): Adjust for above change.
336 2006-04-11 Roger Sayle <roger@eyesopen.com>
338 * dwarf2out.c (output_call_frame_info): Create debug_frame_section
339 if it hasn't been initialized by dwarf2out_init.
341 2006-04-11 John David Anglin <dava.anglin@nrc-cnrc.gc.ca>
343 * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
344 symbolic constants in branch patterns.
346 2006-04-11 Roger Sayle <roger@eyesopen.com>
348 * caller-save.c: #include "addresses.h" after #include "tm_p.h".
350 2006-04-11 Richard Sandiford <richard@codesourcery.com>
352 PR rtl-optimization/27073
353 * gcse.c (try_replace_reg): Revert last change. Continue to search
354 for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
357 2006-04-11 Eric Botcazou <ebotcazou@libertysurf.fr>
359 * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
360 aggregate types other than record and union types.
361 (function_arg): Likewise.
362 (function_arg_pass_by_reference): In 64-bit mode, return 0 for
364 (function_value): In 64-bit mode, return objects that require it
367 2006-04-11 Roger Sayle <roger@eyesopen.com>
369 * dwarf2out.c (premark_used_types): Remove problematic prototype.
371 2006-04-11 Jakub Jelinek <jakub@redhat.com>
373 * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
375 2006-04-03 Jeff Law <law@redhat.com>
378 * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
379 alias information too.
381 2006-04-10 Mike Frysinger <vapier@gentoo.org>
383 * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
385 2006-04-10 Aldy Hernandez <aldyh@redhat.com>
388 * dwarf2out.c (struct die_struct): Add die_perennial_p field.
389 (premark_used_types_helper): New.
390 (premark_used_types): New.
391 (gen_subprogram_die): Call premark_used_types.
392 (prune_unused_types_walk): Do not prune perennial dies.
393 * function.c (used_types_insert): New.
394 * function.h (struct function): Add used_types_hash field.
395 (used_types_insert): Add prototype.
396 * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
397 * c-parser.c (c_parser_cast_expression): Save casted types in used
400 2006-04-11 Mark Mitchell <mark@codesourcery.com>
403 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
404 rs6000_explicit_options.float_gprs.
406 2006-04-10 Roger Sayle <roger@eyesopen.com>
408 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
409 from ix86_expand_vector_init_low_nonzero. Take an additional
410 one_var argument indicating which element is non-zero. Support
411 one_var != 0 for V4SFmode and V4SImode by permuting the result.
412 (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
413 with one_var instead of ix86_expand_vector_init_low_nonzero.
415 2006-04-10 Kazu Hirata <kazu@codesourcery.com>
417 * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
418 tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
419 global.o, cfglayout.o, lambda-code.o, reg-stack.o,
420 build/genextract.o): Depend on vecprim.h.
421 * cfglayout.c, df-problems.c, function.c, genextract.c,
422 global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
423 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
427 2006-04-10 Geoffrey Keating <geoffk@apple.com>
429 * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
430 Declare VECs of this type.
431 (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
432 (remove_children): Delete.
433 (add_dwarf_attr): Use VEC routines.
434 (add_AT_flag): Update for changes to add_dwarf_attr.
435 (add_AT_int): Likewise.
436 (add_AT_unsigned): Likewise.
437 (add_AT_long_long): Likewise.
438 (add_AT_vec): Likewise.
439 (add_AT_string): Likewise.
440 (add_AT_die_ref): Likewise.
441 (add_AT_fde_ref): Likewise.
442 (add_AT_loc): Likewise.
443 (add_AT_loc_list): Likewise.
444 (add_AT_addr): Likewise.
445 (add_AT_lbl_id): Likewise.
446 (add_AT_lineptr): Likewise.
447 (add_AT_macptr): Likewise.
448 (add_AT_offset): Likewise.
449 (add_AT_range_list): Likewise.
450 (get_AT): Use VEC_iterate.
451 (remove_AT): Use VEC_ordered_remove.
452 (free_die): Fold remove_children into here; have it use VEC_iterate.
453 (print_die): Use VEC_iterate on attrs.
454 (reverse_die_lists): Don't reverse attr lists.
455 (die_checksum): Use VEC_iterate on attrs.
456 (same_die_p): Likewise.
457 (output_location_lists): Likewise.
458 (build_abbrev_table): Likewise.
459 (size_of_die): Likewise.
460 (unmark_all_dies): Likewise.
461 (output_abbrev_section): Likewise.
462 (output_die): Likewise.
463 (prune_unused_types_walk_attribs): Likewise.
465 2006-04-10 Eric Botcazou <ebotcazou@libertysurf.fr>
467 * doc/install.texi (*-*-solaris2*): Point to the configure page.
469 2006-04-10 Jakub Jelinek <jakub@redhat.com>
472 * dwarf2out.c (is_symbol_die): Return true also for namespaces.
474 2006-04-09 Roger Sayle <roger@eyesopen.com>
476 * expr.c (store_constructor): Don't bother clearing target if
477 we're about to assign a vector to it using vec_init_optab.
479 2006-04-10 Daniel Berlin <dberlin@dberlin.org>
481 * tree-ssa-alias.c (lhs_may_store_to): New function.
482 (recalculate_used_alone): Handle LHS of calls.
484 2006-04-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
488 * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
489 * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a.
490 (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here.
491 (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
492 (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
493 (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
494 section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
495 stubs. Add ".align 8" directives before all ".dword" directives.
496 (GTHREAD_USE_WEAK): Revise comment.
497 (TARGET_ATTRIBUTE_WEAK): Define.
498 * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
499 dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
500 * stublib.c: New file.
505 * pa.md (cbranch patterns): Revise arguments used in calls to
506 output_cbranch, output_bb and output_bvd. Add long branch length
508 (fbranch patterns): Handle long branches.
509 (jump): Revise length check. Revise arguments for output_lbranch call.
510 Add long branch length attributes.
511 (decrement_and_branch_until_zero): Add long branch length attributes.
512 (output_movb, output_parallel_addb and output_parallel_movb patterns):
513 Likewise. Revise arguments for output_parallel_addb and
514 output_parallel_movb calls.
515 * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
516 output_parallel_movb and output_parallel_addb): Update prototypes.
517 * pa.c (output_cbranch): Revise arguments. Correct handling of
518 nullification in long branches.
519 (output_lbranch): Add new argument to control extraction of delay
521 (output_bb): Handle long branches.
522 (output_bvb, output_dbra, output_movb, output_parallel_movb,
523 output_parallel_addb): Likewise.
525 2006-04-09 Richard Sandiford <richard@codesourcery.com>
527 PR rtl-optimization/27073
528 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
531 2006-04-08 Daniel Berlin <dberlin@dberlin.org>
533 * tree.h (tree_memory_tag): Add old_used_alone.
534 (SMT_OLD_USED_ALONE): New macro.
535 * tree-ssa-alias.c (recalculate_used_alone): Stop
536 marking things for renaming unnecessarily.
538 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
540 * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
541 config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
542 config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
543 haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
544 sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
545 tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
546 tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow
547 spelling convensions.
548 * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
549 doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
550 typos. Follow spelling conventions.
552 2006-04-07 DJ Delorie <dj@redhat.com>
554 * config/m32c/m32c.c (m32c_function_arg): Structures are always
556 (m32c_init_cumulative_args): When a function returns a structure,
557 always pass the pointer to that return area on the stack.
558 (m32c_function_arg_advance): Don't increment the parameter number
559 if we're processing the returned structure pointer.
560 (pushm_info): Reverse order of registers.
562 2006-04-07 Sebastian Pop <pop@cri.ensmp.fr>
564 * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
565 assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
566 number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
567 estimate_numbers_of_iterations_loop): Use build_int_cst instead of
569 * tree-chrec.c (chrec_fold_multiply_poly_poly,
570 chrec_fold_multiply): Same.
571 * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
572 force_expr_to_var_cost): Same.
573 * tree-mudflap.c (mf_xform_derefs_1): Same.
574 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
576 2006-04-07 David Edelsohn <edelsohn@gnu.org>
578 * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
579 treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra
582 2006-04-07 Jan Hubicka <jh@suse.cz>
584 * ipa-inline.c (cgraph_early_inlining): Collect garbage.
586 2006-04-07 Richard Guenther <rguenther@suse.de>
588 PR tree-optimization/26135
589 * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
590 loads for store copy-prop.
591 (copy_prop_visit_stmt): Likewise.
593 2006-04-05 Robert Millan <robertmh@gnu.org>
595 * gcc/config/i386/linux.h: Add a comment to mark macros that are
596 being overriden in config/k*bsd-gnu.h.
597 * gcc/config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
599 * gcc/config/knetbsd-gnu.h: Ditto.
601 2006-04-06 Jan Hubicka <jh@suse.cz>
605 * coverage.c (coverage_checksum_string): Reorganize loop to not read
608 2006-04-06 Mike Stump <mrs@apple.com>
610 * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
611 for HAVE_nonlocal_goto to be consistent.
612 (expand_builtin_nonlocal_goto): Likewise.
613 (expand_builtin_strcmp): Use #ifdef instead of #if
614 for HAVE_cmpstrnsi to be consistent.
616 2006-04-05 DJ Delorie <dj@redhat.com>
618 * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
621 2006-04-05 Bernd Schmidt <bernd.schmidt@analog.com>
623 * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
624 got-relative addressing for anything but SImode.
626 * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
627 even if the calling function doesn't modify them.
629 2006-04-05 Richard Guenther <rguenther@suse.de>
631 PR tree-optimization/26919
632 * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
633 to cgraph_estimate_size_after_inlining.
635 2006-04-05 Alan Modra <amodra@bigpond.net.au>
637 * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
639 2006-04-05 Sebastian Pop <pop@cri.ensmp.fr>
641 PR tree-optimization/26996
642 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
643 VECTOR_TYPE variables.
645 2006-04-05 Richard Guenther <rguenther@suse.de>
647 PR tree-optimization/26763
648 * fold-const.c (fold_comparison): Move folding of
649 PTR + CST CMP PTR + CST ...
650 (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR.
652 2006-04-05 Gerald Pfeifer <gerald@pfeifer.com>
654 * doc/install.texi (Prerequisites): Refine some wording on
655 bootstrapping and ksh.
656 Move the version numbers of DejaGnu here from the testing section
657 and fix casing of names.
658 Fix markup and clarify wording for autogen requirements.
659 Refer to GCJ instead of just java.
660 Refer to SVN instead of CVS.
661 Describe diffutils as useful instead of necessary.
662 (Downloading the source): Refer to SVN instead of CVS.
663 Adjust a link to our web site accordingly.
664 (Configuration): Fix casing of Bison.
665 (Building): Refer to SVN instead of CVS.
666 Fix a sentence on the use of Bison and remove duplicate (and
667 incorrect) version number of Bison requirement.
668 Remove one redundant list of packages needed for building.
669 (Specific): Avoid reference to CVS.
671 2006-04-04 Eric Christopher <echristo@apple.com>
673 * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
674 (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
675 (rs6000_handle_struct_attribute): New.
676 (rs6000_ms_bitfield_layout_p): Ditto.
678 2006-04-04 Geoffrey Keating <geoffk@apple.com>
680 * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
681 NULL for dso parameter to atexit_common.
683 2006-04-04 Eric Christopher <echristo@apple.com>
685 * config/i386/i386.c (machopic_output_stub): Output \t
686 between instructions and operands.
688 2006-04-04 David Edelsohn <edelsohn@gnu.org>
690 * config/rs6000/rs6000.c (num_insns_constant_wide): Change
691 satisfies_constraint_[IL] to explicit tests on value.
693 2006-04-04 Sebastian Pop <pop@cri.ensmp.fr>
695 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
696 set_nb_iterations_in_loop): Use build_int_cst instead of
698 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
699 build_int_cst instead of convert.
701 2006-04-04 Carlos O'Donell <carlos@codesourcery.com>
703 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
704 new value 2 for incoming.
705 * function.c (expand_function_start): Call struct_value_rtx
707 * config/sparc/sparc.md: Comment updated_return.
708 * config/sparc/sparc.opt: Add -mstd-struct-return option.
709 * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
710 struct return if sparc_std_struct_return and incoming is 2.
711 (print_operand): Do not adjust return if
712 sparc_std_struct_return.
714 2006-04-04 Roger Sayle <roger@eyesopen.com>
716 * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
717 convert in the middle-end.
718 * expr.c (store_expr, store_constructor, get_inner_reference,
719 expand_expr_real_1, string_constant, try_casesi, try_tablejump):
721 * tree.c (build_range_type): Likewise.
723 2006-04-04 Tom Tromey <tromey@redhat.com>
725 * doc/install.texi (Prerequisites): Mention jar.
727 2006-04-04 Daniel Berlin <dberlin@dberlin.org>
729 * doc/tree-ssa.texi (Preserving the virtual ssa form): New
732 2006-04-04 Matthias Klose <doko@debian.org>
734 * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
736 2006-04-03 Geoffrey Keating <geoffk@apple.com>
738 * doc/extend.texi (Function Attributes): Rewrite visibility
739 attribute documentation.
740 * doc/invoke.texi (C++ Dialect Options): Rewrite
741 -fvisibility-inlines-hidden documentation to describe something
742 entirely different, although in practise compatible.
743 (Code Gen Options): Warn about system headers in -fvisibiltity=
746 * doc/extend.texi (Other Builtins): Document that
747 __builtin_nan is a compile-time constant only when its argument
750 2006-04-03 Adam Nemet <anemet@caviumnetworks.com>
752 * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
753 trying to remove TRUNCATE check if all bits outside the new mode
754 are identical to the sign bit.
756 2006-04-03 Jeff Law <law@redhat.com>
758 * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
759 and operand scanning in some common cases.
761 2006-04-03 Paolo Bonzini <bonzini@gnu.org>
762 Dale Johannesen <dalej@apple.com>
765 * regclass.c (struct reg_pref): Update documentation.
766 (regclass): Set prefclass to NO_REGS if memory is the best option.
767 (record_reg_classes): Cope with a prefclass set to NO_REGS.
768 * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
769 into account. For non-registers, equate an empty preferred
770 reload class to a `!' in the constraint; move the if clause to
771 do so after those that reject the insn.
772 (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
774 (find_dummy_reload): Likewise.
775 * doc/tm.texi (Register Classes): Document what it means
776 if PREFERRED_*_RELOAD_CLASS return NO_REGS.
777 * config/i386/i386.c (ix86_preferred_reload_class): Force
778 using SSE registers (and return NO_REGS for floating-point
779 constants) if math is done with SSE.
780 (ix86_preferred_output_reload_class): New.
781 * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
782 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
783 * config/i386/i386.md: Remove # register preferences.
785 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
788 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
789 chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
791 (instantiate_parameters_1): Convert the operands before calling
792 chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
793 * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
795 2006-04-02 Roger Sayle <roger@eyesopen.com>
797 * builtins.c (dummy_object): Use build_int_cst instead of convert.
798 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
800 * dojump.c (do_jump): Likewise.
801 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
802 * gimplify.c (gimple_boolify, gimplify_init_constructor,
803 gimplify_boolean_expr): Likewise.
804 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
805 * varasm.c (array_size_for_constructor): Likewise.
806 * tree-object-size.c (compute_object_offset): Likewise.
808 2006-04-02 Roger Sayle <roger@eyesopen.com>
811 * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
812 NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
814 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
816 PR tree-optimization/26939
817 * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
819 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
821 * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
822 at_stmt. Convert the type of operands before calling
823 build_polynomial_chrec.
824 (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to
826 (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
827 (instantiate_parameters_1): Convert the type of operands before calling
828 build_polynomial_chrec.
829 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
830 chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
831 reset_evolution_in_loop): Insert asserts to check the types of the
833 (chrec_type): Moved...
834 (eq_evolutions_p): Use operand_equal_p.
835 * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
836 the types of the operands.
837 (chrec_type): ...here.
838 * tree-data-ref.c (create_data_ref): Convert the operands before
839 calling chrec_replace_initial_condition.
840 (same_access_functions, analyze_subscript_affine_affine,
841 analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
842 (compute_subscript_distance, analyze_ziv_subscript,
843 analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
844 analyze_miv_subscript): Convert the operands before calling
845 chrec_fold_minus or chrec_fold_plus.
847 2006-04-02 Sebastian Pop <pop@cri.ensmp.fr>
849 * tree-data-ref.c (compute_all_dependences): Use a pointer to
850 the dependence_relations vector.
851 (compute_data_dependences_for_loop): Adjust call to
852 compute_all_dependences.
854 2006-04-01 Roger Sayle <roger@eyesopen.com>
855 Richard Henderson <rth@redhat.com>
857 * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
858 gimple_boolify on the condition before calling gimplify_expr.
860 2006-03-31 Bob Wilson <bob.wilson@acm.org>
862 * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
863 to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to
864 the frame size. Update to use the new macros.
865 * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
866 * config/xtensa/ieee754-df.S: Likewise.
868 2006-03-31 Richard Henderson <rth@redhat.com>
870 * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
871 (make_edges): ... here. Control fallthru creation with a local
872 variable. Do not play with fake edges.
873 (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
874 (make_goto_expr_edges): Don't play with fake edges. Make for_call
877 2006-04-01 Joseph S. Myers <joseph@codesourcery.com>
879 * dwarf2.h (DW64_CIE_ID): Define.
880 * dwarf2out.c (DWARF_CIE_ID): Define.
881 (output_call_frame_info): Output 0xffffffff before standard 8-byte
882 length header. Use DWARF_CIE_ID.
883 (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
884 dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
886 2006-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
888 * config/sh/linux-atomic.asm: New file.
889 * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
891 2006-03-31 DJ Delorie <dj@redhat.com>
893 * config/m32c/cond.md: Set condition flags properly throughout.
894 * config/m32c/minmax.md: Likewise.
895 * config/m32c/prologue.md: Likewise.
896 * config/m32c/bitops.md: Likewise.
897 * config/m32c/muldiv.md: Likewise.
898 * config/m32c/mov.md: Likewise.
899 * config/m32c/addsub.md: Likewise.
900 * config/m32c/m32c.md: Likewise.
901 * config/m32c/jump.md: Likewise.
902 * config/m32c/shift.md: Likewise.
904 * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
905 conditionally output the pattern for this.
906 * config/m32c/m32c.c (flags_needed_for_conditional): New.
907 (m32c_compare_redundant): New.
908 (m32c_output_compare): New.
909 * config/m32c/m32c-protos.h (m32c_output_compare): New.
911 * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
912 dest, not src. Allow other 4-byte modes.
914 2006-03-30 Denis Chertykov <denisc@overta.ru>
916 * doc/md.texi: Refer to avr/constraints.md instead of
919 2006-03-30 Roger Sayle <roger@eyesopen.com>
921 * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
922 signed vs. unsigned comparison failures on some hosts.
924 2006-03-31 Alan Modra <amodra@bigpond.net.au>
927 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
928 change to FLOAT_REGS.
930 * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
931 (rs6000_override_options): Use it.
932 (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi
933 only for -mabi=spe/no-spe and -mabi=altivec.
935 2006-03-30 Geoffrey Keating <geoffk@apple.com>
937 * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
940 2006-03-30 Carlos O'Donell <carlos@codesourcery.com>
942 * Makefile.in: Rename docdir to gcc_docdir.
944 2006-03-30 Roger Sayle <roger@eyesopen.com>
947 * expr.c (emit_group_store): Optimize group stores into a pseudo
948 register by using a paradoxical subreg to initialize the destination
949 if the first or last member of the group specifies a "low part".
951 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
954 * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
955 * target.h (struct gcc_target.speculate_insn): Change type of the
956 second parameter to 'int'.
957 * lists.c (alloc_DEPS_LIST): Change signature. Update reference to
958 the second operand of the DEPS_LIST.
959 (copy_DEPS_LIST_list): Update reference to the second operand of the
961 * rtl.h (alloc_DEPS_LIST): Update signature.
962 * sched-int.h (ds_t): Change typedef to 'int'.
963 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
965 2006-03-30 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
967 * haifa-sched.c (try_ready): Change condition to restore
968 non-speculative pattern of the instruction.
969 (process_insn_depend_be_in_spec): Code to keep probability of the
970 speculative dependence non-decreasing.
972 2006-03-30 Jie Zhang <jie.zhang@analog.com>
974 * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
975 (single_move_for_movmem): ... this. Also change all uses.
976 (bfin_expand_strmov): Renamed to...
977 (bfin_expand_movmem): ... this. Also change all uses.
978 * config/bfin/bfin.md (movstrsi): Renamed to...
981 2006-03-30 Paolo Bonzini <bonzini@gnu.org>
983 PR tree-optimization/26830
985 * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
986 (copy_prop_visit_stmt): Remove write-only variable ann.
987 (init_copy_prop): Check variable loop depth here. Do not simulate
988 memory-tag and virtual operand PHIs except for store copy prop.
990 2006-03-30 Richard Guenther <rguenther@suse.de>
992 * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
993 variants with double arguments.
995 2006-03-29 David Edelsohn <edelsohn@gnu.org>
997 * genpreds.c (write_tm_constrs_h): Delete variable p.
998 * genconditions.c (write_header): Add tm-constrs.h to included
1000 * genpeep.c (main): Add toplev.h to included headers.
1001 * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
1002 (build/genpeep.o): Add toplev.h dependency.
1003 * config/rs6000/constraints.md: Add "W" constraint.
1005 2006-03-29 Roger Sayle <roger@eyesopen.com>
1007 * stor-layout.c (mode_for_size_tree): Remove restiction on type
1008 sizes by correctly testing whether the size fits a host integer.
1009 (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
1010 to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
1011 SImode range for the default sizetype and bitsizetype.
1013 2006-03-29 Roger Sayle <roger@eyesopen.com>
1015 * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
1016 and TREE_CONSTANT_OVERFLOW bits of the argument. Return
1017 quickly if the argument is already of the correct type.
1018 Call fold_build1 instead of build1. Tidy up blank lines.
1020 2006-03-29 David Edelsohn <edelsohn@gnu.org>
1022 * genemit.c (main): Add tm-constrs.h to included headers.
1023 * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
1024 * genpeep.c (main): Add tm-constrs.h to included headers.
1025 * genpreds.c (write_satisfies_constraint_fns): Rename to ...
1026 (write_tm_constrs_h): this and write complete file.
1027 (write_tm_preds_h): Do not emit satisfies_constraint fns.
1028 (write_insn_preds_c): Add tm-constrs.h to included headers.
1029 (gen_constrs): New variable.
1030 (parse_option): Parse "-c".
1031 (main): Invoke write_tm_constrs_h.
1032 * genrecog.c (write_header): Add tm-constrs.h to included headers.
1033 * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
1034 (object_out_file): Add tm-constrs.h dependency.
1035 (insn-emit.o): Same.
1036 (insn-output.o): Same.
1037 (insn-peep.o): Same.
1038 (insn-preds.o): Same.
1039 (insn-recog.o): Same.
1040 (tm-constsr.h): New target.
1041 (s-constrs-h): New target.
1043 * config/rs6000/constraints.md: New file.
1044 * config/rs6000/rs6000.c: Include tm-constrs.h.
1045 (num_insn_constant_wide): Convert to satisfies_constraint.
1046 (rs6000_rtx_costs): Convert to satisfies_constraint.
1047 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
1048 (CONST_OK_FOR_LETTER_P): Delete.
1049 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1050 (EXTRA_CONSTRAINT): Delete.
1051 (EXTRA_MEMORY_CONSTRAINT): Delete.
1052 (EXTRA_ADDRESS_CONSTRAINT): Delete.
1053 * config/rs6000/predicates.md: Convert to satisfies_constraint.
1054 * config/rs6000/rs6000.md: Include constraints.md. Convert to
1055 satisfies_constraint.
1057 * config/i386/i386.c: Include tm-constrs.h.
1059 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
1061 * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
1062 * tree-data-ref.c (find_data_references_in_loop,
1063 compute_data_dependences_for_loop): Use pointers to VEC.
1064 (analyze_all_data_dependences): Adjust calls.
1065 * tree-data-ref.h (find_data_references_in_loop,
1066 compute_data_dependences_for_loop): Adjust declarations.
1067 * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
1068 compute_data_dependences_for_loop.
1070 2006-03-29 Paul Brook <paul@codesourcery.com>
1072 * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
1075 2006-03-29 Sebastian Pop <pop@cri.ensmp.fr>
1077 PR tree-optimization/26859
1078 * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
1080 (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
1081 for the step after fold_convert.
1083 2006-03-29 Paul Brook <paul@codesourcery.com>
1085 * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
1086 (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
1088 2006-03-29 Paul Brook <paul@codesourcery.com>
1091 * targhooks.c (default_narrow_bitfield): New fuction.
1092 * targhooks.h (default_narrow_bitfield): add prototype.
1093 * target.h (gcc_target): Add narrow_volatile_bitfield.
1094 * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1095 * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
1096 * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
1097 * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
1099 2006-03-29 Andreas Krebbel <krebbel1@de.ibm.com>
1101 * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
1103 * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
1104 (NR_C_MODES): Add TDmode, DDmode and SDmode.
1105 (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
1106 (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
1107 (s390_function_arg_float): Allow SDmode and DDmode values to be
1108 passed in floating point registers.
1109 (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
1110 check with SCALAR_FLOAT_MODE_P.
1111 (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
1113 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
1115 PR tree-optimization/25985
1116 * tree-ssa-loop-niter.c (number_of_iterations_le,
1117 number_of_iterations_ne): Make comments more precise.
1118 (number_of_iterations_cond): Add only_exit argument. Use the
1119 fact that signed variables do not overflow only when only_exit
1121 (loop_only_exit_p): New.
1122 (number_of_iterations_exit): Pass result of loop_only_exit_p to
1123 number_of_iterations_cond.
1125 2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
1127 PR tree-optimization/26643
1128 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
1131 2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
1133 * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
1134 (divsi3_i4_int): Likewise.
1136 2006-03-28 Roger Sayle <roger@eyesopen.com>
1138 * expr.c (emit_group_store): Only create a new pseudo reg if the
1139 quantity it needs to hold isn't already a suitable pseudo.
1141 2006-03-28 Jeff Law <law@redhat.com>
1143 * timevar.def (TV_TREE_PHI_CPROP): New timevar.
1144 * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
1146 2006-03-28 Roger Sayle <roger@eyesopen.com>
1148 * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
1149 the equivalent ~X & Y, and the symmetry related transformations.
1150 (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
1151 ~X & Y, and symmetry related transforms.
1153 2006-03-28 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1155 Revert my 2006-03-27 patches.
1157 2006-03-28 Roger Sayle <roger@eyesopen.com>
1159 * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
1160 ~(T1)X, when T1 and T2 are integer types of the same precision
1161 and (T2)X isn't an extension.
1163 2006-03-28 Jeff Law <law@redhat.com>
1165 PR tree-optimization/26796
1166 * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
1167 need EH edge cleanups rather than purging them immediately.
1168 (eliminate_degenerate_phis): Handle queued EH cleanups.
1170 2006-03-28 Daniel Berlin <dberlin@dberlin.org>
1172 * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
1175 2006-03-27 Roger Sayle <roger@eyesopen.com>
1178 * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
1179 cast BIT_NOT_EXPR operand to the correct type.
1181 2006-03-27 Sebastian Pop <pop@cri.ensmp.fr>
1183 * tree-loop-linear.c: Don't include varray.h.
1184 (gather_interchange_stats, try_interchange_loops,
1185 linear_transform_loops): Use VEC instead of VARRAY.
1186 * lambda-mat.c: Don't include varray.h.
1187 * tree-chrec.c: Same.
1188 * lambda-trans.c: Same.
1189 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
1190 VEC instead of VARRAY.
1191 * tree-vectorizer.h: Idem.
1192 * tree-data-ref.c (dump_data_references,
1193 dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
1194 initialize_data_dependence_relation, finalize_ddr_dependent,
1195 compute_all_dependences, find_data_references_in_loop,
1196 compute_data_dependences_for_loop, analyze_all_data_dependences,
1197 free_dependence_relation, free_dependence_relations,
1198 free_data_refs): Idem.
1199 * tree-data-ref.h (data_reference_p, subscript_p): New.
1200 (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
1201 VEC instead of VARRAY.
1202 (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
1203 (find_data_references_in_loop, compute_data_dependences_for_loop,
1204 dump_ddrs, dump_dist_dir_vectors, dump_data_references,
1205 dump_data_dependence_relations, free_dependence_relations,
1206 free_data_refs): Adjust declaration.
1207 (lambda_transform_legal_p): Move declaration here...
1208 * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
1209 vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
1210 vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
1211 vect_analyze_data_refs): Use VEC instead of VARRAY.
1212 * lambda.h (lambda_transform_legal_p): ...from here.
1213 * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
1214 * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
1215 * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
1216 tree-chrec.o): Don't depend on VARRAY_H.
1218 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1220 * rtl.def (Copyright): Update date.
1221 (DEPS_LIST): Change type of the second operand to 'int'.
1222 * target.h (Copyright): Update date.
1223 (struct gcc_target.speculate_insn): Change type of the second parameter
1225 * lists.c (Copyright): Update date.
1226 (alloc_DEPS_LIST): Change signature. Update reference to the second
1227 operand of the DEPS_LIST.
1228 (copy_DEPS_LIST_list): Update reference to the second operand of the
1230 * rtl.h (Copyright): Update date.
1231 (alloc_DEPS_LIST): Update signature.
1232 * sched-int.h (Copyright): Update date.
1233 (ds_t): Change typedef to 'int'.
1234 (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1236 2006-03-27 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1238 * haifa-sched.c (Copyright): Update date.
1239 (try_ready): Change condition to restore non-speculative pattern
1241 (process_insn_depend_be_in_spec): Code to keep probability of the
1242 speculative dependence non-decreasing.
1244 2006-03-27 Bernd Schmidt <bernd.schmidt@analog.com>
1246 * regrename.c (replace_oldest_value_addr): Initialize a variable to
1247 shut up the compiler.
1249 2006-03-27 J"orn Rennecke <joern.rennecke@st.com>
1251 * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
1252 to use lib prefix for target.
1253 ($(T)libic_invalidate_array_4-200.a): Likewise.
1254 ($(T)libic_invalidate_array_4a.a): Likewise.
1256 2006-03-27 Andrew Stubbs <andrew.stubbs@st.com>
1257 J"orn Rennecke <joern.rennecke@st.com>
1259 * superh.opt: New file.
1260 * sh.c (boardtype, osruntime): Remove.
1261 * superh.h (SUBTARGET_OPTIONS): Remove.
1262 * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
1264 * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed
1265 arguments with ^ and/or [].
1267 * config.gcc (sh-*-*): Add quoting to account for quirk of
1269 Replace == with = in enable_incomplete_targets test.
1271 * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
1272 with MASK_LITTLE_ENDIAN.
1274 * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
1275 * config/sh/sh.opt: Added to some comments.
1276 * config/sh/superh.h: Removed some chaff.
1278 * config/sh/sh.opt: Add m4-[1234]00* options.
1279 * config/sh/sh.c (sh_handle_option): Likewise.
1280 * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
1281 (ic_invalidate_array_4-100.o): New rule.
1282 ($(T)libic_invalidate_array_4-100.a): Likewise.
1283 (ic_invalidate_array_4-200.o): Likewise.
1284 ($(T)libic_invalidate_array_4-200.a): Likewise.
1285 (ic_invalidate_array_4a.o): Likewise.
1286 ($(T)libic_invalidate_array_4a.a): Likewise.
1287 * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
1288 * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
1290 * config/sh/crt1.asm: Merged in profiling code.
1291 * config/sh/superh.h (STARTFILE_SPEC): Override.
1292 * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
1293 Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
1294 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1296 * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
1297 * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
1298 MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
1300 * sh.opt (mpretend-cmove): New option.
1301 * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
1302 * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
1303 (movsicc): Add TARGET_PRETEND_CMOVE code.
1305 2006-03-27 Andreas Krebbel <krebbel1@de.ibm.com>
1307 * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
1308 s390_class_max_nregs): New function prototypes.
1309 * config/s390/s390.c (REGNO_PAIR_OK): New macro.
1310 (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
1311 * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
1312 CLASS_MAX_NREGS): Macro bodies replaced by function calls.
1314 2006-03-26 Geoffrey Keating <geoffk@apple.com>
1316 * dwarf2out.c (add_location_or_const_value_attribute): Call
1317 tree_add_const_value_attribute if nothing else works.
1318 (reference_to_unused): New.
1319 (rtl_for_decl_init): Use reference_to_unused to decide whether
1320 to output an initializer.
1322 2006-03-27 Alan Modra <amodra@bigpond.net.au>
1325 * config/rs6000/rs6000.md (DF reg move peephole): Prevent
1326 peephole removing spe frob_di_df_2.
1328 2006-03-26 Sebastian Pop <pop@cri.ensmp.fr>
1330 * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
1331 (subscript_dependence_tester_1): Declared.
1332 (print_dir_vectors, print_dist_vectors): New.
1333 (debug_data_dependence_relation): New.
1334 (dump_data_dependence_relation): Print more details.
1335 (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
1336 (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
1337 (save_dist_v, save_dir_v, add_outer_distances,
1338 build_classic_dist_vector_1): New.
1339 (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
1340 Don't test for lambda_vector_lexico_pos.
1341 (same_access_functions, add_multivariate_self_dist,
1342 add_other_self_distances, dir_from_dist): New.
1343 (build_classic_dir_vector): Replace implementation almost identical to
1344 build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
1346 (subscript_dependence_tester_1): New.
1347 (subscript_dependence_tester): Handle the lexicographically negative
1348 distance vectors by recomputing the dependence relation.
1349 (compute_affine_dependence): Remove parameter loop_nest_depth.
1350 (compute_self_dependence): Don't call compute_subscript_distance.
1351 (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
1352 Add a parameter for the loop_nest.
1353 (find_loop_nest_1, find_loop_nest): New.
1354 (compute_data_dependences_for_loop): Compute the loop nest, and give
1355 up if the nest is not well formed.
1356 * tree-data-ref.h (loop_p): New.
1357 (struct data_dependence_relation): Replace size_vect field with
1358 loop_nest, a vec of loops.
1359 (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
1360 (DDR_LOOP_NEST): New.
1361 (print_dir_vectors, print_dist_vectors,
1362 debug_data_dependence_relation): Declared.
1363 (index_in_loop_nest): New.
1364 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
1365 DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
1368 2006-03-25 Adam Nemet <anemet@caviumnetworks.com>
1370 * simplify-rtx.c (simplify_relational_operation): Call
1371 simplify_relational_operation_1 even if mode is VOIDmode.
1373 2006-03-25 Daniel Berlin <dberlin@dberlin.org>
1375 PR tree-optimization/26804
1376 * tree.h (DECL_CALL_CLOBBERED): New macro.
1377 (tree_decl_common): Add call_clobbered_flag.
1378 * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
1379 (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
1380 (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
1381 (mark_non_addressable): Ditto.
1382 * tree-ssa.c (verify_call_clobbered): New function.
1383 (verify_alias_info): Use it.
1384 * tree-pass.h (pass_reset_cc_flags): New prototype.
1385 * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
1386 (reset_cc_flags): New function.
1387 * passes.c (init_optimization_passes): Call reset_cc_flags after
1388 initializing referenced_vars.
1390 2006-03-25 Uros Bizjak <uros@kss-loka.si>
1391 Roger Sayle <roger@eyesopen.com>
1394 * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
1395 to 1.0 for non-real operands. Implement A / A optimization for
1398 2006-03-25 H.J. Lu <hongjiu.lu@intel.com>
1400 * config/i386/i386.c (size_cost): Correct the comment for
1401 cost of storing fp registers.
1402 (i386_cost): Likewise.
1403 (i486_cost): Likewise.
1404 (pentium_cost): Likewise.
1405 (pentiumpro_cost): Likewise.
1406 (k6_cost): Likewise.
1407 (athlon_cost): Likewise.
1408 (k8_cost): Likewise.
1409 (pentium4_cost): Likewise.
1410 (nocona_cost): Likewise.
1411 (generic64_cost): Likewise.
1412 (generic32_cost): Likewise.
1414 2006-03-24 Denis Chertykov <denisc@overta.ru>
1416 * config/avr/avr-protos.h (extra_constraint): Delete.
1417 (extra_constraint_Q): New declaration.
1418 * config/avr/constraints.md: New file.
1419 * config/avr/avr.md: Include it.
1420 (REG_X, REG_Y, REG_Z, REG_W): New constants.
1421 (TMP_REGNO, ZERO_REGNO): Likewise.
1422 (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
1423 * config/avr/avr.c (avr_reg_class_from_letter): Delete.
1424 (extra_constraint): Delete.
1425 (extra_constraint_Q): Test for memory constraint 'Q'.
1426 * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
1427 (REG_CLASS_FROM_LETTER): Delete.
1428 (CONST_OK_FOR_LETTER_P): Delete.
1429 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1430 (EXTRA_CONSTRAINT): Delete.
1431 (TMP_REGNO): Delete.
1432 (ZERO_REGNO): Delete.
1434 2006-03-24 Jeff Law <law@redhat.com>
1436 * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
1437 directly. Call mark_new_vars_to_rename slightly earlier.
1439 2006-03-24 Geoffrey Keating <geoffk@apple.com>
1441 * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
1443 (gen_compile_unit_die): Use new language types for Objective-C and
1445 (dwarf2out_decl): Use is_cxx rather than testing explicitly against
1446 DW_LANG_C_plus_plus.
1449 * config/t-darwin (crt3.o): Work around bug 26840.
1450 * config/darwin-crt3.c: Rewrite.
1451 * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
1453 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
1455 * doc/invoke.texi: Document -femit-class-debug-always
1456 * common.opt: Add -femit-class-debug-always.
1458 2006-03-24 Andreas Krebbel <krebbel1@de.ibm.com>
1460 * config/s390/s390.c (s390_decompose_address): Allow SImode for
1461 index and base register.
1462 (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
1463 print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
1464 with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
1465 REGNO_OK_FOR_INDEX_P.
1466 * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
1468 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
1469 REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
1470 REG_OK_FOR_BASE_P): Definitions removed.
1472 2006-03-24 Jakub Jelinek <jakub@redhat.com>
1475 * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
1476 non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
1477 set yet or weren't marked as local yet.
1479 2006-03-24 Bernd Schmidt <bernd.schmidt@analog.com>
1481 * regrename.c (scan_rtx_address): Initialize a variable to shut up
1484 2006-03-24 Eric Botcazou <ebotcazou@adacore.com>
1486 * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
1487 (rs6000_legitimate_small_data_p): Delete.
1488 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
1489 (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
1490 and make static. Add forward declaration. Update uses.
1491 (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
1492 of offsettable_memref_p.
1493 * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
1494 Use rs6000_offsettable_memref_p instead of a less accurate predicate.
1496 2006-03-24 Jeff Law <law@redhat.com>
1498 * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
1499 around bug in immediate-use iterator.
1501 2006-03-24 Alan Modra <amodra@bigpond.net.au>
1504 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
1505 or __LITTLE_ENDIAN__.
1507 2006-03-23 J"orn Rennecke <joern.rennecke@st.com>
1509 * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
1510 * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
1511 * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
1512 * config/sh/sh.opt (mdiv=): Amend description.
1513 * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
1514 (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
1515 (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
1516 SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
1517 (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
1518 Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
1519 * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
1520 (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE /
1521 TARGET_DIVIDE_CALL_FP.
1523 2006-03-23 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1525 * haifa-sched.c (choose_ready): Fix type of the local variable.
1526 Move local variables. Add comment.
1527 (check_reg_live): Change signature. Make callable from debugger.
1528 * sched-int.h (check_reg_live): Update signature.
1529 * sched-ebb.c (check_reg_live): Update parameters.
1530 * sched-rgn.c (check_reg_live): Ditto.
1531 (region_head_or_leaf_p): Check pointer before dereferencing.
1532 * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
1533 before reload on optimization levels below 1.
1535 2006-03-23 Richard Henderson <rth@redhat.com>
1537 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
1541 * config/alpha/predicates.md (local_symbolic_operand): Reject
1544 2006-03-23 Andrew Pinski <pinskia@physics.uc.edu>
1547 * tree-ssa-pre.c (create_value_expr_from): Don't reject
1548 expressions which have overflowed constants.
1550 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
1552 * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
1554 2006-03-23 Zdenek Dvorak <dvorakz@suse.cz>
1556 * cfgloopmanip.c (create_loop_notes): Removed.
1557 * final.c (final_scan_insn): Do not handle loop notes.
1558 * jump.c (squeeze_notes): Ditto.
1559 * cfglayout.c (skip_insns_after_block,
1560 duplicate_insn_chain): Ditto.
1561 * cfgcleanup.c (rest_of_handle_jump2): Do not call
1563 * cfgloop.h (create_loop_notes): Declaration removed.
1565 2006-03-23 Richard Sandiford <richard@codesourcery.com>
1567 * varasm.c (output_constant_pool): Restore fnname and fndecl
1569 (assemble_start_function): Adjust call accordingly.
1570 (assemble_end_function): Likewise.
1572 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1575 * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
1578 * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
1580 2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1583 * system.h (ICE_EXIT_CODE): New macro.
1584 * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
1585 (diagnostic_action_after_output): Likewise.
1586 * gcc.c (fatal_ice): New function.
1587 (execute): Use it instead of fatal.
1588 (fancy_abort): Likewise.
1589 * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
1591 2006-03-22 Jeff Law <law@redhat.com>
1593 * loop-unroll.c (analyze_iv_to_split_insn): Handle
1594 iv_analyze_result returning false.
1596 2006-03-22 Jie Zhang <jie.zhang@analog.com>
1598 * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
1600 2006-03-22 Richard Henderson <rth@redhat.com>
1603 * except.c (duplicate_eh_regions_0): New.
1604 (duplicate_eh_region_1): Duplicate the children of the node as
1605 well as the node itself. Link them up properly.
1606 (duplicate_eh_region_2): Merge into ...
1607 (duplicate_eh_regions): ... here. Take copy_region argument, and
1608 copy only a sub-tree if asked. Simplify copying and fixup.
1609 (eh_region_outer_p): New.
1610 * except.h (duplicate_eh_regions): Update decl.
1611 (eh_region_outer_p): Declare.
1612 * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
1613 (lower_omp_master): Likewise.
1614 (lower_omp_ordered): Likewise.
1615 * tree-cfg.c (struct move_stmt_d): Add new_label_map.
1616 (move_stmt_r): Use it to remap labels. Handle recursion vs
1617 remap_decls_p properly.
1618 (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR.
1619 (find_outermost_region_in_block): New.
1620 (new_label_mapper): New.
1621 (move_sese_region_to_fn): Copy eh information to the new function
1623 * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
1625 * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
1628 2006-03-22 Richard Sandiford <richard@codesourcery.com>
1630 * doc/md.texi (-mshared): Mention that -mshared code can be linked
1631 into shared libraries.
1633 2006-03-22 Richard Sandiford <richard@codesourcery.com>
1635 * doc/md.texi: Refer to i386/constraints.md instead of
1637 * config/i386/constraints.md: New file, extracted from...
1638 * config/i386/predicates.md: ...here.
1639 * config/i386/i386.md: Include constraints.md.
1641 2006-03-21 Jason Merrill <jason@redhat.com>
1643 * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
1646 * expr.c (init_block_move_fn): Force default visibility.
1647 (init_block_clear_fn): Likewise.
1648 * builtins.c (expand_builtin_fork_or_exec): Likewise.
1649 * targhooks.c (default_external_stack_protect_fail): Likewise.
1651 2006-03-21 Richard Sandiford <richard@codesourcery.com>
1653 * config/mips/predicates.md (const_call_insn_operand): Allow direct
1654 calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
1655 * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
1656 Use TARGET_OLDABI instead of !TARGET_NEWABI.
1657 (loadgp): Use mips_current_loadgp_style.
1658 (loadgp_noshared): New pattern.
1659 (sibcall_internal): Use MIPS_CALL.
1660 (sibcall_value_internal): Likewise.
1661 (sibcall_value_multiple_internal): Likewise.
1662 (call_internal): Likewise.
1663 (call_value_internal): Likewise.
1664 (call_value_multiple_internal): Likewise.
1665 (call_split): Use MIPS_CALL and add an 'S' constraint.
1666 (call_value_split): Likewise.
1667 (call_value_multiple_split): Likewise.
1668 * config/mips/mips.opt (-mabicalls): Tweak docstring.
1669 (-mshared): New option.
1670 * config/mips/mips-protos.h (mips_loadgp_style): New enum.
1671 (mips_current_loadgp_style): Declare.
1672 * config/mips/mips.c (mips_classify_symbol): Avoid using
1673 SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL
1674 rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
1675 TARGET_ABSOLUTE_ABICALLS.
1676 (override_options): Adjust comments. Improve the warning that is
1677 issued when -mabicalls and -G are used together.
1678 (mips_file_start): Remove comment.
1679 (mips_current_loadgp_style): New function.
1680 (mips_gnu_local_gp): New variable.
1681 (mips_emit_loadgp): Use mips_current_loadgp_style. Handle
1683 (mips_output_function_prologue): Use mips_current_laodgp_style.
1684 (mips_expand_prologue): Call mips_emit_loadgp before emitting
1685 the cprestore instruction.
1686 (mips_extra_live_on_entry): Fix reversed test. Don't make $25
1687 live for TARGET_ABSOLUTE_ABICALLS.
1688 * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
1689 (ASM_SPEC): Pass down -mshared and -mno-shared.
1690 (MIPS_CALL): New macro.
1691 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
1693 * doc/invoke.texi (-mabicalls): Update documentation.
1694 (-mshared): Document.
1696 2006-03-21 Steve Ellcey <sje@cup.hp.com>
1698 * config/ia64/unwind-hpux.c: New file.
1699 * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
1701 2006-03-21 Steve Ellcey <sje@cup.hp.com>
1704 * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
1706 2006-03-21 Jeff Law <law@redhat.com>
1708 * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
1709 type conversions of a VR_VARYING source to a wider type.
1711 2006-03-21 Eric Botcazou <ebotcazou@libertysurf.fr>
1713 * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
1714 tm_file on Solaris 10 and later.
1715 (sparc64-*-solaris2*): Likewise.
1716 (sparc-*-solaris2*): Likewise.
1717 * config/sol26.h: Rename to config/sol2-6.h.
1718 * config/sol2-10.h: New file.
1720 2006-03-21 Andrew Pinski <pinskia@physics.uc.edu>
1723 * tree-ssa-pre.c (create_component_ref_by_pieces):
1726 2006-03-21 Jakub Jelinek <jakub@redhat.com>
1729 * tree.c (get_callee_fndecl): If CALL is error_mark_node,
1730 return it immediately.
1732 2006-03-21 Michael Matz <matz@suse.de>
1734 * genautomata.c (<struct state>, num_out_arcs, presence_signature):
1736 (remove_arc, add_arc): Update num_out_arcs member.
1737 (set_out_arc_insns_equiv_num): Returns nothing instead of number
1739 (cache_presence): New function.
1740 (compare_states_for_equiv): New function.
1741 (state_is_differed): Don't take number of outargs, adjust callers.
1742 Use new invariant for speeding up.
1743 (init_equiv_class): Create initial classes based on sorted
1745 (partition_equiv_class): Don't track out_arcs_num.
1746 (evaluate_equiv_classes): Call cache_presence on all states and
1749 2006-03-21 Bernd Schmidt <bernd.schmidt@analog.com>
1751 * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
1752 * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
1753 (bfin_valid_reg_p): Test for pseudos explicitly and use only
1754 REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all
1756 * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
1757 (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
1758 (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
1759 (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1760 REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
1762 (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
1763 REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
1764 (REGNO_REG_CLASS): ARGP is in PREGS.
1765 * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
1767 (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
1768 to deal with those addresses.
1769 * addresses.h: New file.
1770 * caller-save.c: Include "addresses.h".
1771 (init_caller_save): Use new base_reg_class function.
1772 * rtl-factoring.c: Include "addresses.h".
1773 (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
1774 * recog.c: Include "addresses.h".
1775 (preprocess_constraints): Use new base_reg_class function.
1776 * regrename.c: Include "addresses.h".
1777 (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
1778 functions. Keep track of a new var INDEX_CODE to compute valid
1780 (replace_oldest_value_addr): Likewise.
1781 (replace_oldest_value_mem): Use base_reg_class.
1782 * reload.c: Include "addresses.h".
1783 (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
1784 (find_reloads): Use new base_reg_class function.
1785 (find_reloads_address): Likewise; also use regno_ok_for_base_p.
1786 (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
1787 all callers and prototype changed.
1788 * reload1.c: Include "addresses.h".
1789 (maybe_fix_stack_asms): Use base_reg_class.
1790 * regclass.c: Include "addresses.h".
1791 (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
1792 (init_reg_autoinc): Use new base_reg_class function.
1793 (record_reg_classes): Likewise.
1794 (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
1795 OUTER_CODE and INDEX_CODE. All callers and prototype changed.
1796 Use new args to compute necessary class.
1798 * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
1799 regrename.o, rtl-factoring.o): Update dependencies.
1800 * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
1801 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
1802 (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
1803 REG_OK_FOR_INDEX_P): Delete documentation.
1805 2006-03-21 Alexey Starovoytov <alexey.starovoytov@sun.com>
1807 * config.gcc (sparc-*-solaris2*): Change the default CPU setting
1808 from V7 to V9 for Solaris 7 and above.
1810 2006-03-21 Toon Moene <toon@moene.indiv.nluug.nl>
1812 * doc/invoke.texi: Document new flag -fargument-noalias-anything.
1813 * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
1814 argument pointers may not alias any other storage.
1815 * common.opt: Define option -fargument-noalias-anything.
1816 * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
1817 alias semantics is specified by flag_argument_noalias > 2.
1819 2006-03-20 Jeff Law <law@redhat.com>
1821 * tree-pass.h (pass_phi_only_copy_prop): Delete.
1822 (pass_phi_only_cprop): Declare.
1823 * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
1825 * tree-ssa-dom.c (degenerate_phi_result): New function.
1826 (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
1827 (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
1828 (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
1829 (eliminate_degenerate_phis): Likewise.
1830 (pass_phi_only_cprop): New pass descriptor.
1831 * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
1832 support code. Callers updated.
1833 (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
1834 (store_copy_prop): Likewise.
1835 (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
1837 2006-03-20 Jason Merrill <jason@redhat.com>
1840 * c-pragma.c (visstack): Move out of handle_pragma_visibility.
1841 (push_visibility, pop_visibility): Likewise.
1842 * c-pragma.h: Declare them.
1844 2006-03-20 Kaz Kojima <kkojima@gcc.gnu.org>
1846 * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
1848 * config/sh/sh.c (find_regmode_weight): Change the type of the first
1849 parameter and use get_ebb_head_tail.
1850 (sh_md_init_global): Adjust uses of find_regmode_weight.
1852 2006-03-20 Steven Bosscher <stevenb.gcc@gmail.com>
1854 * function.h (struct function) <x_tail_recursion_reentry>:
1855 Rename to x_stack_check_probe_note.
1856 (tail_recursion_reentry): Rename to stack_check_probe_note.
1857 * function.c: Replace tail_recursion_reentry with
1858 stack_check_probe_note everywhere.
1859 (expand_function_start): Only emit a note for
1860 stack_check_probe_note with -fstack-protect.
1861 * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
1863 * emit-rtl.c (remove_unnecessary_notes): Remove.
1864 (pass_remove_unnecessary_notes): Remove.
1865 * rtl.h (remove_unnecessary_notes): Remove prototype.
1866 * final.c (final_start_function): Don't call remove_unnecessary_notes.
1867 * tree-pass.h (pass_remove_unnecessary_notes): Remove.
1868 * passes.c (pass_remove_unnecessary_notes): Don't run it.
1870 2006-03-20 Andrew Pinski <pinskia@physics.uc.edu>
1873 * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
1874 (valid_in_set): Handle ARRAY_REF.
1875 Change "if min_variant or VH" to asserts.
1876 (create_component_ref_by_pieces): Handle ARRAY_REF.
1877 (create_expression_by_pieces): Likewise.
1878 (can_PRE_operation): ARRAY_REFs can now be PRE'd.
1880 2006-03-20 David Edelsohn <edelsohn@gnu.org>
1882 * genpreds.c (write_insn_extra_address_constraint): Argument `c'
1883 is operand of switch, not str[0].
1885 2006-03-20 Alan Modra <amodra@bigpond.net.au>
1887 * config/rs6000/rs6000.c (rs6000_handle_option): Use
1888 TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
1890 2006-03-19 David Edelsohn <edelsohn@gnu.org>
1892 * genpreds.c (write_tm_preds_h): Add semicolon and newline at
1893 end of insn_extra_address_constraint declaration.
1895 2006-03-19 David Edelsohn <edelsohn@gnu.org>
1897 * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
1898 (no-sum-in-toc): Same.
1899 * config/rs6000/rs6000.c (rs6000_handle_option): Use new
1901 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
1902 NO_FP_IN_TOC for -fPIC instead of mask.
1904 * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
1905 (BOOT_LDFLAGS): Delete.
1907 * config/rs6000/t-aix52: Same.
1909 * config/rs6000/rs6000.md (store_multiple_power): Delete.
1910 (stmsi[345678]_power): New.
1912 2006-03-17 Steve Ellcey <sje@cup.hp.com>
1914 * config/ia64/ia64.opt: Add empty line to end of file.
1916 2006-03-17 Richard Guenther <rguenther@suse.de>
1919 * builtins.c (get_pointer_alignment): For component style references
1920 adjust alignment to the component type alignment. Make sure
1921 to adjust alignment for component access of constants.
1923 2006-03-17 David Edelsohn <edelsohn@gnu.org>
1925 * config/rs6000/rs6000.md (strlensi): Emit barrier after
1928 2006-03-17 Paul Brook <paul@codesourcery.com>
1930 * doc/install.texi: Docuemnt --with-mode.
1931 * config.gcc: Add --with-mode for arm*-*-*.
1932 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
1934 2006-03-17 J"orn Rennecke <joern.rennecke@st.com>
1936 * sh.c (max_labelno_before_reorg): New variable.
1937 (sh_reorg): Initialize it.
1938 (find_barrier): Check max_labelno_before_reorg before using
1939 label_to_alignment. Take length of explicit alignment insns
1940 into account. When seeing a UNSPECV_CONST_END, return it.
1942 * sh.c (fixup_mova): Set mode of affected label to QImode.
1943 (untangle_mova): New function.
1944 (find_barrier): Use it. Check mode of label before decrementing
1946 (sh_reorg): Likewise.
1947 Set mode of all insns back to VOIDmode.
1949 * sh.c (MOVA_LABELREF): New macro.
1950 (mova_p, fixup_mova, sh_reorg): Use it.
1951 (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
1952 ADDR_DIFF_VEC matches mova.
1954 2006-03-17 Steven Bosscher <stevenb.gcc@gmail.com>
1956 * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
1957 with ATTRIBUTE_UNUSED.
1959 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
1961 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
1962 pointer, instead of assuming it is possible to derive the
1963 correct args size from a call insn.
1965 2006-03-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1967 * rtl.h (CONST_INT_P): Define.
1968 * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
1969 instead of GET_CODE(x) == CONST_INT.
1970 (vax_rtx_costs): Likewise.
1971 (vax_output_int_move): Likewise.
1972 (vax_output_int_add): Likewise.
1973 (legitimate_constant_address_p): Likewise.
1974 (index_term_p): Likewise.
1975 * config/vax/vax.h (PRINT_OPERAND): Likewise.
1976 * config/vax/vax.md (and<mode>3): Likewise.
1977 (ashrsi3): Likewise.
1979 (movstricthi): Likewise.
1980 (movstrictqi): Likewise.
1981 (rotrsi3): Likewise.
1982 (five unnamed insns): Likewise.
1984 2006-03-16 Geoffrey Keating <geoffk@apple.com>
1986 * doc/tm.texi (SDB and DWARF): Add extra parameter to
1987 ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables.
1988 * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
1989 * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
1990 Pass to ASM_OUTPUT_DWARF_OFFSET.
1991 * dwarf2out.c (debug_frame_section): New.
1992 (output_call_frame_info): Use debug_frame_section. Pass it to
1993 dw2_asm_output_offset.
1994 (output_die): Pass appropriate section to dw2_asm_output_offset.
1995 (output_compilation_unit_header): Likewise.
1996 (output_pubnames): Likewise.
1997 (output_aranges): Likewise.
1998 (enum dw_val_class): Break dw_val_class_lbl_offset into
1999 dw_val_class_lineptr and dw_val_class_macptr.
2000 (add_AT_lbl_offset): Delete.
2001 (add_AT_lineptr): New.
2002 (add_AT_macptr): New.
2003 (AT_lbl): Expect a lineptr or macptr.
2004 (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
2005 (attr_checksum): Likewise.
2006 (same_dw_val_p): Likewise.
2007 (size_of_die): Likewise.
2008 (value_format): Likewise.
2009 (output_die): Likewise.
2010 (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
2012 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2013 * config/i386/i386.c (x86_file_start): Call darwin_file_start.
2014 * config/darwin-protos.h (darwin_file_start): New.
2015 (darwin_asm_output_dwarf_offset): New.
2016 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2017 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
2019 * config/darwin.c (darwin_emit_unwind_label): Don't output label
2020 if not EH section; simplify.
2021 (darwin_file_start): New.
2022 (darwin_asm_output_dwarf_offset): New.
2023 * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
2025 (DEBUG_INFO_SECTION): Likewise.
2026 (DEBUG_ABBREV_SECTION): Likewise.
2027 (DEBUG_ARANGES_SECTION): Likewise.
2028 (DEBUG_MACINFO_SECTION): Likewise.
2029 (DEBUG_LINE_SECTION): Likewise.
2030 (DEBUG_LOC_SECTION): Likewise.
2031 (DEBUG_PUBNAMES_SECTION): Likewise.
2032 (DEBUG_STR_SECTION): Likewise.
2033 (DEBUG_RANGES_SECTION): Likewise.
2034 (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
2035 (ASM_OUTPUT_DWARF_OFFSET): New.
2037 2006-03-16 Joseph S. Myers <joseph@codesourcery.com>
2039 * config.gcc (tm_defines): Always add to previous value rather
2042 2006-03-16 Richard Sandiford <richard@codesourcery.com>
2044 * config/mips/predicates.md (splittable_const_int_operand): New,
2045 split from move_operand.
2046 (splittable_symbolic_operand): New.
2047 (move_operand): Add commentary. Use splittable_const_int_operand.
2048 Inline mips_atomic_symbolic_constant_p.
2049 * config/mips/mips.md: Add combine splitters for handling moves
2050 of splittable_const_int_operands and splittable_symbolic_operands.
2051 * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
2052 (mips_split_symbol): Declare.
2053 (mips_move_integer): Declare.
2054 * config/mips/mips.c (mips_split_p): Make global.
2055 (TARGET_MIN_ANCHOR_OFFSET): Override default.
2056 (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2057 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2058 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
2059 (mips_offset_within_object_p): Handle block symbols.
2060 (mips_atomic_symbolic_constant_p): Delete.
2061 (mips_cannot_force_const_mem): Return false for constants that
2062 mips_legitimize_move can handle.
2063 (mips_use_blocks_for_constant_p): New function.
2064 (mips_split_symbol): Make global.
2065 (mips_move_integer): Likewise. Add a temporary register argument.
2066 (mips_legitimize_const_move): Use splittable_const_int_operand and
2067 splittable_symbolic_operand.
2068 (mips_use_anchors_for_symbol_p): New function.
2069 * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
2070 (mips_split_p): Declare.
2072 2006-03-16 Richard Sandiford <richard@codesourcery.com>
2074 * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
2075 (mips*-*-linux*): Likewise.
2077 2006-03-16 Roger Sayle <roger@eyesopen.com>
2078 Daniel Speyer <dspeyer@wam.umd.edu>
2081 * tree-dump.c (dump_real): New function.
2082 (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
2083 * Makefile.in (REAL_H): New macro for dependencies on real.h.
2084 (tree-dump.o): Add $(REAL_H) to the dependencies.
2086 2006-03-16 Roger Sayle <roger@eyesopen.com>
2089 * real.c (real_from_string): If the mantissa is zero, don't bother
2090 parsing the exponent as the result should always be zero.
2092 2006-03-16 Andreas Krebbel <krebbel1@de.ibm.com>
2094 * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
2096 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2098 * config/ia64/ia64.c (stops_p): Added explicit initialization.
2099 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
2100 ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
2101 ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
2102 ia64_sched_finish_global): New static functions to implement
2103 hooks from gcc_target.sched.
2104 (spec_check_no, max_uid, pending_data_specs): New static variables.
2105 (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
2106 ia64_spec_check_src_p): New static functions.
2107 (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
2108 (TARGET_SCHED_ADJUST_COST): Removed.
2109 (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
2110 TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
2111 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2112 TARGET_SCHED_GEN_CHECK,
2113 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2114 TARGET_SCHED_SET_SCHED_FLAGS): New macros.
2115 (update_set_flags, group_barrier_needed, set_src_needs_barrier):
2116 Fixed to handle speculation checks.
2117 (rtx_needs_barrier): Fixed to handle speculative loads and
2119 (ia64_variable_issue): Added code to count speculative loads and their
2121 (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
2123 (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
2125 (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
2127 (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
2128 (ia64_reorg): Reset stops_p to NULL after it is freed.
2129 * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
2130 UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
2131 (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f,
2133 (data_speculative, control_speculative, check_load): New attributes.
2134 (mov<mode>_advanced, mov<mode>_speculative,
2135 mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
2136 zero_extend<mode>di2_speculative,
2137 zero_extend<mode>di2_speculative_advanced): New patterns for
2138 data and control speculative loads.
2139 (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
2141 (advanced_load_check_clr_<mode>, speculation_check_<mode>):
2142 New pattern for data and control speculation checks.
2143 (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
2144 ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
2145 reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
2146 Auxiliary definitions for the patterns.
2147 * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
2148 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
2150 (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
2152 (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
2153 * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
2154 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
2155 New resource constraints.
2156 (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
2158 (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
2159 * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
2160 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2161 msched-in-control-spec, msched-ldc, msched-control-ldc,
2162 msched-spec-verbose, msched-prefer-non-data-spec-insns,
2163 msched-prefer-non-control-spec-insns,
2164 msched-count-spec-in-critical-path): New flags to tune speculative
2166 * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
2167 msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
2168 msched-in-control-spec, msched-ldc, msched-control-ldc,
2169 msched-spec-verbose, msched-prefer-non-data-spec-insns,
2170 msched-prefer-non-control-spec-insns,
2171 msched-count-spec-in-critical-path): Document new flags.
2173 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2175 * target.h (struct spec_info_def): New opaque declaration.
2176 (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
2177 speculate_insn, needs_block_p, gen_check,
2178 first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
2179 * target-def.h (TARGET_SCHED_ADJUST_COST_2,
2180 TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
2181 TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
2182 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2183 TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
2185 (TARGET_SCHED): Use new macros.
2186 * rtl.h (copy_DEPS_LIST_list): New prototype.
2187 * sched-int.h (struct sched_info): Change signature of new_ready field,
2188 adjust all initializations. New fields: add_remove_insn,
2189 begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
2190 region_head_or_leaf_p.
2191 (struct spec_info_def): New structure declaration.
2192 (spec_info_t): New typedef.
2193 (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
2194 recovery_block, orig_pat.
2195 (glat_start, glat_end): New variables declaraions.
2196 (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
2198 (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
2199 DETACH_LIFE_INFO, USE_GLAT.
2200 (enum SPEC_SCHED_FLAGS): New enumeration.
2201 (NOTE_NOTE_BB_P): New macro.
2202 (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
2203 attach_life_info, debug_spec_status, check_reg_live): New functions.
2204 (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
2205 all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
2207 (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
2208 * ddg.c (get_block_head_tail): Adjust all uses.
2209 * modulo-sched.c (get_block_head_tail): Adjust all uses.
2210 (sms_sched_info): Initialize new fields.
2211 (contributes_to_priority): Removed.
2212 * haifa-sched.c (params.h): New include.
2213 (get_block_head_tail): Adjust all uses.
2214 (ISSUE_POINTS): New macro.
2215 (glat_start, glat_end): New global variables.
2216 (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
2217 nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
2218 old_last_basic_block, before_recovery, current_sched_info_var,
2219 rgn_n_insns, luid): New static variables.
2220 (insn_cost1): New function. Move logic from insn_cost to here.
2221 (find_insn_reg_weight1): New function. Move logic from
2222 find_insn_reg_weight to here.
2223 (reemit_notes, move_insn, max_issue): Change signature.
2224 (move_insn1): Removed.
2225 (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
2226 extend_bb): New static functions to support extension of scheduler's
2228 (generate_recovery_code, process_insn_depend_be_in_spec,
2229 begin_speculative_block, add_to_speculative_block,
2230 init_before_recovery, create_recovery_block, create_check_block_twin,
2231 fix_recovery_deps): New static functions to support
2232 generation of recovery code.
2233 (fix_jump_move, find_fallthru_edge, dump_new_block_header,
2234 restore_bb_notes, move_block_after_check, move_succs): New static
2235 functions to support ebb scheduling.
2236 (init_glat, init_glat1, attach_life_info1, free_glat): New static
2237 functions to support handling of register live information.
2238 (associate_line_notes_with_blocks, change_pattern, speculate_insn,
2239 sched_remove_insn, clear_priorities, calc_priorities, bb_note,
2240 add_jump_dependencies): New static functions.
2241 (check_cfg, has_edge_p, check_sched_flags): New static functions for
2242 consistancy checking.
2243 (debug_spec_status): New function to call from debugger.
2244 (priority): Added code to handle speculation checks.
2245 (rank_for_schedule): Added code to distinguish speculative instructions.
2246 (schedule_insn): Added code to handle speculation checks.
2247 (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
2248 Fixed to handle ebbs.
2249 (move_insn): Added code to handle ebb scheduling.
2250 (max_issue): Added code to use ISSUE_POINTS of instructions.
2251 (choose_ready): Added code to choose between speculative and
2252 non-speculative instructions.
2253 (schedule_block): Added code to handle ebb scheduling and scheduling of
2254 speculative instructions.
2255 (sched_init): Initialize new variables.
2256 (sched_finish): Free new variables. Print statistics.
2257 (try_ready): Added code to handle speculative instructions.
2258 * lists.c (copy_DEPS_LIST_list): New function.
2259 * sched-deps.c (extend_dependency_caches): New function. Move logic
2260 from create_dependency_caches to here.
2261 (get_dep_weak, ds_merge): Make global.
2262 * genattr.c (main): Code to output prototype for
2263 dfa_clear_single_insn_cache.
2264 * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
2265 (output_dfa_clean_insn_cache_func): Code to output
2266 dfa_clear_single_insn_cache function.
2267 * sched-ebb.c (target_n_insns): Remove. Adjust all users to use
2269 (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
2271 (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
2272 New static variables.
2273 (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
2274 fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
2276 (ebb_sched_info): Initialize new fields.
2277 (get_block_head_tail): Adjust all uses.
2278 (compute_jump_reg_dependencies): Fixed to use glat_start.
2279 (schedule_ebb): Code to remove unreachable last block.
2280 (schedule_ebbs): Added code to update register live information.
2281 * sched-rgn.c (region_sched_info): Initialize new fields.
2282 (get_block_head_tail): Adjust all uses.
2283 (last_was_jump): Removed. Adjust users.
2284 (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
2285 add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
2286 Implement new hooks.
2287 (check_dead_notes1): New static function.
2288 (struct region): New fields: dont_calc_deps, has_real_ebb.
2289 (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
2290 (BB_TO_BLOCK): Fixed to handle EBBs.
2291 (EBB_FIRST_BB, EBB_LAST_BB): New macros.
2292 (ebb_head): New static variable.
2293 (debug_regions, contributes_to_priority): Fixed to handle EBBs.
2294 (find_single_block_regions, find_rgns, find_more_rgns): Initialize
2296 (compute_dom_prob_ps): New assertion.
2297 (check_live_1, update_live_1): Fixed to work with glat_start instead of
2298 global_live_at_start.
2299 (init_ready_list): New assertions.
2300 (can_schedule_ready_p): Split update code to begin_schedule_ready.
2301 (new_ready): Add support for BEGIN_CONTROL speculation.
2302 (schedule_insns): Fixed code that updates register live information
2304 (schedule_region): Fixed to handle EBBs.
2305 (init_regions): Use extend_regions and check_dead_notes1.
2306 * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
2307 PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
2308 * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
2309 TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
2310 TARGET_SCHED_GEN_CHECK,
2311 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
2312 TARGET_SCHED_SET_SCHED_FLAGS): Document.
2313 * doc/invoke.texi (max-sched-insn-conflict-delay,
2314 sched-spec-prob-cutoff): Document.
2316 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2318 * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
2319 inter_tick, queue_index.
2320 (struct sched_info): Change signature of init_ready_list field.
2321 Adjust all initializations.
2322 (RESOLVED_DEPS): New access macro.
2323 (ready_add): Remove prototype.
2324 (try_ready): Add prototype.
2325 * sched-rgn.c (init_ready_list): Use try_ready.
2326 (schedule_region): Initialize
2327 current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
2328 * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info.
2329 (init_ready_list): Use try_ready.
2330 (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
2331 * lists.c (remove_list_elem): Remove `static'.
2332 (remove_free_INSN_LIST_elem): New function.
2333 * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
2334 * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
2335 (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
2337 (readyp): New variable.
2338 (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
2339 change_queue_index, resolve_dep): New static functions.
2340 (try_ready): New function. Adjust callers in sched-rgn.c and
2341 sched-ebb.c to use it instead of ready_add.
2342 (clock_var): Move at the begining of file.
2343 (rank_for_schedule): Fix typo.
2344 (queue_insn): Add assertion. Handle QUEUE_INDEX.
2345 (ready_lastpos): Enforce assertion.
2346 (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument,
2348 (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
2349 (schedule_insn): Rewrite to use try_ready and resolve_dep.
2350 (queue_to_ready): Use free_INSN_LIST_list.
2351 (early_queue_to_ready): Fix typo.
2352 (schedule_block): Init readyp. Move init_ready_list call after the
2353 initialization of clock_var. Fix error in rejecting insn by
2354 targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code
2355 that previously corrected INSN_TICKs. Add code for handling
2357 (set_priorities): Fix typo.
2358 (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
2359 Clarify comment and code that keeps current_sched_info->next_tail
2362 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2364 * sched-rgn.c (extend_rgns): New static function.
2365 (find_rgns): Use it.
2366 (gather_region_statistics, print_region_statistics): New static
2368 * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
2369 * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2371 2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2372 Andrey Belevantsev <abel@ispras.ru>
2374 * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
2375 * lists.c (unused_deps_list): New variable.
2376 (free_list): Add assertions to verify the proper distinguishing
2377 between INSN_LISTs and DEPS_LISTs.
2378 (find_list_elem, remove_list_elem, remove_list_node): New static
2380 (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
2381 remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
2382 remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
2383 (alloc_INSN_LIST): Assert that the list we're working on is indeed
2385 (free_INSN_LIST_node): Likewise.
2386 * modulo-sched.c (current_sched_info): Initialize flags field.
2387 * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
2388 * rtl.def (DEPS_LIST): Define.
2389 * rtl.h: Declare new functions from lists.c.
2390 * sched-deps.c (spec_dependency_cache): New static variable.
2391 (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
2392 (add_dependence): Change return type to void. Move the logic to ...
2393 (add_or_update_back_dep_1): ... here. Handle speculative dependencies.
2394 (delete_all_dependences): Add comment about forward_dependency_cache.
2395 Handle spec_dependency_cache. Handle DEPS_LISTs.
2396 (fixup_sched_groups): Clarify the change of priority of output
2397 and anti dependencies.
2398 (sched_analyze_2): Adjust add_dependence calls to create data
2399 speculative dependence.
2400 (add_forward_dependence): Renamed to add_forw_dep, change prototype.
2401 Adjust all callers. Handle DEPS_LISTS.
2402 (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in
2403 presence of speculation.
2404 (init_dependency_caches, free_dependency_caches):
2405 Handle spec_dependency_cache.
2406 (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
2407 estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
2408 New static functions.
2409 (add_or_update_back_dep, add_or_update_back_forw_dep,
2410 add_back_forw_dep, delete_back_forw_dep): New functions.
2411 * sched-int.h (ds_t, dw_t): New typedefs.
2412 (struct sched_info): Add new field flags.
2413 (struct haifa_insn_data): Add new bitfield has_internal_dep.
2414 Prototype new sched-deps.c functions.
2415 (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
2416 (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
2417 MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
2418 BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
2419 SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
2420 SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
2422 (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
2424 * sched-rgn.c (current_sched_info): Initialize flags field.
2425 (schedule_insns): Initialize current_sched_info before the sched_init
2427 * sched-ebb.c (current_sched_info): Initialize flags field.
2428 (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
2429 Call add_or_update_back_dep instead of add_dependence.
2430 Create control speculative dependencies.
2431 (schedule_insns): Initialize current_sched_info before the sched_init
2434 2006-03-16 Kaz Kojima <kkojima@gcc.gnu.org>
2436 * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
2438 (sh_fallback_frame_state): Likewise.
2440 2006-03-15 Geoffrey Keating <geoffk@apple.com>
2442 * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
2443 Do switch on default_use_cxa_atexit.
2444 (powerpc*-*-darwin*): Build crt2.o on powerpc.
2445 * config/darwin-crt3.o: New.
2446 * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
2447 to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use.
2448 (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
2450 * config/rs6000/t-darwin: Move crt2.o building to here.
2451 * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
2452 Mac OS version for using __cxa_get_exception_ptr. Don't test versions
2455 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2457 * config/vax/vax.c (nonindexed_address_p): Change logical negation
2458 from '! xxx' to '!xxx' for coding-style conformance.
2459 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
2460 (EXTRA_CONSTRAINT): Likewise.
2461 * config/vax/vax.md (four unnamed insns): Likewise.
2463 2006-03-15 Paul Brook <paul@codesourcery.com>
2465 * config/arm/arm.c (minipool_pad): New.
2466 (add_minipool_forward_ref): Include pool alignment padding in address
2468 (push_minipool_fix): Set minipool_pad.
2469 (minipool_pad): Ditto.
2471 2006-03-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2473 * config/vax/vax.c (split_quadword_operands): Use MEM_P()
2474 instead of GET_CODE() == MEM and REG_P() instead of
2476 (print_operand_address): Likewise.
2477 (vax_address_cost): Likewise.
2478 (vax_rtx_costs): Likewise.
2479 (vax_notice_update_cc): Likewise.
2480 (vax_output_int_add): Likewise.
2481 (INDEX_REGISTER_P): Likewise.
2482 (BASE_REGISTER_P): Likewise.
2483 (nonindexed_address_p): Likewise.
2484 (vax_mode_dependent_address_p): Likewise.
2485 * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
2486 (PRINT_OPERAND): Likewise.
2487 * config/vax/vax.md (ashlsi3): Likewise.
2488 (ashlsi3): Likewise.
2489 (some more unnamed insns): Likewise.
2491 2006-03-15 Kazu Hirata <kazu@codesourcery.com>
2493 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
2494 iterator-style macro.
2495 (mark_control_dependent_edges_necessary): Update the use of
2496 EXECUTE_IF_CONTROL_DEPENDENT.
2498 2006-03-15 J"orn Rennecke <joern.rennecke@st.com>
2500 * config/sh/predicates.md (cache_address_operand): Special.
2501 (ua_address_operand): Likewise.
2503 2006-03-15 Zdenek Dvorak <dvorakz@suse.cz>
2505 * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
2507 * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
2509 2006-03-15 Andreas Schwab <schwab@suse.de>
2511 * gensupport.c (identify_predicable_attribute): Don't free p_false
2512 when it is still in use.
2514 2006-03-15 Eric Botcazou <ebotcazou@libertysurf.fr>
2516 * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
2517 the default setting here.
2519 2006-03-14 Steven Bosscher <stevenb.gcc@gmail.com>
2521 * tree-pass.h (pass_cfg): Remove.
2522 * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
2523 * passes.c (pass_cfg): Don't run it.
2525 2006-03-14 Kazu Hirata <kazu@codesourcery.com>
2527 * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
2528 * reg-stack.c (stack_regs_mentioned_data): Change the type to
2530 (stack_regs_mentioned): Update the uses of
2531 stack_regs_mentioned_data. Don't access the array beyond its
2533 (reg_to_stack): Update the uses of stack_regs_mentioned_data.
2534 Don't include gt-reg-stack.h.
2536 * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
2537 * system.h (UNALIGNED_WORD_ASM_OP): Poison.
2539 * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
2542 * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
2545 2006-03-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2547 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
2549 2006-03-14 Richard Guenther <rguenther@suse.de>
2551 PR tree-optimization/26672
2552 * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
2555 2006-03-14 Richard Guenther <rguenther@suse.de>
2557 PR tree-optimization/26667
2558 * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
2559 node for the callees. Always allow inlining if it will shrink
2562 2006-03-14 Richard Guenther <rguenther@suse.de>
2565 * builtins.c (get_pointer_alignment): Prefer alignment
2566 information from decls over that from types.
2568 2006-03-14 Andrew Pinski <pinskia@physics.uc.edu>
2571 * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
2573 2006-03-14 Joseph S. Myers <joseph@codesourcery.com>
2575 * config/rs6000/rs6000.opt (mdlmzb): New option.
2576 (msched-prolog, msched-epilog): Use Var not Mask.
2577 * doc/invoke.texi (-mdlmzb): Document.
2578 * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
2580 (rs6000_override_options): Enable -mdlmzb for 405 and 440.
2581 * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
2583 2006-03-13 Uttam Pawar <uttamp@us.ibm.com>
2585 PR rtl-optimization/25739
2586 * bt-load.c (augment_live_range): Free tos pointer.
2588 * gensupport.c (identify_predicable_attribute): Free
2590 * gcov.c (create_file_names): Free name pointer.
2592 2006-03-13 Roger Sayle <roger@eyesopen.com>
2595 * stmt.c (emit_case_nodes): Handle the case where the index is a
2596 CONST_INT, where the comparison mode is specified by the index type.
2598 2006-03-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2600 * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
2603 2006-03-13 Richard Sandiford <richard@codesourcery.com>
2605 * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
2606 (*branch_fp_inverted): Likewise.
2608 2006-03-13 Jakub Jelinek <jakub@redhat.com>
2611 * omp-low.c (expand_omp_for_generic): Mark istart0
2612 and iend0 as addressable.
2614 2006-03-13 Jie Zhang <jie.zhang@analog.com>
2616 * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
2618 2006-03-13 Jeff Law <law@redhat.com>
2620 * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
2621 virtual operands are interesting.
2622 (vrp_visit_stmt): Corresponding changes.
2624 2006-03-13 Bernd Schmidt <bernd.schmidt@analog.com>
2626 * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
2628 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
2629 TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
2630 * config/bfin/crti.S: Use it instead of __PIC__.
2631 * config/bfin/crtn.S: Likewise.
2633 * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
2634 call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
2636 Lose 'G' modifier for call operand.
2637 * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
2638 recognize 'G' modifier.
2640 2006-03-13 Eric Botcazou <ebotcazou@adacore.com>
2643 * gimplify.c (gimplify_switch_expr): Discard empty ranges.
2644 * stmt.c (expand_case): Likewise.
2646 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2648 PR rtl-optimization/26254
2649 * loop-invariant.c (seq_insns_valid_p): New function.
2650 (move_invariant_reg): Only emit new code if it is valid.
2652 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2654 * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
2656 (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
2657 (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
2658 (commit_one_edge_insertion): Do not look for loop notes.
2660 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2662 * jump.c (follow_jumps): Do not check for loop notes. Move check for
2663 flag_test_coverage out of loop.
2665 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2667 * final.c (shorten_branches): Remove outdated comment, and turn
2668 the if branch that guards it to continue.
2670 2006-03-13 Zdenek Dvorak <dvorakz@suse.cz>
2672 * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
2673 * cfgloop.h (struct loop): Remove unused fields.
2675 2006-03-13 Kazu Hirata <kazu@codesourcery.com>
2677 * doc/invoke.texi (-fdump-rtl-loop): Remove.
2678 (-dL, -fdump-rtl-loop2): Update the dump file names
2680 * doc/invoke.texi: Update dump file names.
2682 2006-03-12 Steven Bosscher <stevenb.gcc@gmail.com>
2684 * predict.c (estimate_probability): Remove.
2685 * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
2686 * basic-block.h (estimate_probability): Remove prototype.
2687 * passes.c (finish_optimization_passes): Dump branch prediction or
2688 profiling heuristics to the .profile tree dump.
2689 (init_optimization_passes): Unqueue pass_branch_prob.
2691 * doc/invoke.texi (-fdump-rtl-bp): Remove.
2693 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
2695 * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
2696 * rtl.h (LABEL_NEXTREF): Remove field accessor.
2698 2006-03-11 Eric Botcazou <ebotcazou@adacore.com>
2700 * function.h (frame_offset_overflow): Declare.
2701 * function.c (frame_offset_overflow): New function.
2702 (assign_stack_local_1): Call it to detect that the offset overflows.
2703 * cfgexpand.c (alloc_stack_frame_space): Likewise.
2705 2006-03-11 Steven Bosscher <stevenb.gcc@gmail.com>
2707 * config/sh/sh.c: Include alloc-pool.h.
2708 (label_ref_list_pool): New alloc pool.
2709 (label_ref_list_t): New type for lists of labels.
2710 (struct pool_node): Make wend a label_ref_list_t.
2711 (add_constant): Use the new type, eradicate LABEL_NEXTREF
2713 (dump_table): Likewise.
2714 (sh_reorg): Set up the alloc pool before using add_constant and
2715 dump_table, and destroy it when finishing.
2717 2006-03-11 Richard Sandiford <richard@codesourcery.com>
2719 * config/mips/mips.c: Remove redundant comment.
2721 2006-03-10 Jason Merrill <jason@redhat.com>
2724 * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
2725 the target was declared 'register'.
2727 2006-03-10 Adam Nemet <anemet@caviumnetworks.com>
2729 * genpreds.c (write_insn_constraint_len): Change definition of
2730 insn_constraint_len to return size_t to match the declaration.
2732 2006-03-10 DJ Delorie <dj@redhat.com>
2734 * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
2736 (m32c_expand_insv): Fix test for an AND mask.
2738 2006-03-10 Richard Guenther <rguenther@suse.de>
2741 * builtins.c (get_pointer_alignment): Handle component
2742 references for field alignment.
2744 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
2746 * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
2747 when building with libgloss.
2748 (sh*elf): Implement --without-fp option.
2749 (sh64-superh-linux*): Don't multilib.
2751 2006-03-10 J"orn Rennecke <joern.rennecke@st.com>
2753 * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
2755 2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
2757 * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
2758 Set it when one of the replacement functions returned true.
2759 Return TODO_cleanup_cfg if cfgchanged is true.
2760 (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
2762 2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
2764 * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2765 instead of gen_lowpart.
2767 2006-03-09 Richard Sandiford <richard@codesourcery.com>
2769 * config/mips/mips-protos.h (mips_output_conditional_branch): Change
2771 (mips_output_order_conditional_branch): Declare.
2772 * config/mips/mips.h (MIPS_BRANCH): New macro.
2773 * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
2774 for the comparison. Use gen_condjump.
2775 (mips_output_conditional_branch): Rework interface to take the
2776 asm templates for a direct branch and the inverse of a direct branch.
2777 (mips_output_order_conditional_branch): New function.
2778 (mips_builtin_branch_and_move): New function.
2779 (mips_expand_builtin_compare): Use it. Use VOIDmode for the
2780 branch condition. Use gen_single_cc as the condition for
2781 __builtin_mips_upper_* or __builtin_mips_lower_*.
2782 (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
2783 Use VOIDmode for the branch condition.
2784 * config/mips/predicates.md (order_operator): New predicate.
2785 * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
2786 (branch_fp): Rename to...
2787 (*branch_fp): ...this. Remove mode from comparison operator.
2788 Use new mips_output_conditional_branch interface.
2789 (branch_fp_inverted): Rename to...
2790 (*branch_fp_inverted): ...this and update as for *branch_fp.
2791 (*branch_zero<mode>): Rename to...
2792 (*branch_order<mode>): ...this. Remove mode from comparison operator.
2793 Use mips_output_order_conditional_branch. Only accept ordered
2795 (*branch_zero<mode>_inverted): Rename to...
2796 (*branch_order<mode>_inverted): ...this and update as for
2797 *branch_order<mode>.
2798 (*branch_equality<mode>): Accept zero as the second operand to
2799 the equality operator. Use the new mips_output_conditional_branch
2801 (*branch_equality<mode>_inverted): Likewise.
2802 (condjump): New expander.
2803 * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
2805 * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
2806 (bc1any2t, bc1any2f): Likewise.
2807 (single_cc): New expander.
2808 (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
2810 2006-03-09 Richard Sandiford <richard@codesourcery.com>
2812 * doc/md.texi: Update documentation of MIPS constraints.
2813 * config/mips/constraints.md: New file.
2814 * config/mips/mips.md: Include it.
2815 * config/mips/mips.c (mips_char_to_class): Delete.
2816 (override_options): Don't initialize mips_char_to_class.
2817 * config/mips/mips.h (mips_char_to_class): Delete.
2818 (REG_CLASS_FROM_LETTER): Delete.
2819 (CONST_OK_FOR_LETTER_P): Delete.
2820 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2821 (EXTRA_CONSTRAINT_Y): Delete.
2822 (EXTRA_CONSTRAINT_STR): Delete.
2823 (CONSTRAINT_LEN): Delete.
2824 (EXTRA_MEMORY_CONSTRAINT): Delete.
2826 2006-03-09 Diego Novillo <dnovillo@redhat.com>
2828 * tree-cfg.c (move_block_to_fn): Remove the statements from the
2829 original fn's eh regions.
2831 2006-03-09 Eric Botcazou <ebotcazou@adacore.com>
2833 * fold-const.c (build_range_check): Make sure to use a valid type to
2834 apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
2837 (range_predecessor): New static function.
2838 (range_successor): Likewise.
2839 (merge_ranges): Use them to compute predecessors and successors of
2842 2006-03-09 Roger Sayle <roger@eyesopen.com>
2845 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
2846 X op C3, consider whether C3 overflows towards +Inf or -Inf.
2848 2006-03-08 DJ Delorie <dj@redhat.com>
2850 * config/m32c/addsub.md (addqi3): Disparage a0/a1.
2851 (addpsi3): Expand to include memory operands. Remove
2852 reload-specific splits.
2853 * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
2854 (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
2855 (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
2856 (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
2857 (shift1_qi, shift1_hi, insv): New.
2858 * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
2859 (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
2860 cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
2862 * config/m32c/m32c-protos.h: Update as needed.
2863 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
2864 default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1.
2865 Fail for unrecognized R* constraints.
2866 (m32c_cannot_change_mode_class): Be more picky about pseudos.
2867 (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
2868 (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
2870 (m32c_init_libfuncs): New.
2871 (m32c_legitimate_address_p): Add debug wrapper.
2872 (m32c_rtx_costs): New.
2873 (m32c_address_cost): New.
2874 (conversions): Add 'B' prefix.
2875 (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
2876 operands, or word regnames for QI operands. 'B' prints bit
2878 (m32c_expand_setmemhi): New.
2879 (m32c_expand_movmemhi): New.
2880 (m32c_expand_movstr): New.
2881 (m32c_expand_cmpstr): New.
2882 (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
2883 (m32c_expand_neg_mulpsi3): Handle non-ints.
2884 (m32c_cmp_flg_0): New.
2885 (m32c_expand_movcc): New.
2886 (m32c_expand_insv): New.
2887 (m32c_scc_pattern): New.
2888 * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take
2889 a0/a1 out of SIregs.
2890 (STORE_FLAG_VALUE): New.
2891 * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and
2894 * config/m32c/mov.md: Make constraints more liberal.
2895 (zero_extendqihi2): Optimize r0/r1 case.
2896 * config/m32c/muldiv.md (mulpsi3): Check for intvals.
2897 * config/m32c/predicates.md (m32c_any_operand): New.
2898 (m32c_nonimmediate_operand): New.
2899 (m32c_hl_operand): New.
2900 (m32c_r3_operand): New.
2903 (memsym_operand): New.
2904 (memimmed_operand): New.
2905 (a_qi_operand): New.
2906 (m32c_eqne_operator): New.
2907 (m32c_1bit8_operand): New.
2908 (m32c_1bit16_operand): New.
2909 (m32c_1mask8_operand): New.
2910 (m32c_1mask16_operand): New.
2911 * config/m32c/blkmov.md: New file.
2912 * config/m32c/t-m32c (MD_FILES): Add blkmov.
2914 2006-03-08 Andreas Tobler <a.tobler@schweiz.ch>
2916 * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
2917 unsigned to fix signed/unsigned comparison issue in
2918 DWARF2_FRAME_REG_OUT.
2919 (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
2920 unsigned comparison issue in DWARF2_FRAME_REG_OUT.
2922 * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
2923 of ptr into the ENABLE_CHECKING section.
2925 2006-03-08 Jeff Law <law@redhat.com>
2927 * tree-vrp.c (infer_value_range): Only count pointer uses
2928 and dereferences if -fdelete-null-pointer-checks is enabled.
2930 * tree-vrp.c (find_assert_locations): Infer value ranges for
2931 single use pointers, but do not create ASSERT_EXPRs for them.
2932 When a non-null range is inferred for a pointer, backwards
2933 propagate that range to other equivalent pointers through the
2936 2006-03-08 Paolo Bonzini <bonzini@gnu.org>
2939 * Makefile.in (dvi, html, install-info): Invoke the corresponding
2940 language hook targets.
2941 * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
2942 objcp/Make-lang.in: Create stub rules for dvi, html, install-info
2943 if language hook targets were missing.
2945 2006-03-07 Zdenek Dvorak <dvorakz@suse.cz>
2947 * tree-ssa-opfinalize.h: Removed.
2948 * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
2950 * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
2951 (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
2952 INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
2953 add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
2954 finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2955 finalize_ssa_v_must_def_ops): New.
2957 2006-03-07 Kenneth Zadeck <zadeck@naturalbridge.com>
2959 * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
2962 2006-03-07 Geoffrey Keating <geoffk@apple.com>
2964 * varasm.c (assemble_end_function): Say that 'fnname' is unused.
2966 * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
2967 addresses with offsets; reorganize.
2969 * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
2970 (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
2971 (expand_builtin_init_dwarf_reg_sizes): Likewise.
2973 2006-03-08 David Billinghurst <David.Billinghurst@riotinto.com>
2976 * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
2978 2006-03-08 Ben Elliston <bje@au.ibm.com>
2980 * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
2982 2006-03-07 Aldy Hernandez <aldyh@redhat.com>
2985 * doc/passes.texi (Tree-SSA passes): Document omp lowering and
2988 2006-03-07 Richard Guenther <rguenther@suse.de>
2990 PR tree-optimization/26587
2991 * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
2993 2006-03-07 Richard Sandiford <richard@codesourcery.com>
2995 * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
2997 2006-03-07 Richard Sandiford <richard@codesourcery.com>
2999 * hooks.c (hook_bool_mode_rtx_true): New function.
3000 * hooks.h (hook_bool_mode_rtx_true): Declare.
3001 * toplev.c (compile_file): Call output_shared_constant_pool.
3002 * varasm.c (shared_constant_pool): New variable.
3003 (assemble_start_function, assemble_end_function): Remove arguments
3004 from call to output_constant_pool.
3005 (create_constant_pool): New function, split out from...
3006 (init_varasm_status): ...here.
3007 (force_const_mem): Choose between the shared and per-function constant
3008 pools. Set current_function_uses_const_pool when reusing old entries
3009 as well as when creating new ones.
3010 (mark_constant): Ignore data argument.
3011 (mark_constants): Remove pool argument.
3012 (mark_constant_pool): Likewise. Use current_function_uses_const_pool
3013 to decide whether the function uses a constant pool.
3014 (output_constant_pool_contents): New function, split out from...
3015 (output_constant_pool): ...here.
3016 (output_shared_constant_pool): New function.
3017 (init_varasm_once): Initialize shared_constant_pool.
3018 * output.h (output_constant_pool): Delete.
3019 (output_shared_constant_pool): Declare.
3020 * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
3021 * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
3023 2006-03-06 Nick Clifton <nickc@redhat.com>
3025 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
3026 flag_strength_reduce.
3028 2006-03-06 Ben Elliston <bje@au.ibm.com>
3030 * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
3031 x86_64-*-linux* configurations.
3033 * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
3034 (LIBGCC2_WORDS_BIG_ENDIAN): Define.
3036 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
3038 * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
3040 * basic-block.h: Remove the extern for
3041 rediscover_loops_after_threading.
3043 * cfgloop.c (cancel_loop): Make it static.
3044 * cfgloop.h: Remove the prototype for cancel_loop.
3046 * flow.c (recompute_reg_usage): Make it static.
3047 * rtl.h: Remove the prototype for recompute_reg_usage.
3049 * function.c (use_return_register): Make it static.
3050 * function.h: Remove the prototype.
3052 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
3054 * recog.c (volatile_mem_p, validate_change_maybe_volatile):
3056 * recog.h: Remove the prototype for
3057 validate_change_maybe_volatile.
3059 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
3061 * rtlanal.c (replace_reg): Remove.
3062 * rtl.h: Remove the prototype for replace_reg.
3064 2006-03-05 Kazu Hirata <kazu@codesourcery.com>
3066 * regclass.c (reg_scan_update): Remove.
3067 (reg_scan_mark_refs): Remove the last argument.
3068 * rtl.h: Remove the prototype for reg_scan_update.
3070 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
3072 * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
3073 combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
3074 config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
3075 config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
3076 df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
3077 loop-invariant.c, omp-low.c, opts.c, passes.c,
3078 rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
3079 tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
3080 tree-ssa-structalias.c, tree-ssa-threadedge.c,
3081 tree-ssa-threadupdate.c, tree-vect-patterns.c,
3082 tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
3083 unwind-dw2.c: Fix comment typos. Follow spelling conventions.
3085 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
3087 * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
3088 * dwarf2out.h: Remove the prototype for
3089 dwarf2out_add_library_unit_info.
3091 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
3093 * tree.c (add_var_to_bind_expr): Remove.
3094 * tree.h: Remove the prototype for add_var_to_bind_expr.
3096 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
3098 * regclass.c (n_non_fixed_regs): Remove.
3099 (init_reg_sets_1, globalize_reg): Remove all uses of
3101 * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
3103 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
3105 * rtlanal.c (insns_safe_to_move_p): Remove.
3106 * rtl.h: Remove the prototype for insns_safe_to_move_p.
3108 2006-03-04 Kazu Hirata <kazu@codesourcery.com>
3110 * expmed.c (expand_mult_add): Remove.
3111 * expr.h: Remove the prototype for expand_mult_add.
3113 2006-03-04 Jakub Jelinek <jakub@redhat.com>
3115 * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
3116 and REG_SAVED_VAL_EXP constants.
3117 * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
3118 (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
3119 Handle regs stored by value.
3120 (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
3121 (execute_cfa_program): Handle DW_CFA_val_offset,
3122 DW_CFA_val_offset_sf and DW_CFA_val_expression.
3123 (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
3124 value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
3125 (uw_install_context_1): Handle target regs stored by value.
3127 2006-03-03 Daniel Berlin <dberlin@dberlin.org>
3129 * tree-sra.c (tree_sra): Return todoflags;
3130 (generate_one_element): Set TODO_update_smt_usage if needed.
3131 (pass_sra): Remove TODO_update_smt_usage.
3132 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
3134 (tree_ssa_forward_propagate_single_use_vars): Return
3135 TODO_update_smt_usage if we need to update SMT usage.
3136 (pass_forwprop): Remove TODO_update_smt_usage.
3138 2006-03-03 Diego Novillo <dnovillo@redhat.com>
3140 * tree-ssa-operands.c: Tidy whitespace. Fix spelling.
3141 (correct_use_link): Remove reference to get_stmt_operands.
3142 (update_stmt_operands): Likewise.
3143 (get_modify_expr_operands): New function factored out of
3144 parse_ssa_operands and get_expr_operands.
3145 Try to create V_MUST_DEFs for LHS by default.
3146 (get_expr_operands) <case MODIFY_EXPR>: Call
3147 get_modify_expr_operands.
3148 <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
3149 <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
3150 (parse_ssa_operands) <case MODIFY_EXPR>: Call
3151 get_modify_expr_operands.
3153 2006-03-03 Kazu Hirata <kazu@codesourcery.com>
3155 * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
3156 * tree-flow.h: Remove the prototype for
3157 referenced_var_lookup_if_exists.
3159 2006-03-03 Steve Ellcey <sje@cup.hp.com>
3161 PR rtl-optimization/26345
3163 * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
3165 2006-03-03 Roger Sayle <roger@eyesopen.com>
3167 PR tree-optimization/26524
3168 * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
3169 fold_convert to create a constant of the appropriate type.
3171 2006-03-03 Richard Sandiford <richard@codesourcery.com>
3173 * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3174 SYMBOL_REF_IN_BLOCK_P.
3175 * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
3176 of SYMBOL_FLAG_IN_BLOCK.
3177 * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
3178 instead of SYMBOL_REF_IN_BLOCK_P.
3179 * explow.c (use_anchored_address): Likewise.
3180 * rtl.c (rtx_size): Likewise.
3181 * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
3182 instead of SYMBOL_FLAG_IN_BLOCK.
3183 (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3184 SYMBOL_REF_IN_BLOCK_P.
3185 (assemble_variable): Likewise.
3186 (output_constant_def_contents): Likewise.
3187 (output_constant_pool): Likewise.
3188 (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
3189 instead of SYMBOL_FLAG_IN_BLOCK.
3190 * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3191 SYMBOL_REF_IN_BLOCK_P.
3192 (SYMBOL_REF_BLOCK): Likewise.
3193 (SYMBOL_REF_OFFSET): Likewise.
3194 (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
3195 SYMBOL_REF_IN_BLOCK_P.
3196 (SYMBOL_FLAG_IN_BLOCK): Replace with...
3197 (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
3198 (SYMBOL_REF_IN_BLOCK_P): Replace with...
3199 (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
3201 2006-03-03 Jakub Jelinek <jakub@redhat.com>
3203 * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
3205 2006-03-02 Roger Sayle <roger@eyesopen.com>
3207 * simplify-rtx.c (simplify_unary_operation): When simplifying
3208 (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
3209 that we perform the right shift in the appropriate mode, and
3210 then extend or truncate the result to requested mode.
3212 2006-03-03 Zdenek Dvorak <dvorakz@suse.cz>
3214 * gengtype.c (main): Handle double_int type.
3215 * tree.h (struct tree_int_cst): Make type of int_cst double_int.
3216 * double-int.c: New file.
3217 * double-int.h: New file.
3218 * system.h: Include doubleint.h.
3219 * Makefile.in (SYSTEM_H): Include double-int.h.
3220 (double-int.o): Add.
3222 2006-03-03 Joseph S. Myers <joseph@codesourcery.com>
3225 * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
3228 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
3230 * tree-vrp.c (remove_range_assertions): Do not update statements
3233 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
3235 * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
3237 * gcse.c (rest_of_handle_gcse): Ditto.
3238 * except.c (gate_handle_eh): Ditto.
3239 * cfgcleanup.c (rest_of_handle_jump2): Ditto.
3240 * basic-block.h (CLEANUP_PRE_LOOP): Remove.
3242 2006-03-02 Eric Christopher <echristo@apple.com>
3244 * config/i386/i386.c (machopic_output_stub): Add indirection to
3247 2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
3251 2006-03-02 David S. Miller <davem@sunset.davemloft.net>
3253 Sun Niagara specific optimizations.
3254 * config.gcc: Recognize niagara as target.
3255 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
3256 (TARGET_CPU_niagara): Define.
3257 (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
3258 (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
3259 (CPP_CPU_SPEC): Handle -mcpu=niagara.
3260 (ASM_CPU_SPEC): Likewise.
3261 (PROCESSOR_NIAGARA): New enum entry.
3262 (REGISTER_MOVE_COST): Handle Niagara.
3263 (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
3264 * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
3265 (sparc_override_options): Recognize "niagara", set appropriate
3266 default MASK_* values for it, and align functions to 32-bytes
3267 by default just like ULTRASPARC/ULTRASPARC3.
3268 (sparc_initialize_trampoline): Handle niagara like ultrasparc.
3269 (sparc64_initialize_trampoline): Likewise.
3270 (sparc_use_sched_lookahead): Use zero for niagara.
3271 (sparc_issue_rate): Use one for niagara.
3272 * config/sparc/niagara.md: New file.
3273 * config/sparc/sparc.md: Include it.
3274 * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
3275 ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
3276 when default cpu is niagara.
3277 (CPP_CPU_SPEC): Handle -mcpu=niagara.
3278 (ASM_CPU_SPEC): Likewise.
3279 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
3280 when default cpu is niagara.
3281 (ASM_CPU_SPEC): Handle -mcpu=niagara.
3282 * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
3283 just like v9/ultrasparc/ultrasparc3.
3284 * doc/invoke.texi: Add documentation for "niagara" and improve
3285 existing documentation for ultrasparc variants.
3287 2006-03-02 Diego Novillo <dnovillo@redhat.com>
3289 * tree-ssa-operands.c (update_stmt_operands): Update documentation.
3291 2006-03-02 Richard Sandiford <richard@codesourcery.com>
3293 * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
3294 (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
3295 and say that only one is needed.
3296 * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
3297 * target.h (have_switchable_bss_sections): New hook.
3298 * explow.c (use_anchored_address): Check that the symbol is in a block.
3299 * varasm.c (tls_comm_section, comm_section, lcomm_section)
3300 (bss_noswitch_section): New variables.
3301 (get_unnamed_section): Add SECTION_UNNAMED to the flags.
3302 (get_noswitch_section): New function.
3303 (get_block_for_section): Allow SECT to be null.
3304 (unlikely_text_section_p): Use SECTION_STYLE.
3305 (bss_initializer_p): New function.
3306 (get_variable_section): Move earlier in file. Take a new argument,
3307 prefer_noswitch_p. Move bss checks from assemble_variable to here.
3308 Return one of the new *_sections in such cases.
3309 (get_block_for_decl): New function, extracting some logic from
3310 use_blocks_for_decl_p.
3311 (change_symbol_section): Remove in favor of...
3312 (change_symbol_block): ...this new function.
3313 (use_blocks_for_decl_p): Remove checks now performed by
3315 (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
3316 (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
3317 (emit_local, emit_bss, emit_common): ...these new functions.
3318 Return true if the alignment was honored.
3319 (emit_tls_common): New function.
3320 (asm_emit_uninitialised): Delete.
3321 (assemble_variable_noswitch): New function, split out from...
3322 (assemble_variable): ...here. Don't make decisions about common
3323 variables here. Globalize all public decls that go into non-common
3324 sections. Check whether SYMBOL_REF_BLOCK is null.
3325 (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
3326 (output_constant_pool): Likewise.
3327 (init_varasm_once): Initialize the new section variables.
3328 (have_global_bss_p): New function.
3329 (categorize_decl_for_section): Use bss_initializer_p.
3330 (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
3331 (place_block_symbol): Assert that the symbol must be in a block.
3332 * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
3333 (TARGET_INITIALIZER): Include it.
3334 * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
3335 * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
3336 (SECTION_MACH_DEP): Bump by two.
3337 (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
3338 (unnamed_section): Mention SECTION_UNNAMED in comment.
3339 (named_section): Likewise SECTION_NAMED.
3340 (noswitch_section_callback): New type.
3341 (noswitch_section): New structure.
3342 (section): Add a noswitch_section alternative.
3343 (SECTION_STYLE): New macro.
3344 (tls_comm_section, comm_section, lcomm_section): Declare.
3345 (bss_noswitch_section, have_global_bss_p): Declare.
3346 * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
3347 * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
3349 * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
3350 * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
3353 2006-03-02 Daniel Berlin <dberlin@dberlin.org>
3355 * gcc/tree-vrp.c (execute_vrp): Return value.
3356 * gcc/regrename.c (rest_of_handle_regrename): Ditto.
3357 * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
3358 * gcc/tree-complex.c (tree_lower_complex): Ditto.
3359 (tree_lower_complex_O0): Ditto.
3360 * gcc/tracer.c (rest_of_handle_tracer): Ditto.
3361 * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
3362 * gcc/postreload.c (rest_of_handle_postreload): Ditto.
3363 * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
3364 (execute_tail_calls): Ditto.
3365 * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3366 * gcc/tree.h (init_function_for_compilation): Ditto.
3367 * gcc/ipa-cp.c (ipcp_driver): Ditto.
3368 * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
3369 * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
3370 * gcc/final.c (compute_alignments): Ditto.
3371 (rest_of_handle_final): Ditto.
3372 (rest_of_handle_shorten_branches): Ditto.
3373 (rest_of_clean_state): Ditto.
3374 * gcc/omp-low.c (execute_expand_omp): Ditto.
3375 (execute_lower_omp): Ditto.
3376 * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
3377 * gcc/ipa-reference.c (static_execute): Ditto.
3378 * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
3379 * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
3380 (rest_of_handle_machine_reorg): Ditto.
3381 * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
3382 * gcc/flow.c (recompute_reg_usage): Ditto.
3383 (rest_of_handle_remove_death_notes): Ditto.
3384 (rest_of_handle_life): Ditto.
3385 (rest_of_handle_flow2): Ditto.
3386 * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
3387 * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
3388 (do_ssa_store_ccp): Ditto.
3389 (execute_fold_all_builtins): Ditto.
3390 * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
3391 * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
3392 * gcc/ipa-pure-const.c (static_execute): Ditto.
3393 * gcc/cse.c (rest_of_handle_cse): Ditto.
3394 (rest_of_handle_cse2): Ditto.
3395 * gcc/web.c (rest_of_handle_web): Ditto.
3396 * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
3397 * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
3398 * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
3399 * gcc/tree-nrv.c (tree_nrv): Ditto.
3400 (execute_return_slot_opt): Ditto.
3401 * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
3402 (create_structure_vars): Ditto.
3403 * gcc/loop-init.c (rtl_loop_init): Ditto.
3404 (rtl_loop_done): Ditto.
3405 (rtl_move_loop_invariants): Ditto.
3406 (rtl_unswitch): Ditto.
3407 (rtl_unroll_and_peel_loops): Ditto.
3408 (rtl_doloop): Ditto.
3409 * gcc/gimple-low.c (lower_function_body): Ditto.