OSDN Git Service

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