OSDN Git Service

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