OSDN Git Service

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