OSDN Git Service

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