OSDN Git Service

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