OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
2
3         PR target/26765
4         * config/mips/mips.c (mips_symbolic_address_p): Return true
5         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
6         SYMBOL_GOTTPREL, and SYMBOL_TLS.
7
8 2006-05-04  Richard Guenther  <rguenther@suse.de>
9
10         PR tree-optimization/14287
11         PR tree-optimization/14844
12         PR tree-optimization/19792
13         PR tree-optimization/21608
14         PR tree-optimization/27090
15         * tree-ssa-pre.c (try_combine_conversion): New function.
16         (compute_avail): After constructing the value-handle
17         expression, use try_combine_conversion to combine NOP_EXPRs
18         with previous value-handle expressions and use the result if it
19         is available.
20
21 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
22
23         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
24
25 2006-05-04  Jan Hubicka  <jh@suse.cz>
26
27         PR middle-end/25962
28         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
29
30 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
31
32         * config/bfin/predicates.md (const01_rtx): Tell generator programs
33         that this only matches CONST_INTs.  All users changed to VOIDmode
34         operands.
35
36         * config/bfin/bfin.c: Include "optabs.h".
37         (bfin_rtx_costs): Some costs for vector operations, to allow combine
38         to do more work.
39         (enum bfin_builtins): Add a number of fractional and vector builtins.
40         (bfin_init_builtins): Likewise.
41         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
42         (safe_vector_operand, bfin_expand_binop_builtin,
43         bfin_expand_unop_builtin): New functions.
44         (bfin_expand_builtin): Handle the new builtins.
45         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
46         __ADSPBLACKFIN__.
47
48 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
49
50         * see.c: New file.
51         * Makefile.in (OBJS-common): Add see.o.
52         (see.o): Add dependencies.
53         * common.opt (fsee): New flag for the see optimization was added.
54         * opts.c (flag_see): Initialized.
55         * passes.c (init_optimization_passes, pass_see): New pass.
56         * rtl.h (see_main): Declaration as extern.
57         * timevar.def (TV_SEE): New.
58         * tree-pass.h (pass_see): Declaration as extern.
59         * invoke.texi (-fsee): Document.
60         * recog.c (validate_simplify_insn): New function.
61         * recog.h (validate_simplify_insn): Declaration as extern.
62         * df-problems.c (df_chain_dump): Check for NULL.
63
64 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
65             Daniel Berlin  <dberlin@dberlin.org>
66
67         * cfgrtl.c (insert_insn_bb_end_new): New function.
68         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
69
70 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
71
72         * df.h (struct web_entry): Moved from web.c.
73         (union_defs): Declaration as extern.
74         (unionfind_root): Likewise.
75         (unionfind_union): Likewise.
76         * web.c (struct web_entry): Moved to df.h.
77         (unionfind_root): Remove static declaration.
78         (unionfind_union): Likewise.
79         (union_defs): Likewise and generalize to use callback function.
80         (web_main): Update arguments for union_defs function call.
81
82 2006-05-04  Richard Guenther  <rguenther@suse.de>
83
84         PR tree-optimization/26447
85         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
86         produce SSA_NAME copies before the store stmt to avoid
87         breaking exception handling.
88
89 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
90
91         PR middle-end/27388
92         * gimplify.c (omp_is_private): If var is shared in some outer context,
93         return false instead of true.  Stop searching on parallel context
94         boundary.
95
96 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
97
98         PR java/8260
99         * coverage.c: Use get_gcov_unsigned_t() instead of
100         unsigned_type_node all over.
101
102 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
103
104         PR tree-optimization/27381
105         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, 
106         maintain the same immediate_use links.
107         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker 
108         node rather than segfaulting.
109
110 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
111
112         PR fortran/27395
113         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
114         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
115         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
116
117 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
118
119         Fix PR tree-optimization/26626
120         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
121         always.
122         * tree-ssa-operands.c (access_can_touch_variable): Allow
123         typecasting through union pointers.
124
125 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
126
127         PR c++/26943
128         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
129         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
130         to find if var will be a global variable even in the nested context.
131         (omp_copy_decl): Only check for global variable at the end, it might
132         be overridden in outer contexts.
133         (scan_sharing_clauses): For global variables don't create a field.
134         (lower_rec_input_clauses): Do nothing for global shared variables.
135         Emit a barrier at the end of ILIST if there were any decls in both
136         firstprivate and lastprivate clauses.
137         (lower_send_clauses): Do nothing for global variables except for
138         COPYIN.
139
140 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
141
142         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
143         of the correct signedness is returned.
144
145 2006-05-02  Jeff Law  <law@redhat.com>
146
147         PR tree-optimization/27364
148         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
149         multiply expressions.
150
151 2006-05-02  Tom Tromey  <tromey@redhat.com>
152
153         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
154
155 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
156
157         PR target/27387
158         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
159         -mthumb -fPIC are used.
160
161 2006-05-02  Joshua Kinard  <kumba@gentoo.org>
162
163         PR target/25871
164         * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
165         with 64-bit pointers.
166
167 2006-05-02  Paul Brook  <paul@codesourcery.com>
168
169         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
170         and pool overlap.
171         (create_fix_barrier): Check that a suitable barrier location is
172         found.
173         (arm_reorg): Include ftmp->address in allowable range of addresses.
174
175 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
176
177         PR ada/27366
178         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment 
179         on Cygwin.
180
181 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
182
183         PR middle-end/27337
184         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
185         around RESULT_DECL for result passed by reference.
186         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
187         * omp-low.c (use_pointer_for_field): Don't look at
188         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
189         (scan_omp_1): Call remap_decl on RESULT_DECLs.
190         (lower_rec_input_clauses): Don't allocate VLA memory for the second
191         time or var for passing by reference for
192         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
193         TREE_ADDRESSABLE variables when passing by reference.
194
195         * omp-low.c (dump_omp_region): Fix output formatting.
196
197         PR middle-end/27328
198         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
199         (expand_omp_parallel): Likewise.
200         * tree-cfg.c (move_sese_region_to_fn): Likewise.
201
202         PR middle-end/27325
203         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
204         on statement list containing also constructors and destructors.
205         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
206
207         PR middle-end/27310
208         * except.c (duplicate_eh_regions): Fix clearing of
209         cfun->eh->region_array entries.
210
211 2006-05-01  DJ Delorie  <dj@redhat.com>
212
213         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
214         build!=host.
215         (gcc_cv_objdump): Likewise.
216         * configure: Regenerated.
217
218 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
219
220         PR target/27374
221         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
222         templates for case 3 and 4.
223
224 2006-05-01  DJ Delorie  <dj@redhat.com>
225
226         * vec.c: Include bconfig.h when appropriate.
227         * Makefile.in (build/vec.o): Adjust dependencies.
228         * mkconfig.sh: Make sure config.h isn't used for build machine
229         compiles.
230
231 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
232
233         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
234         variables.
235         (mark_phi_for_rewrite): New function.
236         (insert_phi_nodes_for, mark_use_interesting): Call
237         mark_phi_for_rewrite.
238         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
239         (update_ssa): Initialize and free phis_to_rewrite.
240
241 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
242
243         PR rtl-optimization/27291
244         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
245         folded to a constant.
246
247 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
248
249         PR tree-optimization/27283
250         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
251         not whole # of iteration descriptions.
252         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
253         uses abnormal ssa name.
254         (niter_for_single_dom_exit): Ditto.
255         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
256         return just the number of iterations.
257
258 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
259
260         PR tree-optimization/27144
261         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
262         (record_estimate): Only record constant upper bound.
263         (infer_loop_bounds_from_undefined): Call
264         compute_estimated_nb_iterations just once.
265         (proved_non_wrapping_p): Renamed to ...
266         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
267         (convert_step_widening, scev_probably_wraps_p): Call
268         n_of_executions_at_most instead of proved_non_wrapping_p.
269         (substitute_in_loop_info): Do not replace values in bounds.
270         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
271         comments.
272
273 2006-05-01  Richard Henderson  <rth@redhat.com>
274
275         PR c/27358
276         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
277         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
278         CPP_PRAGMA.
279
280 2006-05-01  Roger Sayle  <roger@eyesopen.com>
281
282         * c-typeck.c (parser_build_binary_op): Don't call the function
283         unsigned_conversion_warning to spot operand/result type overflow.
284         (build_binary_op): Instead, call convert_and_check instead of
285         convert to report the problem when the operands are promoted.
286         * c-common.c (unsigned_conversion_warning): Make static.
287         * c-common.h (unsigned_conversion_warning): Delete prototype.
288
289 2006-05-01  Richard Guenther  <rguenther@suse.de>
290
291         PR tree-optimization/26726
292         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
293         problem ...
294         (find_interesting_uses_address): ... we work around here
295         by folding INDIRECT_REFs in the substituted base.
296
297 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
298
299         * omp-low.c (dump_omp_region): Add newlines.
300
301 2006-04-30  Roger Sayle  <roger@eyesopen.com>
302
303         * common.opt (Woverflow): New command line option.
304         * c-common.c (constant_expression_warning): Check warn_overflow.
305         (overflow_waring): Pass OPT_Woverflow to warning.
306         (unsigned_conversion_warning): Likewise.
307         (convert_and_check): Likewise.
308         * doc/invoke.texi: Document new command line option.
309
310 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
311
312         * config/rs6000/rs6000.c (rs6000_override_options): Enable
313         TARGET_NO_FP_IN_TOC for section anchors.
314         (optimization_options): Enable section anchors for all
315         non-"Objective" languages.
316
317 2006-04-28  Eric Christopher  <echristo@apple.com>
318
319         * config/darwin-c.c (darwin_ms_struct): Move this
320         (darwin_set_default_type_attributes): and this...
321         * config/darwin.c: ... here.
322         * config/darwin.h (darwin_ms_struct): Declare.
323
324 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
325
326         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
327
328 2006-04-28  Roger Sayle  <roger@eyesopen.com>
329
330         PR c/25309
331         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
332         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
333         an unsigned HOST_WIDE_INT.
334         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
335         array index.
336         (really_start_incremental_init): No need to call convert because
337         bitsize_zero_node is already of type bitsizetype.
338         (push_init_level): Extract the value of constructor_index as an
339         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
340         (process_init_element): Likewise.
341
342 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
343
344         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
345         value before passing to make_relative_prefix.
346
347 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
348
349         PR middle-end/27260
350         * builtins.c (expand_builtin_memset): Expand val in original mode.
351
352 2006-04-27  Eric Christopher  <echristo@apple.com>
353
354         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
355         with #ifndef/#endif.
356         * config/darwin-c.c (darwin_ms_struct): New.
357         (darwin_pragma_ms_struct): Ditto.
358         (darwin_set_default_type_attributes): Ditto.
359         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
360         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
361         Register ms_struct pragma.
362         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
363         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
364         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
365         darwin_set_default_type_attributes if TARGET_MACHO.
366
367 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
368
369         PR tree-optimization/26854
370         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
371         * doc/tree-ssa.texi: Update immuse iterator documentation.
372         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
373         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
374         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
375         first_safe_imm_use, next_safe_imm_use): Remove.
376         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
377         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
378         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
379         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
380         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
381         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
382         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
383         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
384         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
385         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
386         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
387         (perfect_nestify): Use new iterator.
388         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
389         iterator.
390         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
391         (next_imm_name): New field in struct immediate_use_iterator_d.
392         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
393         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
394         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
395         * tree-cfg.c (replace_uses_by): Use new iterator.
396         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
397         * tree-ssa-operands.c (correct_use_link): Remove.
398         (finalize_ssa_use_ops): No longer call correct_use_link.
399
400 2006-04-27  Stuart Hastings  <stuart@apple.com>
401
402         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
403         * config/t-darwin (crt3.o): Use it.
404         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
405         'pmode', use Pmode instead of SImode for SYMBOL_REF.
406         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
407         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
408         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
409         support.
410
411 2006-04-27  Roger Sayle  <roger@eyesopen.com>
412
413         * expmed.c (store_fixed_bit_field): If we're not optimizing for
414         size, force the intermediate into a new pseudo rather instead of
415         performing both a bitwise AND and a bitwise IOR in memory.
416
417 2006-04-27  Richard Guenther  <rguenther@suse.de>
418
419         PR rtl-optimization/26685
420         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
421         this one "max-flow-memory-locations".
422
423 2006-04-27  Richard Guenther  <rguenther@suse.de>
424
425         PR tree-optimization/25148
426         * tree-vrp.c (compare_values): Remove code dealing with
427         comparisons against type min/max value.  Honour overflow
428         and negative constants in code dealing with comparisons
429         of plus and minus expressions.
430         (value_inside_range): Use fold_binary with LE_EXPR and
431         GE_EXPR rather than compare_values.
432
433 2006-04-27  Dirk Mueller  <dmueller@suse.de>
434
435         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
436         prototype for SSE.
437
438 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
439
440         * basic-block.h (safe_insert_insn_on_edge): Removed.
441         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
442
443
444 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
445             Paolo Bonzini  <bonzini@gnu.org>
446
447         PR middle-end/27282
448         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
449         (simplify_and_const_int): Same.
450
451 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
452
453         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
454
455 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
456
457         PR c/26171
458         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
459         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
460         cgraph_global_info_ready.
461
462         PR middle-end/26913
463         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
464
465         PR c/25996
466         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
467         either decl or init is error_mark_node.
468
469         PR middle-end/25989
470         * tree-flow.h (struct omp_region): Add sched_kind.
471         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
472         instead of extracting omp for data.
473         (expand_omp_for): Save extracted sched_kind.
474
475 2006-04-25  Roger Sayle  <roger@eyesopen.com>
476
477         * expmed.c (store_bit_field): Also check whether the bitsize is
478         valid for the machine's "insv" instruction before moving the
479         target into a pseudo for use with the insv.
480         * config/i386/predicates.md (const8_operand): New predicate.
481         * config/i386/i386.md (extv, extzv, insv): Use the new
482         const8_operand predicate where appropriate.
483
484 2006-04-25  DJ Delorie  <dj@redhat.com>
485
486         * doc/install.texi (Specific): Clarify that this is not a list of
487         supported hosts or targets.
488
489 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
490
491         PR rtl-optimization/26725
492         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
493         block's BB_DIRTY flag.
494
495 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
496
497         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
498         are no branches.
499
500         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
501         to print an integer.
502
503 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
504
505         * varasm.c (align_variable): New function.
506         (get_block_for_decl): Apply align_variable to DECL before
507         calculating section information.
508         (assemble_variable): Split out alignment computation.
509
510 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
511
512         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
513         machines.
514
515 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
516
517         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
518         MODE_PARTIAL_INT mode.
519         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
520         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
521         for CONST_INTs.
522         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
523         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
524         V2PDImode.
525         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
526         New predicates.
527         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
528         New constants.
529         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
530         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
531         MACFLAG_IH): Likewise.
532         (movstricthi_1): Renamed from "*movstricthi".
533         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
534         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
535         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
536         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
537         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
538         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
539         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
540         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
541         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
542         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
543         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
544         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
545         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
546         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
547         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
548
549         * doc/rtl.texi (ss_ashift): Improve wording.
550
551 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
552
553         * dwarf2out.c (verify_marks_clear): New.
554         (prune_unused_types): Call verify_marks_clear initially, not
555         prune_unmark_dies.
556
557 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
558
559         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
560         * doc/rtl.texi: Document them.
561         * simplify-rtx.c (simplify_unary_operation,
562         simplify_binary_operation_1): Don't abort when we see them.
563
564 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
565
566         Revert:
567         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
568         * configure.ac: Completely disregard languages that are not
569         enabled.
570         * configure: Regenerated.
571
572 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
573         Richard Guenther  <rguenther@suse.de>
574
575         PR tree-optimization/27236
576         * tree-inline.c (copy_body_r): Make sure to copy
577         TREE_THIS_VOLATILE flag.
578
579 2006-04-24  Richard Guenther  <rguenther@suse.de>
580
581         PR middle-end/26869
582         * tree-complex.c (update_parameter_components): Don't handle
583         unused parameters which have no default def.
584
585 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
586         Richard Guenther  <rguenther@suse.de>
587
588         PR tree-optimization/27218
589         * tree-inline.c (expand_call_inline): Strip useless type
590         conversions for the return slot address.
591
592 2006-04-24  Richard Guenther  <rguenther@suse.de>
593
594         * cfgloop.h (struct loops): Remove unused field array.  Reorder
595         state after num.
596         (LOOP_PREFETCH): Remove.
597
598 2006-04-24  Richard Guenther  <rguenther@suse.de>
599
600         PR tree-optimization/22525
601         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
602         variable, adjust types of generated expressions.
603
604 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
605
606         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
607         (tree-vect-patterns.o): Likewise.
608         (jump.o): Likewise.
609         (cselib.o): Likewise.
610         (loop-doloop.o): Likewise.
611         (regclass.o): Likewise.
612         (reload1.o): Likewise.
613         (explow.o): Replace target.h with $(TARGET_H).
614         (ipa-prop.o): Likewise.
615         (ipa-cp.o): Likewise.
616         (ipa-inline.o): Likewise.
617         (reorg.o): Likewise.
618         (reg-stack.o): Likewise.
619
620 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
621
622         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
623
624 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
625
626         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
627
628         * configure.ac: Completely disregard languages that are not
629         enabled.
630         * configure: Regenerated.
631
632         PR c++/26534
633         * c-common.h (c_build_bitfield_integer_type): Declare.
634         * c-decl.c (c_build_bitfield_integer_type): Move to ...
635         * c-common.c (c_build_bitfield_integer_type): ... here.
636
637 2006-04-23  Roger Sayle  <roger@eyesopen.com>
638
639         PR target/21283
640         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
641         a SImode SUBREG of a floating point register after no_new_pseudos.
642
643 2006-04-23  Roger Sayle  <roger@eyesopen.com>
644
645         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
646         identify potentially eliminable registers to additionally catch
647         VIRTUAL_INCOMING_ARGS_REGNUM.
648         (addsi3): Update the conditions on when to use addsi_small_int.
649
650 2006-04-23  Roger Sayle  <roger@eyesopen.com>
651
652         PR target/16641
653         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
654         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
655         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
656
657 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
658
659         * fold-const.c (range_predecessor): Use operand_equal_p
660         as the predicate for equality.
661         (range_successor): Likewise.
662
663 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
664
665         Revert:
666         * config/soft-fp/op-common.h: Fix a typo.
667
668 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
669
670         PR libmudflap/26864
671         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
672         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
673
674 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
675
676         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
677         Fix comment typos.
678         * doc/tm.texi: Fix a typo.
679
680 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
681
682         * dwarf2out.c (struct die_struct): Document that die_sib makes
683         a circular linked list.
684         (FOR_EACH_CHILD): New.
685         (reverse_die_lists): Delete.
686         (reverse_all_dies): Delete.
687         (add_dwarf_attr): Correct documentation.
688         (remove_child_with_prev): New.
689         (remove_child_TAG): Update for change to die_struct, use
690         remove_child_with_prev.
691         (add_child_die): Update for change to die_struct.
692         (splice_child_die): Use remove_child_with_prev and add_child_die.
693         (print_die): Use FOR_EACH_CHILD.
694         (die_checksum): Likewise.
695         (assign_symbol_names): Likewise.
696         (output_location_lists): Likewise.
697         (build_abbrev_table): Likewise.
698         (calc_die_sizes): Likewise.
699         (mark_dies): Likewise.
700         (unmark_dies): Likewise.
701         (unmark_all_dies): Likewise.
702         (output_die): Likewise.
703         (prune_unused_types_mark): Likewise.
704         (prune_unused_types_walk): Likewise.
705         (same_die_p): Update for change to die_struct.
706         (break_out_includes): Likewise.
707         (prune_unused_types_prune): Likewise.
708         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
709         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
710         it's already clear.
711         (dwarf2out_finish): Don't call reverse_all_dies.
712
713 2006-04-21  Eric Christopher  <echristo@apple.com>
714
715         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
716         in comments and function names.
717
718 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
719
720         PR c/25875
721         * c-typeck.c (digest_init): Robustify.
722
723         * c-typeck.c (pop_init_level): Simplify.
724
725 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
726
727         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
728
729 2006-04-21  Paul Brook  <paul@codesourcery.com>
730
731         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
732         hardware floating point.
733
734 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
735
736         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
737         NON_FLOAT_REGS.
738
739 2006-04-21  Nick Clifton  <nickc@redhat.com>
740
741         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
742         OPT_EXTRA_PARTS.
743
744 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
745
746         PR target/27230
747         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
748         C++ lang type in traceback table for Objective-C++.
749
750         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
751
752 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
753
754         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
755
756 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
757
758         PR mudflap/26789
759         * tree-mudflap.c (mudflap_finish_file): Skip function when there
760         were errors.  Remove check for erroneous objects.
761
762 2006-04-20  Jeff Law  <law@redhat.com>
763
764         PR tree-optimization/26854
765         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
766         checking for zero or one use.
767         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
768         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
769         * tree-ssa-reassoc.c (negate_value): Similarly.
770         (reassociate_bb): Similarly.
771
772 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
773
774         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
775         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
776         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
777
778 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
779
780         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
781         fp regs if the last fp arg doesn't fit in regs.
782
783 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
784
785         PR target/27182
786         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
787         that the last insn has the REG_INC note.
788
789 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
790             Nathan Sidwell  <nathan@codesourcery.com>
791
792         PR c/26774
793         * stor-layout.c (update_alignment_for_field): Do not align
794         ERROR_MARK nodes.
795         (place_union_field): Place union field at the start of the union.
796         (place_field): Move ERROR_MARK check later, and use the current
797         allocation position to maintain monotonicity.
798
799 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
800
801         * dominance.c: Include timevar.h.
802         (calculate_dominance_info): Use TV_DOMINANCE.
803         * timevar.def (TV_DOMINANCE): New timevar.
804         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
805
806 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
807
808         PR rtl-optimization/14261
809         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
810         move would be an INSV insn.
811         (noce_process_if_block): Don't optimize if the destination is a
812         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
813
814 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
815
816         * config/s390/s390.md: Add comments with the instructions emitted
817         by an insn pattern if macros are used.
818
819 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
820
821         PR rtl-optimization/26026
822         * fold-const.c (fold_binary): Optimize div and mod where the divisor
823         is a known power of two shifted left a variable amount.
824
825 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
826
827         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
828         to hash table twice when the debug_str section has SECTION_MERGE.
829
830 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
831
832         * config/soft-fp: New directory.  From glibc.
833         * config/soft-fp/t-softfp: New.
834         * config/soft-fp/README: New.
835         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
836         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
837         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
838         (LIBGCC_DEPS): Add $(SFP_MACHINE).
839         * config.gcc: Use rs6000/t-fprules-fpbit or
840         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
841         rs6000/t-fprules.
842         * config/rs6000/sfp-machine.h: New.  Based on glibc.
843         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
844         New.
845         * config/rs6000/t-fprules: Remove fp-bit rules.
846         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
847         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
848         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
849         (softfp_wrap_start, softfp_wrap_end): New.
850
851 2006-04-18  DJ Delorie  <dj@redhat.com>
852
853         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
854
855 2006-04-18  Devang Patel  <dpatel@apple.com>
856
857         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
858
859 2006-04-18  Nick Clifton  <nickc@redhat.com>
860
861         * config/sh/t-symbian: Add rule to build sh-c.o
862         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
863         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
864         (sh_symbian_encode_section_info): Likewise.
865
866 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
867
868         * builtins.c (expand_builtin_strcmp): Cover label definition of
869         do_libcall with HAVE_cmpstrnsi.
870
871 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
872
873         * function.c (temp_slots_at_level, max_slot_level): Use VEC
874         instead of VARRAY.
875         * function.h (temp_slot_p): New.
876         (function): Change the type of x_used_temp_slots to
877         VEC(temp_slot_p,gc) *.
878
879 2006-04-18  Nick Clifton  <nickc@redhat.com>
880
881         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
882         flag_strength_reduce.
883
884         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
885
886 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
887
888         PR target/27117
889
890         Partial revert of revision 112637
891         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
892                     Dale Johannesen  <dalej@apple.com>
893
894         PR target/19653
895         * regclass.c (struct reg_pref): Update documentation.
896         (regclass): Set prefclass to NO_REGS if memory is the best option.
897         (record_reg_classes): Cope with a prefclass set to NO_REGS.
898
899 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
900
901         PR tree-optimization/26821
902         * tree-ssa-math-opts.c (get_constant_one): New.
903         (insert_reciprocals): Use it.
904
905 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
906
907         * dwarf2out.c (free_AT): Delete.
908         (remove_AT): Update string ref counts.
909         (remove_child_TAG): Don't call free_die.
910         (free_die): Delete.
911         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
912         or DW_TAG_GNU_EINCL.
913         (prune_unused_types_walk_attribs): Reset string refcounts.
914         (prune_unused_types_update_strings): New.
915         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
916         call free_die.  Do call prune_unused_types_update_strings.
917         (prune_unused_types): Empty debug_str_hash.
918
919 2006-04-17  Roger Sayle  <roger@eyesopen.com>
920
921         * expr.c (expand_assignment): Optimize away no-op moves where the
922         source and destination are equal and have no side-effects.
923
924 2006-04-17  Richard Guenther  <rguenther@suse.de>
925
926         PR target/26826
927         * reload.c (push_reload): Guard calls to get_secondary_mem
928         for memory subregs.
929
930 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
931
932         * alias.c (reg_base_value, old_reg_base_value): Change the
933         type to VEC(rtx,gc) *.
934         (REG_BASE_VALUE, find_base_value, record_set,
935         init_alias_analysis): Use VEC instead of VARRAY.
936
937         * alias.c (alias_sets): Change the type to
938         VEC(alias_set_entry,gc) *.
939         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
940         VEC instead of VARRAY.
941         (last_alias_set): Remove.
942
943         * cgraph.h (cgraph_edge_p): New.
944         Update the prototype of cgraph_function_versioning.
945         * cgraphunit.c (cgraph_copy_node_for_versioning,
946         cgraph_function_versioning): Use VEC instead of VARRAY.
947         * ipa-cp.c (ipcp_insert_stage): Likewise.
948
949 2006-04-16  Roger Sayle  <roger@eyesopen.com>
950
951         PR target/26961
952         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
953         "A op B" or "A op C", we may need to convert A to the type of B and C.
954
955 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
956
957         * target.h (struct gcc_target): Add mode_rep_extended.
958         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
959         (init_num_sign_bit_copies_in_rep): Initialize it using
960         mode_rep_extended.
961         (truncate_to_mode): Use it.
962         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
963         * targhooks.h (default_mode_rep_extended): Declare it.
964         * targhooks.c (default_mode_rep_extended): Define it.
965         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
966         default_mode_rep_extended.
967         (TARGET_INITIALIZER): Include it.
968         * doc/tm.texi (Misc): Document it.
969         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
970         (mips_truncated_to_mode): New function.
971
972 2006-04-16  Roger Sayle  <roger@eyesopen.com>
973
974         PR middle-end/25474
975         * expr.c (compress_float_constant): Copy the narrow constant into
976         a new pseudo before extending it to its final width.
977
978 2006-04-16  Roger Sayle  <roger@eyesopen.com>
979             Andrew Pinski  <pinskia@gcc.gnu.org>
980             Dale Johannesen  <dalej@apple.com>
981
982         PR target/24076
983         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
984         special case code to implement V8HImode and V16QImode with SSE2.
985
986 2006-04-15  Roger Sayle  <roger@eyesopen.com>
987
988         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
989         trees are constructed with a suitable tree type.
990
991 2006-04-15  Roger Sayle  <roger@eyesopen.com>
992
993         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
994         (integer_onep): Likewise.
995         (integer_all_onesp): Likewise.
996         (integer_pow2p): Likewise.
997         (integer_nonzerop): Likewise.
998         (real_zerop): Likewise.
999         (real_onep): Likewise.
1000         (real_twop): Likewise.
1001         (real_minus_onep): Likewise.
1002         (int_size_in_bytes): Likewise.
1003         (host_integerp): Likewise.
1004
1005 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
1006
1007         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
1008         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
1009         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
1010
1011         * tree-ssa-structalias.h (alias_info): Remove num_references.
1012
1013 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1014
1015         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
1016         (output_bvb patterns): Likewise.
1017         * pa.c (output_bb): Use 'bb' insn for long branch case.
1018         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
1019         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
1020         1.  Correct length operand for alternatives 1 and 2.
1021         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
1022         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
1023
1024 2006-04-14  Roger Sayle  <roger@eyesopen.com>
1025
1026         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
1027         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
1028         were accidentally reverted by r112959.
1029
1030 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
1031
1032         PR middle-end/26823
1033         * except.h (eh_region_outermost): New prototype.
1034         * except.c (eh_region_outermost): New function.
1035         * tree-cfg.c (find_outermost_region_in_block): Use it.
1036
1037 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
1038
1039         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
1040         of VARRAY.
1041         * reload1.c (reg_equiv_memory_loc_varray): Rename to
1042         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
1043         (init_reload, reload): Use VEC instead of VARRAY.
1044         * reload.h: Update the prototype for
1045         reg_equiv_memory_loc_varray.
1046
1047 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1048             Eric Botcazou  <ebotcazou@libertysurf.fr>
1049
1050         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
1051         register save area.
1052
1053 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
1054
1055         PR middle-end/27134
1056         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
1057         to expand fallback builtin function call.
1058
1059 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
1060
1061         PR middle-end/27095
1062         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
1063         and emit libcall here in case the builtin fails.
1064         (expand_builtin_strcmp): Always emit the libcall here on failure.
1065
1066 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
1067
1068         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
1069         * flow.c (reg_n_info): Change the type to
1070         VEC(reg_info_p,heap) *.
1071         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
1072         instead of VARRAY.
1073         * regs.h (reg_info_p): New.
1074         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
1075         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
1076         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
1077         instead of VARRAY.
1078
1079 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1080
1081         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
1082         defaulting to 100.
1083         * params.h (MAX_SCHED_READY_INSNS): New macro.
1084         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
1085         past MAX_SCHED_READY_INSNS during the first scheduling pass.
1086         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
1087         the ready list for 1 cycle during the first scheduling pass.
1088         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
1089
1090 2006-04-13  Richard Henderson  <rth@redhat.com>
1091
1092         PR libgomp/26651
1093         * gimple-low.c (lower_omp_directive): Remove dead code.
1094         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
1095         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
1096         * omp-low.c (struct omp_region): Move to tree-flow.h.
1097         (root_omp_region): Export.
1098         (omp_regions, lookup_omp_region): Remove.
1099         (determine_parallel_type): Update for struct omp_region changes.
1100         (dump_omp_region): Dump regions with block numbers.
1101         (new_omp_region): Take type and block instead of stmt; malloc
1102         instead of ggc.
1103         (free_omp_region_1, free_omp_regions): New.
1104         (expand_parallel_call): Take entry_stmt as argument; update for
1105         changes to omp_region.
1106         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
1107         (remove_exit_barriers): New.
1108         (expand_omp_parallel): Update for struct omp_region changes.
1109         (expand_omp_synch): Likewise.
1110         (expand_omp): Likewise.
1111         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
1112         (expand_omp_for_static_chunk): Likewise.
1113         (expand_omp_for): Likewise.
1114         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
1115         (expand_omp_sections): Similarly, with GOMP_sections_end.
1116         (expand_omp_single): New.
1117         (build_omp_regions_1): Update for OMP_CONTINUE.
1118         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
1119         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
1120         OMP_SECTIONS_SECTIONS.
1121         (lower_omp_single_simple): Don't emit barrier here.
1122         (lower_omp_single_copy): Likewise.
1123         (lower_omp_single): Fix bindings, and lower to straightline now.
1124         (lower_omp_master, lower_omp_ordered): Likewise.
1125         (lower_omp_critical): Likewise.
1126         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
1127         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
1128         omp edges, free it afterward.
1129         (make_omp_sections_edges): Remove.
1130         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
1131         (move_stmt_r): Handle OMP_CONTINUE.
1132         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
1133         statement pointers to basic blocks.  Add type member.
1134         (root_omp_region, new_omp_region, free_omp_regions): Declare.
1135         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
1136         * tree-inline.c (estimate_num_insns_1): Likewise.
1137         * tree-pretty-print.c (dump_generic_node): Likewise.
1138         * tree-ssa-operands.c (get_expr_operands): Likewise.
1139         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
1140         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
1141         (OMP_CONTINUE): New.
1142         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
1143         (OMP_SECTIONS_SECTIONS): Remove.
1144         (OMP_SECTION_LAST): New.
1145         (OMP_RETURN_NOWAIT): New.
1146
1147 2006-04-13  Roger Sayle  <roger@eyesopen.com>
1148
1149         * fold-const.c (native_encode_vector, native_interpret_real):
1150         Correct obvious mistakes in the previous check-in.
1151
1152 2006-04-13  Roger Sayle  <roger@eyesopen.com>
1153
1154         * fold-const.c (native_encode_expr): New function to encode
1155         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
1156         or VECTOR_CST into a specified buffer.
1157         (native_encode_int): New function.
1158         (native_encode_real): New function.
1159         (native_encode_complex): New function.
1160         (native_encode_vector): New function.
1161         (native_interpret_expr): Inverse of native_encode_expr to convert
1162         a target representation into an INTEGER_CST, REAL_CST etc...
1163         (native_interpret_int): New function.
1164         (native_interpret_real): New function.
1165         (native_interpret_complex): New function.
1166         (native_interpret_vector): New function.
1167         (fold_view_convert_expr): New function to constant fold/evaluate
1168         a VIEW_CONVERT_EXPR of a suitable constant expression.
1169         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
1170         Change call of build1 to fold_build1 when constructing a
1171         VIEW_CONVERT_EXPR.
1172
1173 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
1174             Ulrich Weigand  <uweigand@de.ibm.com>
1175
1176         PR target/27006
1177         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
1178         to be even.
1179
1180 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
1181
1182         PR target/26459
1183         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
1184         optimize to lo_sum for DFmode if !TARGET_FPRS.
1185
1186 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
1187
1188         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
1189         delete_alias_info, compute_flow_sensitive_aliasing,
1190         group_aliases): Use VEC instead of VARRAY.
1191         * tree-ssa-structalias.c (update_alias_info): Likewise.
1192         * tree-ssa-structalias.h (alias_info): Change the type of
1193         processed_ptrs to VEC(tree,heap) *.
1194
1195 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
1196
1197         PR target/27060
1198         * config/sh/lib1funcs.h: New file, broken out of:
1199         * config/sh/lib1funcs.asm.
1200         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
1201         New macros.
1202         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
1203         * config/sh/lib1funcs-Os-4-200.asm: New file.
1204         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
1205         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
1206         (EXTRA_MULTILIB_PARTS): Include it.
1207         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
1208         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
1209         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
1210         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
1211         TARGET_SH2.
1212
1213 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
1214
1215         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
1216         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
1217         tpa_compact, root_var_init, type_var_init): Use VEC instead of
1218         VARRAY.
1219         * tree-ssa-live.h: Include vecprim.h.
1220         (tree_partition_associator_d): Change the type of
1221         first_partition to VEC(int,heap) *.
1222         (tpa_first_partition): Use VEC instead of VARRAY.
1223
1224         * Makefile.in (GTFILES): Move functions.h after tree.h.
1225         * function.c (reset_block_changes, record_block_change,
1226         check_block_change, free_block_changes): Use VEC instead of
1227         VARRAY.
1228         * function.h (function): Change the type of
1229         ib_boundaries_block to VEC(tree,gc) *.
1230         * tree-inline.c (copy_cfg_body): Initialize
1231         ib_boundaries_block to NULL instead of (varray_type) 0.
1232
1233 2006-04-12  Roger Sayle  <roger@eyesopen.com>
1234
1235         * expr.c (emit_group_store): Correct operand order in call to
1236         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
1237         a SUBREG_BYTE of zero.
1238
1239 2006-04-12  Richard Guenther  <rguenther@suse.de>
1240
1241         * profile.c (compute_branch_probabilities): Remove code
1242         encapsulated in !ir_type (), which are remanents of the
1243         removed RTL profiling code.
1244         * rtl-profile.c: Remove.
1245
1246 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
1247
1248         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
1249         magic NULL_RTX comment.
1250         (function_arg): Store entire fp arg to mem if any part should go
1251         on stack.
1252         (rs6000_arg_partial_bytes): Adjust for above change.
1253
1254 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1255
1256         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
1257         if it hasn't been initialized by dwarf2out_init.
1258
1259 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
1260
1261         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
1262         symbolic constants in branch patterns.
1263
1264 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1265
1266         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
1267
1268 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
1269
1270         PR rtl-optimization/27073
1271         * gcse.c (try_replace_reg): Revert last change.  Continue to search
1272         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
1273         on the former.
1274
1275 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
1276
1277         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
1278         aggregate types other than record and union types.
1279         (function_arg): Likewise.
1280         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
1281         small arrays.
1282         (function_value): In 64-bit mode, return objects that require it
1283         in FP registers.
1284
1285 2006-04-11  Roger Sayle  <roger@eyesopen.com>
1286
1287         * dwarf2out.c (premark_used_types): Remove problematic prototype.
1288
1289 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
1290
1291         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
1292
1293 2006-04-03  Jeff Law  <law@redhat.com>
1294
1295         PR/27087
1296         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
1297         alias information too.
1298
1299 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
1300
1301         * gcc/Makefile.in (gcc-cross): Add $(exeext) to target name.
1302
1303 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
1304
1305         PR/21391
1306         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
1307         (premark_used_types_helper): New.
1308         (premark_used_types): New.
1309         (gen_subprogram_die): Call premark_used_types.
1310         (prune_unused_types_walk): Do not prune perennial dies.
1311         * function.c (used_types_insert): New.
1312         * function.h (struct function): Add used_types_hash field.
1313         (used_types_insert): Add prototype.
1314         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
1315         * c-parser.c (c_parser_cast_expression): Save casted types in used
1316         types hash table.
1317
1318 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
1319
1320         PR target/26459
1321         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
1322         rs6000_explicit_options.float_gprs.
1323
1324 2006-04-10  Roger Sayle  <roger@eyesopen.com>
1325
1326         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
1327         from ix86_expand_vector_init_low_nonzero.  Take an additional
1328         one_var argument indicating which element is non-zero.  Support
1329         one_var != 0 for V4SFmode and V4SImode by permuting the result.
1330         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
1331         with one_var instead of ix86_expand_vector_init_low_nonzero.
1332
1333 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
1334
1335         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
1336         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
1337         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
1338         build/genextract.o): Depend on vecprim.h.
1339         * cfglayout.c, df-problems.c, function.c, genextract.c,
1340         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
1341         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
1342         vecprim.h.
1343         * vecprim.h: New.
1344
1345 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
1346
1347         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
1348         Declare VECs of this type.
1349         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
1350         (remove_children): Delete.
1351         (add_dwarf_attr): Use VEC routines.
1352         (add_AT_flag): Update for changes to add_dwarf_attr.
1353         (add_AT_int): Likewise.
1354         (add_AT_unsigned): Likewise.
1355         (add_AT_long_long): Likewise.
1356         (add_AT_vec): Likewise.
1357         (add_AT_string): Likewise.
1358         (add_AT_die_ref): Likewise.
1359         (add_AT_fde_ref): Likewise.
1360         (add_AT_loc): Likewise.
1361         (add_AT_loc_list): Likewise.
1362         (add_AT_addr): Likewise.
1363         (add_AT_lbl_id): Likewise.
1364         (add_AT_lineptr): Likewise.
1365         (add_AT_macptr): Likewise.
1366         (add_AT_offset): Likewise.
1367         (add_AT_range_list): Likewise.
1368         (get_AT): Use VEC_iterate.
1369         (remove_AT): Use VEC_ordered_remove.
1370         (free_die): Fold remove_children into here; have it use VEC_iterate.
1371         (print_die): Use VEC_iterate on attrs.
1372         (reverse_die_lists): Don't reverse attr lists.
1373         (die_checksum): Use VEC_iterate on attrs.
1374         (same_die_p): Likewise.
1375         (output_location_lists): Likewise.
1376         (build_abbrev_table): Likewise.
1377         (size_of_die): Likewise.
1378         (unmark_all_dies): Likewise.
1379         (output_abbrev_section): Likewise.
1380         (output_die): Likewise.
1381         (prune_unused_types_walk_attribs): Likewise.
1382
1383 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1384
1385         * doc/install.texi (*-*-solaris2*): Point to the configure page.
1386
1387 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
1388
1389         PR debug/27057
1390         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
1391
1392 2006-04-09  Roger Sayle  <roger@eyesopen.com>
1393
1394         * expr.c (store_constructor): Don't bother clearing target if
1395         we're about to assign a vector to it using vec_init_optab.
1396
1397 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
1398
1399         * tree-ssa-alias.c (lhs_may_store_to): New function.
1400         (recalculate_used_alone): Handle LHS of calls.
1401
1402 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1403
1404         PR target/27034
1405         PR target/26508
1406         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
1407         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
1408         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
1409         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
1410         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
1411         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
1412         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
1413         stubs.  Add ".align 8" directives before all ".dword" directives.
1414         (GTHREAD_USE_WEAK): Revise comment.
1415         (TARGET_ATTRIBUTE_WEAK): Define.
1416         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
1417         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
1418         * stublib.c: New file.
1419
1420         PR target/26743
1421         PR target/11254
1422         PR target/10274
1423         * pa.md (cbranch patterns): Revise arguments used in calls to
1424         output_cbranch, output_bb and output_bvd.  Add long branch length
1425         attributes.
1426         (fbranch patterns): Handle long branches.
1427         (jump): Revise length check.  Revise arguments for output_lbranch call.
1428         Add long branch length attributes.
1429         (decrement_and_branch_until_zero): Add long branch length attributes.
1430         (output_movb, output_parallel_addb and output_parallel_movb patterns):
1431         Likewise.  Revise arguments for output_parallel_addb and
1432         output_parallel_movb calls.
1433         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
1434         output_parallel_movb and output_parallel_addb): Update prototypes.
1435         * pa.c (output_cbranch): Revise arguments.  Correct handling of
1436         nullification in long branches.
1437         (output_lbranch): Add new argument to control extraction of delay
1438         instruction.
1439         (output_bb): Handle long branches.
1440         (output_bvb, output_dbra, output_movb, output_parallel_movb,
1441         output_parallel_addb): Likewise.
1442
1443 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
1444
1445         PR rtl-optimization/27073
1446         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
1447         not REG_EQUIVs.
1448
1449 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
1450
1451         * tree.h (tree_memory_tag): Add old_used_alone.
1452         (SMT_OLD_USED_ALONE): New macro.
1453         * tree-ssa-alias.c (recalculate_used_alone): Stop
1454         marking things for renaming unnecessarily.
1455
1456 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
1457
1458         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
1459         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
1460         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
1461         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
1462         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
1463         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
1464         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
1465         spelling convensions.
1466         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
1467         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
1468         typos.  Follow spelling conventions.
1469
1470 2006-04-07  DJ Delorie  <dj@redhat.com>
1471
1472         * config/m32c/m32c.c (m32c_function_arg): Structures are always
1473         passed on the stack.
1474         (m32c_init_cumulative_args): When a function returns a structure,
1475         always pass the pointer to that return area on the stack.
1476         (m32c_function_arg_advance): Don't increment the parameter number
1477         if we're processing the returned structure pointer.
1478         (pushm_info): Reverse order of registers.
1479
1480 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
1481
1482         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
1483         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
1484         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
1485         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
1486         build_int_cst_type.
1487         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1488         chrec_fold_multiply): Same.
1489         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
1490         force_expr_to_var_cost): Same.
1491         * tree-mudflap.c (mf_xform_derefs_1): Same.
1492         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
1493
1494 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
1495
1496         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
1497         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
1498         insn.
1499
1500 2006-04-07  Jan Hubicka  <jh@suse.cz>
1501
1502         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
1503
1504 2006-04-07  Richard Guenther  <rguenther@suse.de>
1505
1506         PR tree-optimization/26135
1507         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
1508         loads for store copy-prop.
1509         (copy_prop_visit_stmt): Likewise.
1510
1511 2006-04-05  Robert Millan  <robertmh@gnu.org>
1512
1513         * gcc/config/i386/linux.h:  Add a comment to mark macros that are
1514         being overriden in config/k*bsd-gnu.h.
1515         * gcc/config/kfreebsd-gnu.h:  Redefine GLIBC_DYNAMIC_LINKER instead of
1516         DYNAMIC_LINKER.
1517         * gcc/config/knetbsd-gnu.h:  Ditto.
1518
1519 2006-04-06  Jan Hubicka  <jh@suse.cz>
1520
1521         PR profile/20815
1522         PR profile/26399
1523         * coverage.c (coverage_checksum_string): Reorganize loop to not read
1524         after buffer.
1525
1526 2006-04-06  Mike Stump  <mrs@apple.com>
1527
1528         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
1529         for HAVE_nonlocal_goto to be consistent.
1530         (expand_builtin_nonlocal_goto): Likewise.
1531         (expand_builtin_strcmp): Use #ifdef instead of #if
1532         for HAVE_cmpstrnsi to be consistent.
1533
1534 2006-04-05  DJ Delorie  <dj@redhat.com>
1535
1536         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
1537         vs m32c.
1538
1539 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1540
1541         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
1542         got-relative addressing for anything but SImode.
1543
1544         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
1545         even if the calling function doesn't modify them.
1546
1547 2006-04-05  Richard Guenther  <rguenther@suse.de>
1548
1549         PR tree-optimization/26919
1550         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
1551         to cgraph_estimate_size_after_inlining.
1552
1553 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
1554
1555         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
1556
1557 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
1558
1559         PR tree-optimization/26996
1560         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
1561         VECTOR_TYPE variables.
1562
1563 2006-04-05  Richard Guenther  <rguenther@suse.de>
1564
1565         PR tree-optimization/26763
1566         * fold-const.c (fold_comparison): Move folding of
1567         PTR + CST CMP PTR + CST ...
1568         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
1569
1570 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
1571
1572         * doc/install.texi (Prerequisites): Refine some wording on
1573         bootstrapping and ksh.
1574         Move the version numbers of DejaGnu here from the testing section
1575         and fix casing of names.
1576         Fix markup and clarify wording for autogen requirements.
1577         Refer to GCJ instead of just java.
1578         Refer to SVN instead of CVS.
1579         Describe diffutils as useful instead of necessary.
1580         (Downloading the source): Refer to SVN instead of CVS.
1581         Adjust a link to our web site accordingly.
1582         (Configuration): Fix casing of Bison.
1583         (Building): Refer to SVN instead of CVS.
1584         Fix a sentence on the use of Bison and remove duplicate (and
1585         incorrect) version number of Bison requirement.
1586         Remove one redundant list of packages needed for building.
1587         (Specific): Avoid reference to CVS.
1588
1589 2006-04-04  Eric Christopher  <echristo@apple.com>
1590
1591         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
1592         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
1593         (rs6000_handle_struct_attribute): New.
1594         (rs6000_ms_bitfield_layout_p): Ditto.
1595
1596 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
1597
1598         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
1599         NULL for dso parameter to atexit_common.
1600
1601 2006-04-04  Eric Christopher  <echristo@apple.com>
1602
1603         * config/i386/i386.c (machopic_output_stub): Output \t
1604         between instructions and operands.
1605
1606 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
1607
1608         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
1609         satisfies_constraint_[IL] to explicit tests on value.
1610
1611 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
1612
1613         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1614         set_nb_iterations_in_loop): Use build_int_cst instead of
1615         build_int_cst_type.
1616         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
1617         build_int_cst instead of convert.
1618
1619 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
1620
1621         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
1622         new value 2 for incoming.
1623         * function.c (expand_function_start): Call struct_value_rtx
1624         with incoming as 2.
1625         * config/sparc/sparc.md: Comment updated_return.
1626         * config/sparc/sparc.opt: Add -mstd-struct-return option.
1627         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
1628         struct return if sparc_std_struct_return and incoming is 2.
1629         (print_operand): Do not adjust return if
1630         sparc_std_struct_return.
1631
1632 2006-04-04  Roger Sayle  <roger@eyesopen.com>
1633
1634         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
1635         convert in the middle-end.
1636         * expr.c (store_expr, store_constructor, get_inner_reference,
1637         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
1638         Likewise.
1639         * tree.c (build_range_type): Likewise.
1640
1641 2006-04-04  Tom Tromey  <tromey@redhat.com>
1642
1643         * doc/install.texi (Prerequisites): Mention jar.
1644
1645 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
1646
1647         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
1648         subsection.
1649
1650 2006-04-04  Matthias Klose  <doko@debian.org>
1651
1652         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
1653         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
1654         strings.
1655
1656 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
1657
1658         * doc/extend.texi (Function Attributes): Rewrite visibility
1659         attribute documentation.
1660         * doc/invoke.texi (C++ Dialect Options): Rewrite
1661         -fvisibility-inlines-hidden documentation to describe something
1662         entirely different, although in practise compatible.
1663         (Code Gen Options): Warn about system headers in -fvisibiltity=
1664         documentation.
1665
1666         * doc/extend.texi (Other Builtins): Document that
1667         __builtin_nan is a compile-time constant only when its argument
1668         is valid.
1669
1670 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1671
1672         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
1673         trying to remove TRUNCATE check if all bits outside the new mode
1674         are identical to the sign bit.
1675
1676 2006-04-03  Jeff Law  <law@redhat.com>
1677
1678         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
1679         and operand scanning in some common cases.
1680
1681 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
1682             Dale Johannesen  <dalej@apple.com>
1683
1684         PR target/19653
1685         * regclass.c (struct reg_pref): Update documentation.
1686         (regclass): Set prefclass to NO_REGS if memory is the best option.
1687         (record_reg_classes): Cope with a prefclass set to NO_REGS.
1688         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
1689         into account.  For non-registers, equate an empty preferred
1690         reload class to a `!' in the constraint; move the if clause to
1691         do so after those that reject the insn.
1692         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
1693         return NO_REGS.
1694         (find_dummy_reload): Likewise.
1695         * doc/tm.texi (Register Classes): Document what it means
1696         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
1697         * config/i386/i386.c (ix86_preferred_reload_class): Force
1698         using SSE registers (and return NO_REGS for floating-point
1699         constants) if math is done with SSE.
1700         (ix86_preferred_output_reload_class): New.
1701         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
1702         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
1703         * config/i386/i386.md: Remove # register preferences.
1704
1705 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1706
1707         PR bootstrap/26992
1708         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1709         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
1710         the type of nb_iter.
1711         (instantiate_parameters_1): Convert the operands before calling
1712         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
1713         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
1714
1715 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1716
1717         * builtins.c (dummy_object): Use build_int_cst instead of convert.
1718         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
1719         instead of convert.
1720         * dojump.c (do_jump): Likewise.
1721         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
1722         * gimplify.c (gimple_boolify, gimplify_init_constructor,
1723         gimplify_boolean_expr): Likewise.
1724         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1725         * varasm.c (array_size_for_constructor): Likewise.
1726         * tree-object-size.c (compute_object_offset): Likewise.
1727
1728 2006-04-02  Roger Sayle  <roger@eyesopen.com>
1729
1730         PR middle-end/26977
1731         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
1732         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
1733
1734 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1735
1736         PR tree-optimization/26939
1737         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
1738
1739 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1740
1741         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
1742         at_stmt.  Convert the type of operands before calling
1743         build_polynomial_chrec.
1744         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
1745         add_to_evolution_1.
1746         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
1747         (instantiate_parameters_1): Convert the type of operands before calling
1748         build_polynomial_chrec.
1749         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
1750         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
1751         reset_evolution_in_loop): Insert asserts to check the types of the
1752         operands.
1753         (chrec_type): Moved...
1754         (eq_evolutions_p): Use operand_equal_p.
1755         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
1756         the types of the operands.
1757         (chrec_type): ...here.
1758         * tree-data-ref.c (create_data_ref): Convert the operands before
1759         calling chrec_replace_initial_condition.
1760         (same_access_functions, analyze_subscript_affine_affine,
1761         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
1762         (compute_subscript_distance, analyze_ziv_subscript,
1763         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
1764         analyze_miv_subscript): Convert the operands before calling
1765         chrec_fold_minus or chrec_fold_plus.
1766
1767 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
1768
1769         * tree-data-ref.c (compute_all_dependences): Use a pointer to
1770         the dependence_relations vector.
1771         (compute_data_dependences_for_loop): Adjust call to
1772         compute_all_dependences.
1773
1774 2006-04-01  Roger Sayle  <roger@eyesopen.com>
1775             Richard Henderson  <rth@redhat.com>
1776
1777         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
1778         gimple_boolify on the condition before calling gimplify_expr.
1779
1780 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
1781
1782         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
1783         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
1784         the frame size.  Update to use the new macros.
1785         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
1786         * config/xtensa/ieee754-df.S: Likewise.
1787
1788 2006-03-31  Richard Henderson  <rth@redhat.com>
1789
1790         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
1791         (make_edges): ... here.  Control fallthru creation with a local
1792         variable.  Do not play with fake edges.
1793         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
1794         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
1795         a boolean.
1796
1797 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
1798
1799         * dwarf2.h (DW64_CIE_ID): Define.
1800         * dwarf2out.c (DWARF_CIE_ID): Define.
1801         (output_call_frame_info): Output 0xffffffff before standard 8-byte
1802         length header.  Use DWARF_CIE_ID.
1803         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
1804         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
1805
1806 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1807
1808         * config/sh/linux-atomic.asm: New file.
1809         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
1810
1811 2006-03-31  DJ Delorie  <dj@redhat.com>
1812
1813         * config/m32c/cond.md: Set condition flags properly throughout.
1814         * config/m32c/minmax.md: Likewise.
1815         * config/m32c/prologue.md: Likewise.
1816         * config/m32c/bitops.md: Likewise.
1817         * config/m32c/muldiv.md: Likewise.
1818         * config/m32c/mov.md: Likewise.
1819         * config/m32c/addsub.md: Likewise.
1820         * config/m32c/m32c.md: Likewise.
1821         * config/m32c/jump.md: Likewise.
1822         * config/m32c/shift.md: Likewise.
1823
1824         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
1825         conditionally output the pattern for this.
1826         * config/m32c/m32c.c (flags_needed_for_conditional): New.
1827         (m32c_compare_redundant): New.
1828         (m32c_output_compare): New.
1829         * config/m32c/m32c-protos.h (m32c_output_compare): New.
1830
1831         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
1832         dest, not src.  Allow other 4-byte modes.
1833
1834 2006-03-30  Denis Chertykov  <denisc@overta.ru>
1835
1836         * doc/md.texi: Refer to avr/constraints.md instead of
1837         avr/avr.h.
1838
1839 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1840
1841         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
1842         signed vs. unsigned comparison failures on some hosts.
1843
1844 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
1845
1846         PR target/26459
1847         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
1848         change to FLOAT_REGS.
1849
1850         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
1851         (rs6000_override_options): Use it.
1852         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
1853         only for -mabi=spe/no-spe and -mabi=altivec.
1854
1855 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
1856
1857         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
1858         !Zdynamiclib.
1859
1860 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
1861
1862         * Makefile.in: Rename docdir to gcc_docdir.
1863
1864 2006-03-30  Roger Sayle  <roger@eyesopen.com>
1865
1866         PR target/17959
1867         * expr.c (emit_group_store):  Optimize group stores into a pseudo
1868         register by using a paradoxical subreg to initialize the destination
1869         if the first or last member of the group specifies a "low part".
1870
1871 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1872
1873         PR target/26734
1874         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
1875         * target.h (struct gcc_target.speculate_insn): Change type of the
1876         second parameter to 'int'.
1877         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
1878         the second operand of the DEPS_LIST.
1879         (copy_DEPS_LIST_list): Update reference to the second operand of the
1880         DEPS_LIST.
1881         * rtl.h (alloc_DEPS_LIST): Update signature.
1882         * sched-int.h (ds_t): Change typedef to 'int'.
1883         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
1884
1885 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1886
1887         * haifa-sched.c (try_ready): Change condition to restore
1888         non-speculative pattern of the instruction.
1889         (process_insn_depend_be_in_spec): Code to keep probability of the
1890         speculative dependence non-decreasing.
1891
1892 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
1893
1894         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
1895         (single_move_for_movmem): ... this. Also change all uses.
1896         (bfin_expand_strmov): Renamed to...
1897         (bfin_expand_movmem): ... this. Also change all uses.
1898         * config/bfin/bfin.md (movstrsi): Renamed to...
1899         (movstrsi): ...this.
1900
1901 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
1902
1903         PR tree-optimization/26830
1904
1905         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
1906         (copy_prop_visit_stmt): Remove write-only variable ann.
1907         (init_copy_prop): Check variable loop depth here.  Do not simulate
1908         memory-tag and virtual operand PHIs except for store copy prop.
1909
1910 2006-03-30  Richard Guenther  <rguenther@suse.de>
1911
1912         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
1913         variants with double arguments.
1914
1915 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1916
1917         * genpreds.c (write_tm_constrs_h): Delete variable p.
1918         * genconditions.c (write_header): Add tm-constrs.h to included
1919         headers.
1920         * genpeep.c (main): Add toplev.h to included headers.
1921         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
1922         (build/genpeep.o): Add toplev.h dependency.
1923         * config/rs6000/constraints.md: Add "W" constraint.
1924
1925 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1926
1927         * stor-layout.c (mode_for_size_tree): Remove restiction on type
1928         sizes by correctly testing whether the size fits a host integer.
1929         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
1930         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
1931         SImode range for the default sizetype and bitsizetype.
1932
1933 2006-03-29  Roger Sayle  <roger@eyesopen.com>
1934
1935         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
1936         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
1937         quickly if the argument is already of the correct type.
1938         Call fold_build1 instead of build1.  Tidy up blank lines.
1939
1940 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
1941
1942         * genemit.c (main): Add tm-constrs.h to included headers.
1943         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
1944         * genpeep.c (main): Add tm-constrs.h to included headers.
1945         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
1946         (write_tm_constrs_h): this and write complete file.
1947         (write_tm_preds_h): Do not emit satisfies_constraint fns.
1948         (write_insn_preds_c): Add tm-constrs.h to included headers.
1949         (gen_constrs): New variable.
1950         (parse_option): Parse "-c".
1951         (main): Invoke write_tm_constrs_h.
1952         * genrecog.c (write_header): Add tm-constrs.h to included headers.
1953         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
1954         (object_out_file): Add tm-constrs.h dependency.
1955         (insn-emit.o): Same.
1956         (insn-output.o): Same.
1957         (insn-peep.o): Same.
1958         (insn-preds.o): Same.
1959         (insn-recog.o): Same.
1960         (tm-constsr.h): New target.
1961         (s-constrs-h): New target.
1962
1963         * config/rs6000/constraints.md: New file.
1964         * config/rs6000/rs6000.c: Include tm-constrs.h.
1965         (num_insn_constant_wide): Convert to satisfies_constraint.
1966         (rs6000_rtx_costs): Convert to satisfies_constraint.
1967         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
1968         (CONST_OK_FOR_LETTER_P): Delete.
1969         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
1970         (EXTRA_CONSTRAINT): Delete.
1971         (EXTRA_MEMORY_CONSTRAINT): Delete.
1972         (EXTRA_ADDRESS_CONSTRAINT): Delete.
1973         * config/rs6000/predicates.md: Convert to satisfies_constraint.
1974         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
1975         satisfies_constraint.
1976
1977         * config/i386/i386.c: Include tm-constrs.h.
1978
1979 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1980
1981         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
1982         * tree-data-ref.c (find_data_references_in_loop,
1983         compute_data_dependences_for_loop): Use pointers to VEC.
1984         (analyze_all_data_dependences): Adjust calls.
1985         * tree-data-ref.h (find_data_references_in_loop,
1986         compute_data_dependences_for_loop): Adjust declarations.
1987         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
1988         compute_data_dependences_for_loop.
1989
1990 2006-03-29  Paul Brook  <paul@codesourcery.com>
1991
1992         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
1993         (movdf_vfp): Ditto.
1994
1995 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
1996
1997         PR tree-optimization/26859
1998         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
1999         division by zero.
2000         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
2001         for the step after fold_convert.
2002
2003 2006-03-29  Paul Brook  <paul@codesourcery.com>
2004
2005         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
2006         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
2007
2008 2006-03-29  Paul Brook  <paul@codesourcery.com>
2009
2010         PR middle-end/23623
2011         * targhooks.c (default_narrow_bitfield): New fuction.
2012         * targhooks.h (default_narrow_bitfield): add prototype.
2013         * target.h (gcc_target): Add narrow_volatile_bitfield.
2014         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2015         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
2016         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
2017         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
2018
2019 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2020
2021         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
2022         tmake_file.
2023         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
2024         (NR_C_MODES): Add TDmode, DDmode and SDmode.
2025         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
2026         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
2027         (s390_function_arg_float): Allow SDmode and DDmode values to be
2028         passed in floating point registers.
2029         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
2030         check with SCALAR_FLOAT_MODE_P.
2031         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
2032
2033 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
2034
2035         PR tree-optimization/25985
2036         * tree-ssa-loop-niter.c (number_of_iterations_le,
2037         number_of_iterations_ne): Make comments more precise.
2038         (number_of_iterations_cond): Add only_exit argument.  Use the
2039         fact that signed variables do not overflow only when only_exit
2040         is true.
2041         (loop_only_exit_p): New.
2042         (number_of_iterations_exit): Pass result of loop_only_exit_p to
2043         number_of_iterations_cond.
2044
2045 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
2046
2047         PR tree-optimization/26643
2048         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
2049         bit_field_refs.
2050
2051 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2052
2053         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
2054         (divsi3_i4_int): Likewise.
2055
2056 2006-03-28  Roger Sayle   <roger@eyesopen.com>
2057
2058         * expr.c (emit_group_store): Only create a new pseudo reg if the
2059         quantity it needs to hold isn't already a suitable pseudo.
2060
2061 2006-03-28  Jeff Law  <law@redhat.com>
2062
2063         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
2064         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
2065
2066 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2067
2068         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
2069         the equivalent ~X & Y, and the symmetry related transformations.
2070         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
2071         ~X & Y, and symmetry related transforms.
2072
2073 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2074
2075         Revert my 2006-03-27 patches.
2076
2077 2006-03-28  Roger Sayle  <roger@eyesopen.com>
2078
2079         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
2080         ~(T1)X, when T1 and T2 are integer types of the same precision
2081         and (T2)X isn't an extension.
2082
2083 2006-03-28  Jeff Law  <law@redhat.com>
2084
2085         PR tree-optimization/26796
2086         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
2087         need EH edge cleanups rather than purging them immediately.
2088         (eliminate_degenerate_phis): Handle queued EH cleanups.
2089
2090 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
2091
2092         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
2093         from parent_var.
2094
2095 2006-03-27  Roger Sayle  <roger@eyesopen.com>
2096
2097         PR middle-end/22524
2098         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
2099         cast BIT_NOT_EXPR operand to the correct type.
2100
2101 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
2102
2103         * tree-loop-linear.c: Don't include varray.h.
2104         (gather_interchange_stats, try_interchange_loops,
2105         linear_transform_loops): Use VEC instead of VARRAY.
2106         * lambda-mat.c: Don't include varray.h.
2107         * tree-chrec.c: Same.
2108         * lambda-trans.c: Same.
2109         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
2110         VEC instead of VARRAY.
2111         * tree-vectorizer.h: Idem.
2112         * tree-data-ref.c (dump_data_references,
2113         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
2114         initialize_data_dependence_relation, finalize_ddr_dependent,
2115         compute_all_dependences, find_data_references_in_loop,
2116         compute_data_dependences_for_loop, analyze_all_data_dependences,
2117         free_dependence_relation, free_dependence_relations,
2118         free_data_refs): Idem.
2119         * tree-data-ref.h (data_reference_p, subscript_p): New.
2120         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
2121         VEC instead of VARRAY.
2122         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
2123         (find_data_references_in_loop, compute_data_dependences_for_loop,
2124         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
2125         dump_data_dependence_relations, free_dependence_relations,
2126         free_data_refs): Adjust declaration.
2127         (lambda_transform_legal_p): Move declaration here...
2128         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
2129         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
2130         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
2131         vect_analyze_data_refs): Use VEC instead of VARRAY.
2132         * lambda.h (lambda_transform_legal_p): ...from here.
2133         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
2134         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
2135         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
2136         tree-chrec.o): Don't depend on VARRAY_H.
2137
2138 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2139
2140         * rtl.def (Copyright): Update date.
2141         (DEPS_LIST): Change type of the second operand to 'int'.
2142         * target.h (Copyright): Update date.
2143         (struct gcc_target.speculate_insn): Change type of the second parameter
2144         to 'int'.
2145         * lists.c (Copyright): Update date.
2146         (alloc_DEPS_LIST): Change signature.  Update reference to the second
2147         operand of the DEPS_LIST.
2148         (copy_DEPS_LIST_list): Update reference to the second operand of the
2149         DEPS_LIST.
2150         * rtl.h (Copyright): Update date.
2151         (alloc_DEPS_LIST): Update signature.
2152         * sched-int.h (Copyright): Update date.
2153         (ds_t): Change typedef to 'int'.
2154         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
2155
2156 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2157
2158         * haifa-sched.c (Copyright): Update date.
2159         (try_ready): Change condition to restore non-speculative pattern
2160         of the instruction.
2161         (process_insn_depend_be_in_spec): Code to keep probability of the
2162         speculative dependence non-decreasing.
2163
2164 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
2165
2166         * regrename.c (replace_oldest_value_addr): Initialize a variable to
2167         shut up the compiler.
2168
2169 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
2170
2171         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
2172         to use lib prefix for target.
2173         ($(T)libic_invalidate_array_4-200.a): Likewise.
2174         ($(T)libic_invalidate_array_4a.a): Likewise.
2175
2176 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
2177             J"orn Rennecke <joern.rennecke@st.com>
2178
2179         * superh.opt: New file.
2180         * sh.c (boardtype, osruntime): Remove.
2181         * superh.h (SUBTARGET_OPTIONS): Remove.
2182         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
2183
2184         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
2185         arguments with ^ and/or [].
2186
2187         * config.gcc (sh-*-*): Add quoting to account for quirk of
2188         Solaris /bin/sh.
2189         Replace == with = in enable_incomplete_targets test.
2190
2191         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
2192         with MASK_LITTLE_ENDIAN.
2193
2194         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
2195         * config/sh/sh.opt: Added to some comments.
2196         * config/sh/superh.h: Removed some chaff.
2197
2198         * config/sh/sh.opt: Add m4-[1234]00* options.
2199         * config/sh/sh.c (sh_handle_option): Likewise.
2200         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
2201         (ic_invalidate_array_4-100.o): New rule.
2202         ($(T)libic_invalidate_array_4-100.a): Likewise.
2203         (ic_invalidate_array_4-200.o): Likewise.
2204         ($(T)libic_invalidate_array_4-200.a): Likewise.
2205         (ic_invalidate_array_4a.o): Likewise.
2206         ($(T)libic_invalidate_array_4a.a): Likewise.
2207         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
2208         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
2209         m4-200*, and m4a*.
2210         * config/sh/crt1.asm: Merged in profiling code.
2211         * config/sh/superh.h (STARTFILE_SPEC): Override.
2212         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
2213         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
2214         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
2215
2216         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
2217         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
2218         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
2219
2220         * sh.opt (mpretend-cmove): New option.
2221         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
2222         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
2223         (movsicc): Add TARGET_PRETEND_CMOVE code.
2224
2225 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
2226
2227         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
2228         s390_class_max_nregs): New function prototypes.
2229         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
2230         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
2231         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
2232         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
2233
2234 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
2235
2236         * dwarf2out.c (add_location_or_const_value_attribute): Call
2237         tree_add_const_value_attribute if nothing else works.
2238         (reference_to_unused): New.
2239         (rtl_for_decl_init): Use reference_to_unused to decide whether
2240         to output an initializer.
2241
2242 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
2243
2244         PR target/26459
2245         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
2246         peephole removing spe frob_di_df_2.
2247
2248 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
2249
2250         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
2251         (subscript_dependence_tester_1): Declared.
2252         (print_dir_vectors, print_dist_vectors): New.
2253         (debug_data_dependence_relation): New.
2254         (dump_data_dependence_relation): Print more details.
2255         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
2256         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
2257         (save_dist_v, save_dir_v, add_outer_distances,
2258         build_classic_dist_vector_1): New.
2259         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
2260         Don't test for lambda_vector_lexico_pos.
2261         (same_access_functions, add_multivariate_self_dist,
2262         add_other_self_distances, dir_from_dist): New.
2263         (build_classic_dir_vector): Replace implementation almost identical to
2264         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
2265         dir_from_dist.
2266         (subscript_dependence_tester_1): New.
2267         (subscript_dependence_tester): Handle the lexicographically negative
2268         distance vectors by recomputing the dependence relation.
2269         (compute_affine_dependence): Remove parameter loop_nest_depth.
2270         (compute_self_dependence): Don't call compute_subscript_distance.
2271         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
2272         Add a parameter for the loop_nest.
2273         (find_loop_nest_1, find_loop_nest): New.
2274         (compute_data_dependences_for_loop): Compute the loop nest, and give
2275         up if the nest is not well formed.
2276         * tree-data-ref.h (loop_p): New.
2277         (struct data_dependence_relation): Replace size_vect field with
2278         loop_nest, a vec of loops.
2279         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
2280         (DDR_LOOP_NEST): New.
2281         (print_dir_vectors, print_dist_vectors,
2282         debug_data_dependence_relation): Declared.
2283         (index_in_loop_nest): New.
2284         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
2285         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
2286         distance.
2287
2288 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
2289
2290         * simplify-rtx.c (simplify_relational_operation): Call
2291         simplify_relational_operation_1 even if mode is VOIDmode.
2292
2293 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
2294
2295         PR tree-optimization/26804
2296         * tree.h (DECL_CALL_CLOBBERED): New macro.
2297         (tree_decl_common): Add call_clobbered_flag.
2298         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
2299         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
2300         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
2301         (mark_non_addressable): Ditto.
2302         * tree-ssa.c (verify_call_clobbered): New function.
2303         (verify_alias_info): Use it.
2304         * tree-pass.h (pass_reset_cc_flags): New prototype.
2305         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
2306         (reset_cc_flags): New function.
2307         * passes.c (init_optimization_passes): Call reset_cc_flags after
2308         initializing referenced_vars.
2309
2310 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
2311             Roger Sayle  <roger@eyesopen.com>
2312
2313         PR middle-end/26717
2314         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
2315         to 1.0 for non-real operands. Implement A / A optimization for
2316         complex operands.
2317
2318 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
2319
2320         * config/i386/i386.c (size_cost): Correct the comment for
2321         cost of storing fp registers.
2322         (i386_cost): Likewise.
2323         (i486_cost): Likewise.
2324         (pentium_cost): Likewise.
2325         (pentiumpro_cost): Likewise.
2326         (k6_cost): Likewise.
2327         (athlon_cost): Likewise.
2328         (k8_cost): Likewise.
2329         (pentium4_cost): Likewise.
2330         (nocona_cost): Likewise.
2331         (generic64_cost): Likewise.
2332         (generic32_cost): Likewise.
2333
2334 2006-03-24  Denis Chertykov  <denisc@overta.ru>
2335
2336         * config/avr/avr-protos.h (extra_constraint): Delete.
2337         (extra_constraint_Q): New declaration.
2338         * config/avr/constraints.md: New file.
2339         * config/avr/avr.md: Include it.
2340         (REG_X, REG_Y, REG_Z, REG_W): New constants.
2341         (TMP_REGNO, ZERO_REGNO): Likewise.
2342         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
2343         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
2344         (extra_constraint): Delete.
2345         (extra_constraint_Q): Test for memory constraint 'Q'.
2346         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
2347         (REG_CLASS_FROM_LETTER): Delete.
2348         (CONST_OK_FOR_LETTER_P): Delete.
2349         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2350         (EXTRA_CONSTRAINT): Delete.
2351         (TMP_REGNO): Delete.
2352         (ZERO_REGNO): Delete.
2353
2354 2006-03-24  Jeff Law  <law@redhat.com>
2355
2356         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
2357         directly.  Call mark_new_vars_to_rename slightly earlier.
2358
2359 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
2360
2361         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
2362         (is_cxx): Likewise.
2363         (gen_compile_unit_die): Use new language types for Objective-C and
2364         Objective-C++.
2365         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
2366         DW_LANG_C_plus_plus.
2367
2368         PR 26793
2369         * config/t-darwin (crt3.o): Work around bug 26840.
2370         * config/darwin-crt3.c: Rewrite.
2371         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
2372
2373 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
2374
2375         * doc/invoke.texi: Document -femit-class-debug-always
2376         * common.opt: Add -femit-class-debug-always.
2377
2378 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2379
2380         * config/s390/s390.c (s390_decompose_address): Allow SImode for
2381         index and base register.
2382         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
2383         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
2384         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
2385         REGNO_OK_FOR_INDEX_P.
2386         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
2387         ADDR_REGNO_P.
2388         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
2389         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
2390         REG_OK_FOR_BASE_P): Definitions removed.
2391
2392 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
2393
2394         PR middle-end/26611
2395         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
2396         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
2397         set yet or weren't marked as local yet.
2398
2399 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2400
2401         * regrename.c (scan_rtx_address): Initialize a variable to shut up
2402         the compiler.
2403
2404 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
2405
2406         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
2407         (rs6000_legitimate_small_data_p): Delete.
2408         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
2409         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
2410         and make static.  Add forward declaration.  Update uses.
2411         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
2412         of offsettable_memref_p.
2413         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
2414         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
2415
2416 2006-03-24  Jeff Law  <law@redhat.com>
2417
2418         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
2419         around bug in immediate-use iterator.
2420
2421 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
2422
2423         PR target/26607
2424         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
2425         or __LITTLE_ENDIAN__.
2426
2427 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
2428
2429         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
2430         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
2431         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
2432         * config/sh/sh.opt (mdiv=): Amend description.
2433         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
2434         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
2435         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
2436         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
2437         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
2438         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
2439         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
2440         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
2441         TARGET_DIVIDE_CALL_FP.
2442
2443 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2444
2445         * haifa-sched.c (choose_ready): Fix type of the local variable.
2446         Move local variables.  Add comment.
2447         (check_reg_live): Change signature.  Make callable from debugger.
2448         * sched-int.h (check_reg_live): Update signature.
2449         * sched-ebb.c (check_reg_live): Update parameters.
2450         * sched-rgn.c (check_reg_live): Ditto.
2451         (region_head_or_leaf_p): Check pointer before dereferencing.
2452         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
2453         before reload on optimization levels below 1.
2454
2455 2006-03-23  Richard Henderson  <rth@redhat.com>
2456
2457         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
2458         tls symbols.
2459
2460         PR target/26347
2461         * config/alpha/predicates.md (local_symbolic_operand): Reject
2462         weak symbols.
2463
2464 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
2465
2466         PR tree-opt/26795
2467         * tree-ssa-pre.c (create_value_expr_from): Don't reject
2468         expressions which have overflowed constants.
2469
2470 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
2471
2472         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
2473
2474 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
2475
2476         * cfgloopmanip.c (create_loop_notes): Removed.
2477         * final.c (final_scan_insn): Do not handle loop notes.
2478         * jump.c (squeeze_notes): Ditto.
2479         * cfglayout.c (skip_insns_after_block,
2480         duplicate_insn_chain): Ditto.
2481         * cfgcleanup.c (rest_of_handle_jump2): Do not call
2482         create_loop_notes.
2483         * cfgloop.h (create_loop_notes): Declaration removed.
2484
2485 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
2486
2487         * varasm.c (output_constant_pool): Restore fnname and fndecl
2488         arguments.
2489         (assemble_start_function): Adjust call accordingly.
2490         (assemble_end_function): Likewise.
2491
2492 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2493
2494         PR mudflap/26789
2495         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
2496
2497         PR mudflap/26790
2498         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
2499
2500 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2501
2502         PR driver/22600
2503         * system.h (ICE_EXIT_CODE): New macro.
2504         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
2505         (diagnostic_action_after_output): Likewise.
2506         * gcc.c (fatal_ice): New function.
2507         (execute): Use it instead of fatal.
2508         (fancy_abort): Likewise.
2509         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
2510
2511 2006-03-22  Jeff Law  <law@redhat.com>
2512
2513         * loop-unroll.c (analyze_iv_to_split_insn): Handle
2514         iv_analyze_result returning false.
2515
2516 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
2517
2518         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
2519
2520 2006-03-22  Richard Henderson  <rth@redhat.com>
2521
2522         PR middle-end/26084
2523         * except.c (duplicate_eh_regions_0): New.
2524         (duplicate_eh_region_1): Duplicate the children of the node as
2525         well as the node itself.  Link them up properly.
2526         (duplicate_eh_region_2): Merge into ...
2527         (duplicate_eh_regions): ... here.  Take copy_region argument, and
2528         copy only a sub-tree if asked.  Simplify copying and fixup.
2529         (eh_region_outer_p): New.
2530         * except.h (duplicate_eh_regions): Update decl.
2531         (eh_region_outer_p): Declare.
2532         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
2533         (lower_omp_master): Likewise.
2534         (lower_omp_ordered): Likewise.
2535         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
2536         (move_stmt_r): Use it to remap labels.  Handle recursion vs
2537         remap_decls_p properly.
2538         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
2539         (find_outermost_region_in_block): New.
2540         (new_label_mapper): New.
2541         (move_sese_region_to_fn): Copy eh information to the new function
2542         properly.
2543         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
2544         argument.
2545         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
2546         number.
2547
2548 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2549
2550         * doc/md.texi (-mshared): Mention that -mshared code can be linked
2551         into shared libraries.
2552
2553 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
2554
2555         * doc/md.texi: Refer to i386/constraints.md instead of
2556         i386/predicates.md.
2557         * config/i386/constraints.md: New file, extracted from...
2558         * config/i386/predicates.md: ...here.
2559         * config/i386/i386.md: Include constraints.md.
2560
2561 2006-03-21  Jason Merrill  <jason@redhat.com>
2562
2563         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
2564
2565         PR middle-end/20297
2566         * expr.c (init_block_move_fn): Force default visibility.
2567         (init_block_clear_fn): Likewise.
2568         * builtins.c (expand_builtin_fork_or_exec): Likewise.
2569         * targhooks.c (default_external_stack_protect_fail): Likewise.
2570
2571 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
2572
2573         * config/mips/predicates.md (const_call_insn_operand): Allow direct
2574         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
2575         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
2576         Use TARGET_OLDABI instead of !TARGET_NEWABI.
2577         (loadgp): Use mips_current_loadgp_style.
2578         (loadgp_noshared): New pattern.
2579         (sibcall_internal): Use MIPS_CALL.
2580         (sibcall_value_internal): Likewise.
2581         (sibcall_value_multiple_internal): Likewise.
2582         (call_internal): Likewise.
2583         (call_value_internal): Likewise.
2584         (call_value_multiple_internal): Likewise.
2585         (call_split): Use MIPS_CALL and add an 'S' constraint.
2586         (call_value_split): Likewise.
2587         (call_value_multiple_split): Likewise.
2588         * config/mips/mips.opt (-mabicalls): Tweak docstring.
2589         (-mshared): New option.
2590         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
2591         (mips_current_loadgp_style): Declare.
2592         * config/mips/mips.c (mips_classify_symbol): Avoid using
2593         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
2594         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
2595         TARGET_ABSOLUTE_ABICALLS.
2596         (override_options): Adjust comments.  Improve the warning that is
2597         issued when -mabicalls and -G are used together.
2598         (mips_file_start): Remove comment.
2599         (mips_current_loadgp_style): New function.
2600         (mips_gnu_local_gp): New variable.
2601         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
2602         LOADGP_ABSOLUTE.
2603         (mips_output_function_prologue): Use mips_current_laodgp_style.
2604         (mips_expand_prologue): Call mips_emit_loadgp before emitting
2605         the cprestore instruction.
2606         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
2607         live for TARGET_ABSOLUTE_ABICALLS.
2608         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
2609         (ASM_SPEC): Pass down -mshared and -mno-shared.
2610         (MIPS_CALL): New macro.
2611         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
2612         definition.
2613         * doc/invoke.texi (-mabicalls): Update documentation.
2614         (-mshared): Document.
2615
2616 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2617
2618         * config/ia64/unwind-hpux.c: New file.
2619         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
2620
2621 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
2622
2623         PR libgomp/26384
2624         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
2625
2626 2006-03-21  Jeff Law  <law@redhat.com>
2627
2628         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
2629         type conversions of a VR_VARYING source to a wider type.
2630
2631 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2632
2633         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
2634         tm_file on Solaris 10 and later.
2635         (sparc64-*-solaris2*): Likewise.
2636         (sparc-*-solaris2*): Likewise.
2637         * config/sol26.h: Rename to config/sol2-6.h.
2638         * config/sol2-10.h: New file.
2639
2640 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
2641
2642         PR tree-opt/26781
2643         * tree-ssa-pre.c (create_component_ref_by_pieces):
2644         Handle STRING_CST.
2645
2646 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
2647
2648         PR c++/26690
2649         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
2650         return it immediately.
2651
2652 2006-03-21  Michael Matz  <matz@suse.de>
2653
2654         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
2655         New members.
2656         (remove_arc, add_arc): Update num_out_arcs member.
2657         (set_out_arc_insns_equiv_num): Returns nothing instead of number
2658         of out arcs.
2659         (cache_presence): New function.
2660         (compare_states_for_equiv): New function.
2661         (state_is_differed): Don't take number of outargs, adjust callers.
2662         Use new invariant for speeding up.
2663         (init_equiv_class): Create initial classes based on sorted
2664         input.
2665         (partition_equiv_class): Don't track out_arcs_num.
2666         (evaluate_equiv_classes): Call cache_presence on all states and
2667         sort them.
2668
2669 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
2670
2671         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
2672         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
2673         (bfin_valid_reg_p): Test for pseudos explicitly and use only
2674         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
2675         callers changed.
2676         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
2677         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
2678         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
2679         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2680         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
2681         macros.
2682         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
2683         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
2684         (REGNO_REG_CLASS): ARGP is in PREGS.
2685         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
2686         IREGS.
2687         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
2688         to deal with those addresses.
2689         * addresses.h: New file.
2690         * caller-save.c: Include "addresses.h".
2691         (init_caller_save): Use new base_reg_class function.
2692         * rtl-factoring.c: Include "addresses.h".
2693         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
2694         * recog.c: Include "addresses.h".
2695         (preprocess_constraints): Use new base_reg_class function.
2696         * regrename.c: Include "addresses.h".
2697         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
2698         functions.  Keep track of a new var INDEX_CODE to compute valid
2699         classes.
2700         (replace_oldest_value_addr): Likewise.
2701         (replace_oldest_value_mem): Use base_reg_class.
2702         * reload.c: Include "addresses.h".
2703         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
2704         (find_reloads): Use new base_reg_class function.
2705         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
2706         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
2707         all callers and prototype changed.
2708         * reload1.c: Include "addresses.h".
2709         (maybe_fix_stack_asms): Use base_reg_class.
2710         * regclass.c: Include "addresses.h".
2711         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
2712         (init_reg_autoinc): Use new base_reg_class function.
2713         (record_reg_classes): Likewise.
2714         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
2715         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
2716         Use new args to compute necessary class.
2717
2718         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
2719         regrename.o, rtl-factoring.o): Update dependencies.
2720         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
2721         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2722         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
2723         REG_OK_FOR_INDEX_P): Delete documentation.
2724
2725 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2726
2727         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
2728         from V7 to V9 for Solaris 7 and above.
2729
2730 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
2731
2732         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
2733         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
2734         argument pointers may not alias any other storage.
2735         * common.opt: Define option -fargument-noalias-anything.
2736         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
2737         alias semantics is specified by flag_argument_noalias > 2.
2738
2739 2006-03-20  Jeff Law  <law@redhat.com>
2740
2741         * tree-pass.h (pass_phi_only_copy_prop): Delete.
2742         (pass_phi_only_cprop): Declare.
2743         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
2744         with phi_only_cprop
2745         * tree-ssa-dom.c (degenerate_phi_result): New function.
2746         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
2747         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
2748         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
2749         (eliminate_degenerate_phis): Likewise.
2750         (pass_phi_only_cprop): New pass descriptor.
2751         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
2752         support code.  Callers updated.
2753         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
2754         (store_copy_prop): Likewise.
2755         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
2756
2757 2006-03-20  Jason Merrill  <jason@redhat.com>
2758
2759         PR c++/21764
2760         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
2761         (push_visibility, pop_visibility): Likewise.
2762         * c-pragma.h: Declare them.
2763
2764 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2765
2766         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
2767
2768         * config/sh/sh.c (find_regmode_weight): Change the type of the first
2769         parameter and use get_ebb_head_tail.
2770         (sh_md_init_global): Adjust uses of find_regmode_weight.
2771
2772 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
2773
2774         * function.h (struct function) <x_tail_recursion_reentry>:
2775         Rename to x_stack_check_probe_note.
2776         (tail_recursion_reentry): Rename to stack_check_probe_note.
2777         * function.c: Replace tail_recursion_reentry with
2778         stack_check_probe_note everywhere.
2779         (expand_function_start): Only emit a note for
2780         stack_check_probe_note with -fstack-protect.
2781         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
2782
2783         * emit-rtl.c (remove_unnecessary_notes): Remove.
2784         (pass_remove_unnecessary_notes): Remove.
2785         * rtl.h (remove_unnecessary_notes): Remove prototype.
2786         * final.c (final_start_function): Don't call remove_unnecessary_notes.
2787         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
2788         * passes.c (pass_remove_unnecessary_notes): Don't run it.
2789
2790 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
2791
2792         PR tree-opt/26629
2793         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
2794         (valid_in_set): Handle ARRAY_REF.
2795         Change "if min_variant or VH" to asserts.
2796         (create_component_ref_by_pieces): Handle ARRAY_REF.
2797         (create_expression_by_pieces): Likewise.
2798         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
2799
2800 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
2801
2802         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
2803         is operand of switch, not str[0].
2804
2805 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
2806
2807         * config/rs6000/rs6000.c (rs6000_handle_option): Use
2808         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
2809
2810 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2811
2812         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
2813         end of insn_extra_address_constraint declaration.
2814
2815 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
2816
2817         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
2818         (no-sum-in-toc): Same.
2819         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
2820         variables.
2821         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
2822         NO_FP_IN_TOC for -fPIC instead of mask.
2823
2824         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
2825         (BOOT_LDFLAGS): Delete.
2826         (LDFLAGS): Delete.
2827         * config/rs6000/t-aix52: Same.
2828
2829         * config/rs6000/rs6000.md (store_multiple_power): Delete.
2830         (stmsi[345678]_power): New.
2831
2832 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
2833
2834         * config/ia64/ia64.opt: Add empty line to end of file.
2835
2836 2006-03-17  Richard Guenther  <rguenther@suse.de>
2837
2838         PR middle-end/26721
2839         * builtins.c (get_pointer_alignment): For component style references
2840         adjust alignment to the component type alignment.  Make sure
2841         to adjust alignment for component access of constants.
2842
2843 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
2844
2845         * config/rs6000/rs6000.md (strlensi): Emit barrier after
2846         unconditional jump.
2847
2848 2006-03-17  Paul Brook  <paul@codesourcery.com>
2849
2850         * doc/install.texi: Docuemnt --with-mode.
2851         * config.gcc: Add --with-mode for arm*-*-*.
2852         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
2853
2854 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
2855
2856         * sh.c (max_labelno_before_reorg): New variable.
2857         (sh_reorg): Initialize it.
2858         (find_barrier): Check max_labelno_before_reorg before using
2859         label_to_alignment.  Take length of explicit alignment insns
2860         into account.  When seeing a UNSPECV_CONST_END, return it.
2861
2862         * sh.c (fixup_mova): Set mode of affected label to QImode.
2863         (untangle_mova): New function.
2864         (find_barrier): Use it.  Check mode of label before decrementing
2865         num_mova.
2866         (sh_reorg): Likewise.
2867         Set mode of all insns back to VOIDmode.
2868
2869         * sh.c (MOVA_LABELREF): New macro.
2870         (mova_p, fixup_mova, sh_reorg): Use it.
2871         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
2872         ADDR_DIFF_VEC matches mova.
2873
2874 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
2875
2876         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
2877         with ATTRIBUTE_UNUSED.
2878
2879 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
2880
2881         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
2882         pointer, instead of assuming it is possible to derive the
2883         correct args size from a call insn.
2884
2885 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2886
2887         * rtl.h (CONST_INT_P): Define.
2888         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
2889         instead of GET_CODE(x) == CONST_INT.
2890         (vax_rtx_costs): Likewise.
2891         (vax_output_int_move): Likewise.
2892         (vax_output_int_add): Likewise.
2893         (legitimate_constant_address_p): Likewise.
2894         (index_term_p): Likewise.
2895         * config/vax/vax.h (PRINT_OPERAND): Likewise.
2896         * config/vax/vax.md (and<mode>3): Likewise.
2897         (ashrsi3): Likewise.
2898         (extv): Likewise.
2899         (movstricthi): Likewise.
2900         (movstrictqi): Likewise.
2901         (rotrsi3): Likewise.
2902         (five unnamed insns): Likewise.
2903
2904 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
2905
2906         * doc/tm.texi (SDB and DWARF): Add extra parameter to
2907         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
2908         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
2909         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
2910         Pass to ASM_OUTPUT_DWARF_OFFSET.
2911         * dwarf2out.c (debug_frame_section): New.
2912         (output_call_frame_info): Use debug_frame_section.  Pass it to
2913         dw2_asm_output_offset.
2914         (output_die): Pass appropriate section to dw2_asm_output_offset.
2915         (output_compilation_unit_header): Likewise.
2916         (output_pubnames): Likewise.
2917         (output_aranges): Likewise.
2918         (enum dw_val_class): Break dw_val_class_lbl_offset into
2919         dw_val_class_lineptr and dw_val_class_macptr.
2920         (add_AT_lbl_offset): Delete.
2921         (add_AT_lineptr): New.
2922         (add_AT_macptr): New.
2923         (AT_lbl): Expect a lineptr or macptr.
2924         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
2925         (attr_checksum): Likewise.
2926         (same_dw_val_p): Likewise.
2927         (size_of_die): Likewise.
2928         (value_format): Likewise.
2929         (output_die): Likewise.
2930         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
2931         add_AT_lbl_offset.
2932         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2933         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
2934         * config/darwin-protos.h (darwin_file_start): New.
2935         (darwin_asm_output_dwarf_offset): New.
2936         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
2937         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
2938         darwin_file_start.
2939         * config/darwin.c (darwin_emit_unwind_label): Don't output label
2940         if not EH section; simplify.
2941         (darwin_file_start): New.
2942         (darwin_asm_output_dwarf_offset): New.
2943         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
2944         mark as 'debug'.
2945         (DEBUG_INFO_SECTION): Likewise.
2946         (DEBUG_ABBREV_SECTION): Likewise.
2947         (DEBUG_ARANGES_SECTION): Likewise.
2948         (DEBUG_MACINFO_SECTION): Likewise.
2949         (DEBUG_LINE_SECTION): Likewise.
2950         (DEBUG_LOC_SECTION): Likewise.
2951         (DEBUG_PUBNAMES_SECTION): Likewise.
2952         (DEBUG_STR_SECTION): Likewise.
2953         (DEBUG_RANGES_SECTION): Likewise.
2954         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
2955         (ASM_OUTPUT_DWARF_OFFSET): New.
2956
2957 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
2958
2959         * config.gcc (tm_defines): Always add to previous value rather
2960         than replacing it.
2961
2962 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2963
2964         * config/mips/predicates.md (splittable_const_int_operand): New,
2965         split from move_operand.
2966         (splittable_symbolic_operand): New.
2967         (move_operand): Add commentary.  Use splittable_const_int_operand.
2968         Inline mips_atomic_symbolic_constant_p.
2969         * config/mips/mips.md: Add combine splitters for handling moves
2970         of splittable_const_int_operands and splittable_symbolic_operands.
2971         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
2972         (mips_split_symbol): Declare.
2973         (mips_move_integer): Declare.
2974         * config/mips/mips.c (mips_split_p): Make global.
2975         (TARGET_MIN_ANCHOR_OFFSET): Override default.
2976         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
2977         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
2978         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
2979         (mips_offset_within_object_p): Handle block symbols.
2980         (mips_atomic_symbolic_constant_p): Delete.
2981         (mips_cannot_force_const_mem): Return false for constants that
2982         mips_legitimize_move can handle.
2983         (mips_use_blocks_for_constant_p): New function.
2984         (mips_split_symbol): Make global.
2985         (mips_move_integer): Likewise.  Add a temporary register argument.
2986         (mips_legitimize_const_move): Use splittable_const_int_operand and
2987         splittable_symbolic_operand.
2988         (mips_use_anchors_for_symbol_p): New function.
2989         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
2990         (mips_split_p): Declare.
2991
2992 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
2993
2994         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
2995         (mips*-*-linux*): Likewise.
2996
2997 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2998             Daniel Speyer  <dspeyer@wam.umd.edu>
2999
3000         PR middle-end/18259
3001         * tree-dump.c (dump_real): New function.
3002         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
3003         * Makefile.in (REAL_H): New macro for dependencies on real.h.
3004         (tree-dump.o): Add $(REAL_H) to the dependencies.
3005
3006 2006-03-16  Roger Sayle  <roger@eyesopen.com>
3007
3008         PR middle-end/21781
3009         * real.c (real_from_string): If the mantissa is zero, don't bother
3010         parsing the exponent as the result should always be zero.
3011
3012 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
3013
3014         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
3015
3016 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3017
3018         * config/ia64/ia64.c (stops_p): Added explicit initialization.
3019         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
3020         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
3021         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
3022         ia64_sched_finish_global): New static functions to implement
3023         hooks from gcc_target.sched.
3024         (spec_check_no, max_uid, pending_data_specs): New static variables.
3025         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
3026         ia64_spec_check_src_p): New static functions.
3027         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
3028         (TARGET_SCHED_ADJUST_COST): Removed.
3029         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
3030         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
3031         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3032         TARGET_SCHED_GEN_CHECK,
3033         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3034         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
3035         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
3036         Fixed to handle speculation checks.
3037         (rtx_needs_barrier): Fixed to handle speculative loads and
3038         their checks.
3039         (ia64_variable_issue): Added code to count speculative loads and their
3040         checks.
3041         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
3042         speculative loads.
3043         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
3044         New enumerations.
3045         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
3046         New constants.
3047         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
3048         (ia64_reorg): Reset stops_p to NULL after it is freed.
3049         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
3050         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
3051         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
3052         chk_a.
3053         (data_speculative, control_speculative, check_load): New attributes.
3054         (mov<mode>_advanced, mov<mode>_speculative,
3055         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
3056         zero_extend<mode>di2_speculative,
3057         zero_extend<mode>di2_speculative_advanced): New patterns for
3058         data and control speculative loads.
3059         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
3060         check loads.
3061         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
3062         New pattern for data and control speculation checks.
3063         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
3064         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
3065         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
3066         Auxiliary definitions for the patterns.
3067         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
3068         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
3069         constraints.
3070         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
3071         for speculation.
3072         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
3073         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
3074         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
3075         New resource constraints.
3076         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
3077         for speculation.
3078         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
3079         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
3080         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3081         msched-in-control-spec, msched-ldc, msched-control-ldc,
3082         msched-spec-verbose, msched-prefer-non-data-spec-insns,
3083         msched-prefer-non-control-spec-insns,
3084         msched-count-spec-in-critical-path): New flags to tune speculative
3085         scheduling.
3086         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
3087         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
3088         msched-in-control-spec, msched-ldc, msched-control-ldc,
3089         msched-spec-verbose, msched-prefer-non-data-spec-insns,
3090         msched-prefer-non-control-spec-insns,
3091         msched-count-spec-in-critical-path): Document new flags.
3092
3093 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3094
3095         * target.h (struct spec_info_def): New opaque declaration.
3096         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
3097         speculate_insn, needs_block_p, gen_check,
3098         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
3099         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
3100         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
3101         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
3102         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3103         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
3104         gcc_target.sched.
3105         (TARGET_SCHED): Use new macros.
3106         * rtl.h (copy_DEPS_LIST_list): New prototype.
3107         * sched-int.h (struct sched_info): Change signature of new_ready field,
3108         adjust all initializations. New fields: add_remove_insn,
3109         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
3110         region_head_or_leaf_p.
3111         (struct spec_info_def): New structure declaration.
3112         (spec_info_t): New typedef.
3113         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
3114         recovery_block, orig_pat.
3115         (glat_start, glat_end): New variables declaraions.
3116         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
3117         New access macros.
3118         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
3119         DETACH_LIFE_INFO, USE_GLAT.
3120         (enum SPEC_SCHED_FLAGS): New enumeration.
3121         (NOTE_NOTE_BB_P): New macro.
3122         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
3123         attach_life_info, debug_spec_status, check_reg_live): New functions.
3124         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
3125         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
3126         sched-ebb.c
3127         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
3128         * ddg.c (get_block_head_tail): Adjust all uses.
3129         * modulo-sched.c (get_block_head_tail): Adjust all uses.
3130         (sms_sched_info): Initialize new fields.
3131         (contributes_to_priority): Removed.
3132         * haifa-sched.c (params.h): New include.
3133         (get_block_head_tail): Adjust all uses.
3134         (ISSUE_POINTS): New macro.
3135         (glat_start, glat_end): New global variables.
3136         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
3137         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
3138         old_last_basic_block, before_recovery, current_sched_info_var,
3139         rgn_n_insns, luid): New static variables.
3140         (insn_cost1): New function.  Move logic from insn_cost to here.
3141         (find_insn_reg_weight1): New function.  Move logic from
3142         find_insn_reg_weight to here.
3143         (reemit_notes, move_insn, max_issue): Change signature.
3144         (move_insn1): Removed.
3145         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
3146         extend_bb): New static functions to support extension of scheduler's
3147         data structures.
3148         (generate_recovery_code, process_insn_depend_be_in_spec,
3149         begin_speculative_block, add_to_speculative_block,
3150         init_before_recovery, create_recovery_block, create_check_block_twin,
3151         fix_recovery_deps): New static functions to support
3152         generation of recovery code.
3153         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
3154         restore_bb_notes, move_block_after_check, move_succs): New static
3155         functions to support ebb scheduling.
3156         (init_glat, init_glat1, attach_life_info1, free_glat): New static
3157         functions to support handling of register live information.
3158         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
3159         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
3160         add_jump_dependencies): New static functions.
3161         (check_cfg, has_edge_p, check_sched_flags): New static functions for
3162         consistancy checking.
3163         (debug_spec_status): New function to call from debugger.
3164         (priority): Added code to handle speculation checks.
3165         (rank_for_schedule): Added code to distinguish speculative instructions.
3166         (schedule_insn): Added code to handle speculation checks.
3167         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
3168         Fixed to handle ebbs.
3169         (move_insn): Added code to handle ebb scheduling.
3170         (max_issue): Added code to use ISSUE_POINTS of instructions.
3171         (choose_ready): Added code to choose between speculative and
3172         non-speculative instructions.
3173         (schedule_block): Added code to handle ebb scheduling and scheduling of
3174         speculative instructions.
3175         (sched_init): Initialize new variables.
3176         (sched_finish): Free new variables.  Print statistics.
3177         (try_ready): Added code to handle speculative instructions.
3178         * lists.c (copy_DEPS_LIST_list): New function.
3179         * sched-deps.c (extend_dependency_caches): New function.  Move logic
3180         from create_dependency_caches to here.
3181         (get_dep_weak, ds_merge): Make global.
3182         * genattr.c (main): Code to output prototype for
3183         dfa_clear_single_insn_cache.
3184         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
3185         (output_dfa_clean_insn_cache_func): Code to output
3186         dfa_clear_single_insn_cache function.
3187         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
3188         n_insns.
3189         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
3190         Removed.
3191         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
3192         New static variables.
3193         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
3194         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
3195         struct sched_info.
3196         (ebb_sched_info): Initialize new fields.
3197         (get_block_head_tail): Adjust all uses.
3198         (compute_jump_reg_dependencies): Fixed to use glat_start.
3199         (schedule_ebb): Code to remove unreachable last block.
3200         (schedule_ebbs): Added code to update register live information.
3201         * sched-rgn.c (region_sched_info): Initialize new fields.
3202         (get_block_head_tail): Adjust all uses.
3203         (last_was_jump): Removed.  Adjust users.
3204         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
3205         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
3206         Implement new hooks.
3207         (check_dead_notes1): New static function.
3208         (struct region): New fields: dont_calc_deps, has_real_ebb.
3209         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
3210         (BB_TO_BLOCK): Fixed to handle EBBs.
3211         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
3212         (ebb_head): New static variable.
3213         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
3214         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
3215         new fields.
3216         (compute_dom_prob_ps): New assertion.
3217         (check_live_1, update_live_1): Fixed to work with glat_start instead of
3218         global_live_at_start.
3219         (init_ready_list): New assertions.
3220         (can_schedule_ready_p): Split update code to begin_schedule_ready.
3221         (new_ready): Add support for BEGIN_CONTROL speculation.
3222         (schedule_insns): Fixed code that updates register live information
3223         to handle EBBs.
3224         (schedule_region): Fixed to handle EBBs.
3225         (init_regions): Use extend_regions and check_dead_notes1.
3226         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
3227         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
3228         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
3229         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
3230         TARGET_SCHED_GEN_CHECK,
3231         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
3232         TARGET_SCHED_SET_SCHED_FLAGS): Document.
3233         * doc/invoke.texi (max-sched-insn-conflict-delay,
3234         sched-spec-prob-cutoff): Document.
3235
3236 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3237
3238         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
3239         inter_tick, queue_index.
3240         (struct sched_info): Change signature of init_ready_list field.
3241         Adjust all initializations.
3242         (RESOLVED_DEPS): New access macro.
3243         (ready_add): Remove prototype.
3244         (try_ready): Add prototype.
3245         * sched-rgn.c (init_ready_list): Use try_ready.
3246         (schedule_region): Initialize
3247         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
3248         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
3249         (init_ready_list): Use try_ready.
3250         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
3251         * lists.c (remove_list_elem): Remove `static'.
3252         (remove_free_INSN_LIST_elem): New function.
3253         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
3254         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
3255         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
3256         New constants.
3257         (readyp): New variable.
3258         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
3259         change_queue_index, resolve_dep): New static functions.
3260         (try_ready): New function.  Adjust callers in sched-rgn.c and
3261         sched-ebb.c to use it instead of ready_add.
3262         (clock_var): Move at the begining of file.
3263         (rank_for_schedule): Fix typo.
3264         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
3265         (ready_lastpos): Enforce assertion.
3266         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
3267         update all callers.
3268         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
3269         (schedule_insn): Rewrite to use try_ready and resolve_dep.
3270         (queue_to_ready): Use free_INSN_LIST_list.
3271         (early_queue_to_ready): Fix typo.
3272         (schedule_block): Init readyp.  Move init_ready_list call after the
3273         initialization of clock_var.  Fix error in rejecting insn by
3274         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
3275         that previously corrected INSN_TICKs.  Add code for handling
3276         QUEUE_INDEX.
3277         (set_priorities): Fix typo.
3278         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
3279         Clarify comment and code that keeps current_sched_info->next_tail
3280         non-null.
3281
3282 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3283
3284         * sched-rgn.c (extend_rgns): New static function.
3285         (find_rgns): Use it.
3286         (gather_region_statistics, print_region_statistics): New static
3287         functions.
3288         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
3289         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
3290
3291 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
3292             Andrey Belevantsev <abel@ispras.ru>
3293
3294         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
3295         * lists.c (unused_deps_list): New variable.
3296         (free_list): Add assertions to verify the proper distinguishing
3297         between INSN_LISTs and DEPS_LISTs.
3298         (find_list_elem, remove_list_elem, remove_list_node): New static
3299         functions.
3300         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
3301         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
3302         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
3303         (alloc_INSN_LIST): Assert that the list we're working on is indeed
3304         an INSN_LIST.
3305         (free_INSN_LIST_node): Likewise.
3306         * modulo-sched.c (current_sched_info): Initialize flags field.
3307         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
3308         * rtl.def (DEPS_LIST): Define.
3309         * rtl.h: Declare new functions from lists.c.
3310         * sched-deps.c (spec_dependency_cache): New static variable.
3311         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
3312         (add_dependence): Change return type to void.  Move the logic to ...
3313         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
3314         (delete_all_dependences): Add comment about forward_dependency_cache.
3315         Handle spec_dependency_cache.  Handle DEPS_LISTs.
3316         (fixup_sched_groups): Clarify the change of priority of output
3317         and anti dependencies.
3318         (sched_analyze_2): Adjust add_dependence calls to create data
3319         speculative dependence.
3320         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
3321         Adjust all callers.  Handle DEPS_LISTS.
3322         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
3323         presence of speculation.
3324         (init_dependency_caches, free_dependency_caches):
3325         Handle spec_dependency_cache.
3326         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
3327         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
3328         New static functions.
3329         (add_or_update_back_dep, add_or_update_back_forw_dep,
3330         add_back_forw_dep, delete_back_forw_dep): New functions.
3331         * sched-int.h (ds_t, dw_t): New typedefs.
3332         (struct sched_info): Add new field flags.
3333         (struct haifa_insn_data): Add new bitfield has_internal_dep.
3334         Prototype new sched-deps.c functions.
3335         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
3336         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
3337         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
3338         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
3339         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
3340         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
3341         New constants.
3342         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
3343         New enums.
3344         * sched-rgn.c (current_sched_info): Initialize flags field.
3345         (schedule_insns): Initialize current_sched_info before the sched_init
3346         call.
3347         * sched-ebb.c (current_sched_info): Initialize flags field.
3348         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
3349         Call add_or_update_back_dep instead of add_dependence.
3350         Create control speculative dependencies.
3351         (schedule_insns): Initialize current_sched_info before the sched_init
3352         call.
3353
3354 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3355
3356         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
3357         fs->signal_frame.
3358         (sh_fallback_frame_state): Likewise.
3359
3360 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
3361
3362         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
3363         Do switch on default_use_cxa_atexit.
3364         (powerpc*-*-darwin*): Build crt2.o on powerpc.
3365         * config/darwin-crt3.o: New.
3366         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
3367         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
3368         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
3369         OS version.
3370         * config/rs6000/t-darwin: Move crt2.o building to here.
3371         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
3372         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
3373         of __cxa_atexit.
3374
3375 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3376
3377         * config/vax/vax.c (nonindexed_address_p): Change logical negation
3378         from '! xxx' to '!xxx' for coding-style conformance.
3379         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
3380         (EXTRA_CONSTRAINT): Likewise.
3381         * config/vax/vax.md (four unnamed insns): Likewise.
3382
3383 2006-03-15  Paul Brook  <paul@codesourcery.com>
3384
3385         * config/arm/arm.c (minipool_pad): New.
3386         (add_minipool_forward_ref): Include pool alignment padding in address
3387         calculation.
3388         (push_minipool_fix): Set minipool_pad.
3389         (minipool_pad): Ditto.
3390
3391 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3392
3393         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
3394         instead of GET_CODE() == MEM and REG_P() instead of
3395         GET_CODE() == REG.
3396         (print_operand_address): Likewise.
3397         (vax_address_cost): Likewise.
3398         (vax_rtx_costs): Likewise.
3399         (vax_notice_update_cc): Likewise.
3400         (vax_output_int_add): Likewise.
3401         (INDEX_REGISTER_P): Likewise.
3402         (BASE_REGISTER_P): Likewise.
3403         (nonindexed_address_p): Likewise.
3404         (vax_mode_dependent_address_p): Likewise.
3405         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
3406         (PRINT_OPERAND): Likewise.
3407         * config/vax/vax.md (ashlsi3): Likewise.
3408         (ashlsi3): Likewise.
3409         (some more unnamed insns): Likewise.
3410
3411 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
3412
3413         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
3414         iterator-style macro.
3415         (mark_control_dependent_edges_necessary): Update the use of
3416         EXECUTE_IF_CONTROL_DEPENDENT.
3417
3418 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
3419
3420         * config/sh/predicates.md (cache_address_operand): Special.
3421         (ua_address_operand): Likewise.
3422
3423 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
3424
3425         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
3426        &nbs