OSDN Git Service

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