OSDN Git Service

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