OSDN Git Service

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