OSDN Git Service

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