OSDN Git Service

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