OSDN Git Service

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