OSDN Git Service

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