OSDN Git Service

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