OSDN Git Service

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