OSDN Git Service

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