OSDN Git Service

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