OSDN Git Service

ca5851cc2559df7ffe5dd460b110b94d3fc67625
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2
3         PR target/27421
4         * config/i386/i386.c (classify_argument): Skip fields with invalid
5         types in unions.
6
7 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
8
9         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
10         (cse_insn): Likewise for the stack_pointer_rtx.
11
12 2006-06-08  Roger Sayle  <roger@eyesopen.com>
13
14         * tree-ssa-dom.c (record_conditions): Only record "unordered"
15         conditions from floating point comparisons.
16
17 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
18
19         PR middle-end/27733
20         * expmed.c (struct alg_hash_entry): Fix type of field T
21         to match synth_mult argument.
22         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
23
24 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
25
26         PR target/27863
27         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
28         block boundaries.
29
30 2006-06-08  Richard Guenther  <rguenther@suse.de>
31
32         PR middle-end/27116
33         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
34         only, if overflow is defined and not trapping.
35         (negate_expr): Likewise.
36
37 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
38
39         PR tree-optimization/27872
40         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
41         flag on the new exit edge of the unrolled loop.
42
43 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
44
45         PR rtl-optimization/26449
46         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
47
48 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
49
50         PR middle-end/27793
51         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate 
52         referenced_variables with matching DECL_UID's.
53         (find_referenced_vars): Make sure duplicate list is empty to start.
54         (referenced_var_p): Remove.
55         (referenced_var_check_and_insert): Renamed from referenced_var_insert.  
56         Check if var is in the list, and add if needed.  Update the duplicate
57         list if a different var is in the list with the same DECL_UID.
58         (add_referenced_var): Call routine to check and insert.
59         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
60         * tree-flow.h (referenced_vars_dup_list): External declaration.
61
62 2006-06-07  Fred Fish  <fnf@specifix.com>
63
64         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
65         into single entry.
66
67 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
68
69         PR target/27390
70         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
71         the imaginary and real parts of a clobbered register.
72         Emit insn to set the imaginary part.
73
74 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
75
76         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
77         in lieu of unwind-dw2-fde.c.
78
79 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
80
81         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
82
83 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
84
85         PR target/27842
86         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
87         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
88         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
89         V4SImode temporaries and operations instead.
90
91 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
92
93         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
94         dp-bit.c.
95
96 2006-06-06  Mike Stump  <mrs@apple.com>
97
98         * Makefile.in: Rename to htmldir to build_htmldir to avoid
99         installing during build.
100
101 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
102
103         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
104         value to 0.
105         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
106         * config/ia64/ia64.c (params.h): New header.
107         (ia64_optimization_options): New function to adjust parameters.
108         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
109         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
110         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
111
112 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
113
114         * stor-layout.c (debug_rli): Fix a typo in a debug message.
115
116 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
117
118         PR target/27051
119         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
120
121 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
122             Victor Kaplansky  <victork@il.ibm.com>
123
124         PR tree-optimization/26360
125         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
126         stmts.
127
128 2006-06-04  Roger Sayle  <roger@eyesopen.com>
129             Andrew Pinski  <pinskia@physics.uc.edu>
130
131         PR middle-end/27382
132         * c-common.c (c_common_truthvalue_conversion): Explicitly check
133         for LABEL_DECL before calling DECL_WEAK.
134
135         PR c/27150
136         * c-typeck.c (build_binary_op): Likewise, explicitly check for
137         LABEL_DECL and PARM_DECL.
138
139 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
140
141         PR c/25161
142         PR c/27020
143         * c-decl.c (grokdeclarator): Disallow variably modified types at
144         file scope.  Avoid marking shared array type of constant size as
145         VLA.
146
147 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
148
149         PR c++/27601
150         * c-common.c (fold_offsetof_1): Handle static members.
151
152 2006-06-04 Eric Christopher <echristo@apple.com>
153
154         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
155         (debug_rli): Output value for remaining_in_alignment.
156         (update_alignment_for_field): Unconditionalize
157         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
158         extra alignment code.
159         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
160         ms_bitfield_layout_p code. Rewrite handling of structure fields.
161         * tree.h (record_layout_info_s): Remove prev_packed.
162         * doc/extend.texi (ms_struct): Add documentation of format.
163
164 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
165
166         * tree.h: Declare folding_initializer.
167         * builtins.c (fold_builtin_constant_p): Give definite answer
168         if folding inside an initializer.
169         * fold-const.c: Define folding_initializer.
170         (START_FOLD_INIT): Save and then set folding_initializer.
171         (END_FOLD_INIT): Restore folding_initializer.
172
173 2006-06-04  Richard Guenther  <rguenther@suse.de>
174
175         PR tree-optimization/27039
176         * fold-const.c (fold_comparison): Handle pointer comparison
177         again for all comparison codes.  Compare offsets in signed
178         size type.
179         (fold_binary): Move code from here.
180
181 2006-06-03  Roger Sayle  <roger@eyesopen.com>
182
183         PR target/26223
184         * config/i386/i386.c (construct_container): Split static issued_error
185         flag into issued_sse_arg_error, issued_sse_ret_error and
186         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
187         requires the use of x87 registers and the user explicitly
188         specified the -mno-80387 command line option.
189
190 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
191
192         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
193         HAVE_DECL_SIGALTSTACK.
194         (MC_FLD): New.
195         (segv_handler): Use MC_FLD.
196         * configure.ac: Check for a sigaltstack declaration.
197         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
198         * configure: Regenerate.
199         * config.in: Regenerate.
200
201 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
202
203         PR other/27850
204         * Makefile.in (stmp-fixinc): Fix typo.
205
206 2006-06-02  Roger Sayle  <roger@eyesopen.com>
207
208         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
209         are type correct.  Clean-up.
210         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
211         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
212
213 2006-06-01  DJ Delorie  <dj@redhat.com>
214
215         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
216         shift, as we've disabled the "switch" insn that needs it.
217
218 2006-06-01  Per Bothner  <bothner@bothner.com>
219
220         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
221         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
222         * c-ppoutput.c (cb_define): Don't increment line 0.
223
224 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
225
226         * doc/invoke.texi: Add cpu_type power6.
227         * config.gcc: Add cpu_type power6.
228         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
229         to power5+ with Altivec.
230         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
231         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
232
233 2006-05-30  Anatoly Sokolov <aesok@post.ru>
234
235         * config/avr/avr.h (SET_ASM_OP): Define.
236
237 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
238
239         * config/bfin/bfin.c: Fix comment typos.
240
241 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
242
243         PR 25453
244         * doc/install.texi: Document --enable-bootstrap and
245         --disable-bootstrap.
246
247 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
248
249         * doc/install.texi: Document that InfoZIP can replace jar.
250
251 2006-05-31  Roger Sayle  <roger@eyesopen.com>
252
253         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
254         isn't available, directly generate the simpler x87 patterns without
255         the (use (const_int 0)).
256         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
257         implementation isn't available.
258         (*negdf2_1): Likewise.
259         (*negxf2_1): XF mode negation is always done using the x87.
260         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
261
262 2006-05-31  Roger Sayle  <roger@eyesopen.com>
263
264         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
265         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
266         cabs(z).
267         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
268
269 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
270
271         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
272         * config/bfin/bfin.c (basic-block.h): Include.
273         (struct machine_function): New.
274         (bfin_init_machine_status): New.
275         (override_options): Initialize init_machine_status.
276         (bfin_hardware_loop): New.
277         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
278         (DEF_VEC_P (loop_info)): New.
279         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
280         (struct loop_info): New.
281         (loop_info): New typedef.
282         (struct loop_work): New.
283         (loop_work): New typedef.
284         (DEF_VEC_O (loop_work)): New.
285         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
286         (bfin_dump_loops): New.
287         (bfin_bb_in_loop): New.
288         (bfin_scan_loop): New.
289         (bfin_optimize_loop): New.
290         (bfin_reorg_loops): New.
291         (bfin_reorg): Use bfin_reorg_loops.
292         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
293         loop registers.
294         (I_REGNO_P): Simplify.
295         (DP_REGNO_P, DPREG_P): New macros.
296         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
297         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
298         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
299         Add LT_REGS, LC_REGS, LB_REGS.
300         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
301         'l' for LB_REGS.
302         (REGNO_REG_CLASS): Deal with loop registers.
303         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
304         letters.
305         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
306         New constants for loop registers.
307         (UNSPEC_LSETUP_END): New.
308         (seq_insns): New define_attr. Set it for appropriate insns.
309         (movsi_insn): Add alternatives for move from/to
310         loop count registers.
311         (doloop_end): New define_expand.
312         (loop_end): New define_insn.
313         (define_split for bad doloop_end): New.
314         (lsetup_with_autoinit): New define_insn.
315         (lsetup_without_autoinit): New define_insn.
316         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
317         * config/bfin/predicates.md (lc_register_operand): New.
318         (lt_register_operand): New.
319         (lb_register_operand): New.
320         (nondp_register_operand): New.
321         (nondp_reg_or_memory_operand): New.
322         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
323
324 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
325
326         * config/bfin/bfin.c (bfin_delegitimize_address): New.
327         (TARGET_DELEGITIMIZE_ADDRESS): Define.
328
329 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
330
331         * Makefile.in (CATALOGS): Add po/ prefix.
332         * configure: Regenerated.
333
334 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
335
336         PR target/27829
337         * arm.c (arm_print_operand case 'S'): Validate that the operand is
338         a shift operand before calling shift_op.  Avoid redundant call of
339         shift_op.
340
341 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
342             DJ Delorie  <dj@redhat.com>
343
344         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
345         we're inserting is a singlt-bit constant.
346
347 2006-05-30  Roger Sayle  <roger@eyesopen.com>
348
349         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
350         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
351
352 2006-05-30  Roger Sayle  <roger@eyesopen.com>
353
354         PR tree-optimization/23452
355         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
356         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
357         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
358         complex values and with -ffast-math for FP complex values.
359
360 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
361
362         * c-common.h: Remove the prototype for yyparse.
363         * rtl.h: Remove the prototype for init_loop.
364
365 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
366
367         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
368         calling recog.
369
370 2006-05-30  Roger Sayle  <roger@eyesopen.com>
371
372         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
373         and rotate cases.
374         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
375         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
376
377 2006-05-30  Dirk Mueller  <dmueller@suse.de>
378
379         PR c/27273
380         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
381         for CONSTANT_CLASS_P expresisons.
382
383 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
384
385         PR c/27718
386         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
387
388 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
389
390         PR tree-optimization/27779
391         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
392         initial_condition instead of CHREC_LEFT.
393
394 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
395
396         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
397         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
398         Make prototypes ISO C90.
399
400 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
401             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
402
403         * see.c (see_analyze_one_def): Correct check.
404         (see_get_extension_data): Check if extension is parallel.
405         (see_get_extension_reg): Likewise.
406
407 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
408
409         PR target/27790
410         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
411         into register for (code == GTU).
412
413 2006-05-29  Roger Sayle  <roger@eyesopen.com>
414
415         PR tree-optimization/24964
416         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
417         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
418         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
419         abs(x)*abs(x) as x*x for scalar floating point modes.
420
421 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
422
423         PR middle-end/27745
424         * lambda-code.c (perfect_nestify): Don't copy statements
425         in the inner loop: move them to the inner loop header.
426
427 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
428
429         PR 26237
430         * c-tree.texi: Document OpenMP directives and clauses.
431
432 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
433
434         * varasm.c (globalize_decl): Fix indentation.
435
436 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
437
438         PR 26242
439         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
440         pass_fre, pass_store_ccp, pass_copy_prop,
441         pass_store_copy_prop, pass_merge_phi, pass_nrv,
442         pass_return_slot, pass_object_size, pass_lim,
443         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
444         pass_loop_prefetch and pass_stdarg.
445
446 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
447
448         * config/bfin/bfin.opt (mfdpic): New option.
449         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
450         (EXTRA_MULTILIB_PARTS): Likewise.
451         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
452         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
453         multilib.
454         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
455         (CRT_CALL_STATIC_FUNCTION): New.
456         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
457         -shared.
458         (CRT_CALL_STATIC_FUNCTION): New.
459         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
460         FD-PIC moves.
461         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
462         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
463         (initialize_trampoline): Changed to handle FD-PIC code generation.
464         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
465         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
466         (override_options): Disallow -mid-shared-library -mfdpic combination.
467         Can't do unaligned ops if FD-PIC.
468         Turn off flag_pic if trying to generate non-id-shared-library
469         non-fdpic code, since it's not supported.
470         (bfin_assemble_integer): New function.
471         (TARGET_ASM_INTEGER): Define.
472         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
473         __BFIN_FDPIC__.
474         * config/bfin/crtn.s: Restore them.
475         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
476         if TARGET_FDPIC.
477         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
478         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
479         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
480         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
481         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
482         call-used.
483         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
484         FDPIC_REGS and FDPIC_FPTR_REGS.
485         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
486         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
487         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
488         (load_funcdescsi): New pattern.
489         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
490         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
491         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
492
493 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
494
495         * gcse.c, rtlanal.c: Remove obsolete comments associated with
496         loop.c.
497
498         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
499
500         * tree-flow.h: Remove the prototype for add_type_alias.
501         * tree-ssa-alias.c (add_type_alias): Remove.
502
503 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
504
505         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
506         config/fr30/fr30.md, config/i386/i386-interix.h,
507         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
508         config/sh/superh64.h, config/v850/v850.c, df-core.c,
509         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
510         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
511         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
512         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
513         Follow spelling conventions.
514         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
515         Follow spelling conventions.
516
517 2006-05-27  Richard Guenther  <rguenther@suse.de>
518
519         PR middle-end/27773
520         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
521         to produce a constant of value 1 of generic type.
522
523 2006-05-27  Dirk Mueller  <dmueller@suse.de>
524
525         * cgraphunit.c (decide_is_function_needed): Fix wrong
526         PR reference.
527
528 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
529
530         PR rtl-optimization/27661
531         * reload.c (find_reloads): When reloading a VOIDmode constant
532         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
533         use Pmode as mode of the reload register.
534
535 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
536
537         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
538         is enabled at -O and above.
539
540 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
541
542         PR target/27571
543         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
544         table data.
545
546 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
547
548         PR c++/20103
549         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
550         for anonymous variables explicitly declared by front ends.
551
552 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
553
554         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
555         (struct alias_info): Add new field ref_all_symbol_mem_tag.
556         * tree-ssa-alias.c (compute_may_aliases): If the program contains
557         ref-all pointers, run a finalization pass for them.
558         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
559         (finalize_ref_all_pointers): New function.
560         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
561         regular pointer type to a ref-all pointer type.
562         (get_tmt_for): Return the special memory tag for ref-all pointers.
563
564 2006-05-25  Richard Guenther  <rguenther@suse.de>
565
566         PR middle-end/27743
567         * fold-const.c (fold_binary): Do not look at the stripped
568         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
569
570 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
571
572         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
573         for LT and GT if the computed range is effectively empty.
574
575 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
576
577         PR target/27627
578         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
579         mips_quad_format formats instead of ieee_single_format,
580         ieee_double_format and ieee_quad_format formats, respectively.
581
582 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
583
584         PR tree-optimization/27639
585         PR tree-optimization/26719
586         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
587         call to scev_probably_wraps_p.
588         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
589         used_in_pointer_arithmetic_p, convert_step): Removed.
590         (nowrap_type_p): New function.
591         (scev_probably_wraps_p): Rewritten.
592         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
593         chrec_convert if chrec_convert_aggressive might have been used.
594         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
595         scev_direction): New functions.
596         (chrec_convert): Changed to a wrapper over chrec_convert_1.
597         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
598         instead of convert_step.
599         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
600         (convert_step): Declaration removed.
601         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
602
603 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
604
605         * df-core.c: Added to header comments.
606         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
607         df_ur_bb_info, df_urec_bb_info): Added comments.
608         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
609         urec, ri problems): Fixed header comments.
610         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
611         code from df_rd_transfer_function.
612
613 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
614
615         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
616         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
617         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
618
619 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
620
621         * expr.c (undefined_operand_subword_p): New.
622         (emit_move_multi_word): Do not generate move from undefined bits
623         of a paradoxical subreg.
624
625 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
626
627         PR rtl-optimization/27736
628         * combine.c (replaced_rhs_value): New variable.
629         (combine_instructions): Set it.
630         (distribute_notes): When distributing a note in replaced_rhs_insn,
631         check whether the value was used in replaced_rhs_value.
632
633 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
634
635         PR c++/26757
636         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
637         add_referenced_var instead of add_referenced_tmp_var.
638         * tree-complex.c (create_one_component_var): Use add_referenced_var.
639         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
640         add_referenced_var.
641         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
642         tree_optimize_tail_calls_1): Use add_referenced_var.
643         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
644         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
645         Use add_referenced_var.
646         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
647         * gimplify.c (force_gimple_operand): Use add_referenced_var.
648         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
649         Use add_referenced_var.
650         * tree-dfa.c (struct walk_state): Remove.
651         (find_referenced_vars): Remove walk state and vars_found hash table.
652         (make_rename_temp): Use add_referenced_var.
653         (find_vars_r): Pass less parameters to add_referenced_var.
654         (referenced_var_p): New.  Is var in referenced_var hash table.
655         (referenced_var_insert): Assert var isn't already in hash table.
656         (add_referenced_var): Don't need walk_state parameter.  Add var if it
657         isn't already in the hash table.
658         (add_referenced_tmp_var): Remove.
659         (find_new_referenced_vars_1): Use add_referenced_var.
660         * tree-ssa-pre.c (create_expression_by_pieces,
661         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
662         Use add_referenced_var.
663         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
664         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
665         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
666         add_referenced_var.
667         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
668         vect_create_data_ref_ptr, vect_create_destination_var,
669         vect_init_vector, vect_build_loop_niters,
670         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
671         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
672         Use add_referenced_var.
673         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
674         * tree-flow.h (add_referenced_tmp_var): Remove prototype
675         (add_referenced_var): Add prototype.
676         * tree-ssa-structalias.c (get_constraint_for,
677         intra_create_variable_infos): Use add_referenced_var.
678
679 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
680
681         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
682         big-endian paradoxical subregs.
683         * var-tracking.c (struct micro_operation_def): Document that,
684         for modify micro operations, insn is the subsequent instruction.
685         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
686         (var_reg_set, var_mem_set): ... new functions.
687         (add_stores): Record subsequent insn.
688         (compute_bb_dataflow): Use new functions for MO_USE.
689         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
690         notes after the insn, and modify notes before the insn known
691         to be the subsequent one.
692         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
693
694 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
695
696         PR target/27696
697         * config/i386/i386.c (ix86_expand_builtin): Use
698         gen_sse3_monitor64 for TARGET_64BIT.
699
700 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
701
702         PR rtl-optimization/26375
703         PR rtl-optimization/26855
704         * df-problems (df_ru_bb_local_compute_process_def): Removed update
705         to gen set.
706         (df_ru_bb_local_compute): Reversed statements and removed bogus
707         comment explaining why they should be in wrong order.
708         (df_ru_dump, df_rd_dump): Enhanced debug info.
709         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
710         debug info.
711         * ddg.c (add_deps_for_def): Converted use of reaching defs to
712         reaching uses and fixed space problem.
713
714 2006-05-23  Jan Hubicka  <jh@suse.cz>
715
716         * cgraphunit.c (decide_is_function_needed): Also nested functions
717         and functions declared inline can be optimized out at -O0.
718
719 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
720
721         * doc/install.texi (Configuration): Remove reference to CrossGCC
722         FAQ which was hijacked.
723         (Building): Ditto.
724
725 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
726
727         PR target/27266
728         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
729         ix86_compare_emitted is non-NULL.
730
731 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
732
733         PR c++/27451
734         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
735         clobbers.
736
737 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
738
739         PR rtl-optimization/25514
740         * combine.c (replaced_rhs_insn): New variable.
741         (combine_instructions): Set replaced_rhs_insn when trying to replace
742         a SET_SRC with a REG_EQUAL note.
743         (distribute_notes): Use replaced_rhs_insn when determining the live
744         range of a REG_DEAD register.
745
746 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
747             Anatoly Sokolov <aesok@post.ru>
748
749         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
750         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
751         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
752         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
753         atmega3290, atmega649, atmega6490, atmega406, atmega640,
754         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
755         at90usb647, at90usb1286 and at90usb1287 devices.
756         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
757         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
758
759 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
760
761         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
762
763 2006-05-22  Richard Guenther  <rguenther@suse.de>
764
765         Revert
766         2006-01-31  Richard Guenther  <rguenther@suse.de>
767         Paolo Bonzini  <bonzini@gnu.org>
768
769         * doc/install.texi (--disable-libgcc-math): Document.
770
771 2006-05-22  Richard Guenther  <rguenther@suse.de>
772
773         Revert
774         2006-01-31  Richard Guenther  <rguenther@suse.de>
775
776         * doc/invoke.texi (-msselibm): Document.
777         * target.h (expand_library_builtin): New target hook.
778         * builtins.c (expand_builtin): Use expand_library_builtin.
779         (default_expand_library_builtin): New function.
780         * gcc.c (LINK_GCC_MATH_SPEC): Define.
781         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
782         (link_gcc_math_spec): Declare.
783         (static_specs): Add link_gcc_math_spec.
784         * expr.h (default_expand_library_builtin): Declare.
785         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
786         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
787         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
788         * config/i386/i386.opt (msselibm): New target option.
789         * config/i386/i386.c (ix86_builtin_function_variants): New array.
790         (ix86_init_sse_abi_builtins): New function.
791         (ix86_expand_library_builtin): Likewise.
792         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
793         (override_options): Handle error conditions wrt -msselibm.
794         (ix86_builtins): Add function codes for SSE2 ABI builtins.
795         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
796         * doc/extend.texi (__builtin_sse2_*): Document new target specific
797         builtins.
798
799 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
800
801         PR c/27420
802         * c-common.c (self_promoting_args_p): Skip erroneous args.
803
804         PR c/26818
805         * c-decl.c (finish_struct): Skip erroneous fields.
806
807 2006-05-22  Nick Clifton  <nickc@redhat.com>
808
809         * config/cris/cris.opt (march): Remove VarExists attribute.
810         (max-stackframe=): Likewise.
811
812 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
813
814         * doc/rtl.texi: Fix a typo.
815         * see.c: Fix comment typos.
816
817         * tree-ssa-structalias.h (alias_info): Remove num_references.
818
819 2006-05-21  Mike Stump  <mrs@apple.com>
820
821         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
822         (BAD2): Add.
823         (darwin_pragma_options): Use BAD instead.
824         (darwin_pragma_unused): Likewise.
825         (darwin_pragma_ms_struct): Likewise.
826
827 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
828
829         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
830
831 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
832
833         PR rtl-optimization/27671
834         * simplify-rtx.c (simplify_relational_operation_1): Fix
835         simplifications of (eq/ne (xor x y) y) and
836         (eq/ne (xor x y) x).
837
838         PR tree-optimization/26622.
839         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
840         on arg1.
841
842 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
843
844         * tree-cfg.c: Prune whitespace.
845         (debug_tree_cfg): Point to correct header containing the
846         TDF_* defines.
847
848 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
849
850         PR middle-end/25776
851         * cgraphunit.c (verify_cgraph_node): Typo in error message.
852
853 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
854
855         PR middle-end/25776
856         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
857         or sorry count is non zero.
858
859 2006-05-20  Andreas Schwab  <schwab@suse.de>
860
861         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
862
863 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
864             Kenneth Zadeck <zadeck@naturalbridge.com>
865
866         PR rtl-optimization/26855
867
868         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
869         multiword refs.
870         (df_scan_alloc): Added code to properly handle multiword hard
871         registers and add all_blocks parameter.
872         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
873         code to properly handle multiword hard registers.
874         (df_rescan_blocks): Added code to remove deleted blocks from
875         bitmap.
876         (df_ref_create_structure, df_ref_record): Added code to properly
877         handle subregs.
878         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
879         and set DF_REF_PARTIAL.
880         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
881         (df_uses_record): Added DF_REF_PARTIAL for subreg.
882         (df_scan_add_problem): Added flags parameter.
883         (df_ref_create_structure): Changed switching structure.
884         (df_bb_refs_record): Fixed case where duplicate artificial refs
885         were created.  Changed location of flags.
886         (df_record_entry_block_defs): Added code to make stack pointer
887         live in entry block.  Refined cases where frame pointer is needed.
888         Changed location of flags.
889         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
890         (df_set_state): Removed function.
891         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
892         df_insn_create_insn_record, df_insn_refs_delete,
893         df_ref_create_structure): Formatting changes.
894         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
895         df_delete_basic_block): New function.
896         (df_init): Changed location of flags.
897         (df_add_problem): Added flags parameter and the way flags are
898         processed.
899         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
900         debug_df_chain): Improved debugging output.
901         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
902         (df_refs_chain_dump): Removed df parameter.
903         (df_iterative_dataflow): Added consistency check.
904         (df_prune_to_subcfg): Made public.
905         (df_analyze_problem): Added blocks_to_init parameter and made
906         public.
907         (df_ref_record, df_bb_refs_record, df_mark_reg,
908          df_record_exit_block_uses): Whitespace changes.
909         (df_dump): Whitespace changes.
910         * df.h: Some reordering to remove forward references.
911         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
912         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
913         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
914         (dataflow.flags): New field.
915         (df.flag): Deleted field.
916         (df_alloc_function): Added additional bitmap parameter.
917         (df_dependent_problem_function): New type.
918         (df_problem.changeable_flags): New field.
919         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
920         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
921         (df_mw_hardreg): New struct.
922         (DF_INSN_UID_MWS): New macro.
923         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
924         parameter.
925         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
926         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
927         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
928         (df_set_state): Removed function.
929         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
930         * df-problems.c (df_chain_dump): Removed df parameter.
931         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
932         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
933         parameter.
934         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
935         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
936         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
937         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
938         DF_REF_MUST_CLOBBER cases.
939         (df_ru_bb_local_compute_process_def,
940         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
941         df_lr_bb_local_compute, df_ur_bb_local_compute,
942         df_chain_create_bb): Made subreg aware.
943         (df_ru_bb_local_compute, df_rd_bb_local_compute,
944         df_lr_bb_local_compute, df_lr_bb_local_compute,
945         df_chain_create_bb): Cleanup to use proper macros.
946         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
947         code to fixup bitvectors.
948         (df_ri_alloc): Cleared lifetime.
949         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
950         df_create_unused_note): New function.
951         (df_ri_bb_compute, df_ri_compute): Added code to create/update
952         REG_DEAD and REG_UNUSED notes as well as register information.
953         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
954         df_chains_dump): Fixed crash if problem was never run.
955         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
956         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
957         df_ri_add_problem): Processes flags in uniform manner.
958         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
959         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
960         df_rd_dump, df_urec_free_bb_info): Formatting changes.
961         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
962         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
963         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
964         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
965         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
966         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
967         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
968         * see.c (see_initialize_data): Ditto.
969         * final.c (rest_of_clean_state) Added regstack_completed.
970         * rtl.h (regstack_completed): Ditto.
971         * reg-stack.c (regstack_completed): Ditto.
972
973 2006-05-19  Mike Stump  <mrs@apple.com>
974
975         * c-tree.h (default_conversion): Remove.
976         * c-common.h (default_conversion): Add.
977
978 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
979
980         * tree-vrp.c (valid_value_p): New function.
981         (adjust_range_with_scev): Fail if the value of bound is not
982         simple.
983
984 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
985
986         * config/mips/linux-unwind.h: Include <asm/unistd.h>
987         (mips_fallback_frame_state): Use syscall numbers to determine
988         the appropriate li instruction for the current ABI.  Only use
989         __NR_sigreturn for o32.
990
991 2006-05-19  Nicolas Setton  <setton@adacore.com>
992
993         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
994         * langhooks.c (lhd_dwarf_name): New function.
995         * langhooks-def.h (lhd_dwarf_name): Declare.
996         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
997         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
998         * ada/misc.c (gnat_dwarf_name): New function.
999         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
1000
1001 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
1002
1003         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
1004         libgcc2.h.
1005         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
1006         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
1007         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
1008         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
1009         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
1010         determine the size of Wtype, etc.
1011         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
1012         (swfloatfuncs): New variable.
1013         (dwfloatfuncs): Likewise.
1014         (lib2funcs): Remove floating-point conversion functions from
1015         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
1016         the set of conversion routines needed.  Allow entries to specify
1017         an object name, filename and word size.  Update users accordingly.
1018         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
1019         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
1020
1021         Revert:
1022
1023         2006-02-08  Roger Sayle  <roger@eyesopen.com>
1024
1025         PR target/22209
1026         * config/fixtfdi.c: New libgcc source file.
1027         * config/fixunstfdi.c: New source file.
1028         * config/floatditf.c: New source file.
1029         * config/floatunditf.c: New souce file.
1030         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
1031         files above instead of config/mips/_tilib.c.
1032         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
1033
1034 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1035
1036         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
1037         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
1038
1039 2006-05-18  Mike Stump  <mrs@apple.com>
1040
1041         Fix up vla, vm and [*] sematics.
1042
1043         PR c/18740
1044         PR c/7948
1045         PR c/25802
1046         PR c/27673
1047         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
1048         (c_vla_unspec_p): Add.
1049         (c_vla_type_p): Add.
1050         * c-decl.c (struct c_scope): Add had_vla_unspec.
1051         (build_array_declarator): Add support for [*].
1052         (grokdeclarator): Likewise.
1053         (grokparms): Likewise.
1054         (get_parm_info): Likewise.
1055         * c-objc-common.c (c_vla_unspec_p): Likewise.
1056         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
1057         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
1058         typeof when argument is a variably modified type not inside sizeof or alignof.
1059         (c_parser_direct_declarator_inner): Propagate errors.
1060         (c_parser_sizeof_expression): Add support for [*].
1061         (c_parser_parms_declarator): Initialize had_vla_unspec.
1062         (c_parser_parms_list_declarator): Likewise.
1063         * c-typeck.c (c_vla_type_p): Add.
1064         (composite_type): Add support for vla compositing.
1065         (comptypes_internal): Add support for vla compatibility.
1066         (c_expr_sizeof_expr): Evaluate vla arguments.
1067         * tree.c (variably_modified_type_p): Update comment for [*].
1068
1069 2006-05-18  Michael Matz  <matz@suse.de>
1070
1071         PR target/27599
1072         * config.host: Make assignments to host_xmake_file cumulative.
1073         * config.host (*-darwin*): Test $host, not $target.
1074
1075 2006-05-12  Stuart Hastings  <stuart@apple.com>
1076
1077         * config/i386/i386.opt (-mstackrealign): New flag.
1078         * config/i386/i386.c (force_align_arg_pointer): New attribute.
1079         (ix86_handle_cconv_attribute): Emit error when
1080         force_align_arg_pointer attribute collides with too many regparms.
1081         (ix86_function_regparm): Limit regparms when used with
1082         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
1083         Support stack-realigning prologue in non-main functions.  Emit
1084         warning for nested functions under -mstackrealign, emit error for
1085         nested functions with force_align_arg_pointer attribute.
1086         * doc/extend.texi (force_align_arg_pointer): Document it.
1087         * doc/invoke.texi (-mstackrealign): Document it.
1088
1089 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
1090
1091         PR rtl-optimization/27477
1092         * combine.c (try_combine): Don't split a parallel consisting
1093         of two sets into two individual sets if both sets reference
1094         cc0.
1095
1096 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1097
1098         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
1099         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
1100
1101         * doc/options.texi (VarExists): Updated.
1102
1103 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1104
1105         * unwind-dw2.c: Add declarations for uw_update_context and
1106         uw_frame_state_for.
1107         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
1108         detected, advance frame state and context once to skip over stub.
1109
1110 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
1111
1112         PR middle-end/20256
1113         PR middle-end/26435
1114         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
1115         Call rewrite_into_loop_closed_ssa only when something changed.
1116         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
1117         * lambda-code.c (can_convert_to_perfect_nest): Declared.
1118         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
1119         Test for perfect_nest_p here.  Fix formating.
1120         (replace_uses_equiv_to_x_with_y): Fix formating.
1121         (stmt_uses_op): Removed.
1122         (can_convert_to_perfect_nest): Removed loopivs parameter.
1123         Complete the test by checking the scalar dependences.
1124         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
1125         Fix formating.
1126
1127 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1128
1129         PR bootstrap/22541
1130         From Dan Kegel <dank@kegel.com>:
1131         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
1132
1133 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1134
1135         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
1136         if the element type is variably modified without recursing.
1137
1138 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
1139
1140         PR middle-end/27332
1141         * tree-loop-linear.c (try_interchange_loops): Test for
1142         no data dependences.
1143
1144 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
1145
1146         PR tree-optimization/27548
1147         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
1148         range of ssa names that appear on abnormal edges.
1149         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
1150         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
1151
1152 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1153
1154         PR middle-end/27620
1155         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
1156
1157 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
1158
1159         PR middle-end/27415
1160         * tree.h (OMP_PARALLEL_COMBINED): Define.
1161         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
1162         (new_omp_context): Add is_combined_parallel argument.
1163         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
1164         new_omp_context caller.
1165         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1166         Adjust gimplify_scan_omp_clauses callers.
1167         (omp_is_private): Issue errors if iteration variable is firstprivate
1168         or reduction in the current context.
1169         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
1170         on combined parallel workshare constructs.
1171
1172 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1173
1174         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
1175         (gcc-options.o): New rule.
1176
1177         * optc-gen.awk: Protect variables for gcc-options.o with
1178         #ifdef GCC_DRIVER/#endif.
1179
1180 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
1181
1182         Fix PR tree-optimization/27373
1183         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
1184          (forward_propagate_addr_expr): Update call.
1185
1186 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1187
1188         * doc/options.texi: Move the Negative option.
1189
1190 2006-05-16  Richard Guenther  <rguenther@suse.de>
1191
1192         PR tree-optimization/22303
1193         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
1194         from STRING_CSTs.
1195         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
1196         ccp_fold did not simplify the statement.
1197
1198 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         PR driver/26885
1201         * Makefile.in (GCC_OBJS): New.
1202         (OBJS-common): Add opts-common.o.
1203         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
1204         (cpp$(exeext)): Likewise.
1205         (gcc.o): Also depend on opts.h.
1206         (opts-common.o): New.
1207
1208         * common.opt (gcoff): Add Negative(gdwarf-2).
1209         (gdwarf-2): Add Negative(gstabs).
1210         (gstabs): Add Negative(gstabs+).
1211         (gstabs+): Add Negative(gvms).
1212         (gvms): Add Negative(gxcoff).
1213         (gxcoff): Add Negative(gxcoff+).
1214         (gxcoff+): Add Negative(gcoff).
1215         * config/i386/i386.opt (m32): Add Negative(m64).
1216         (m64): Add Negative(m32).
1217
1218         * doc/options.texi: Document the Negative option.
1219
1220         * gcc.c: Include "opts.h".
1221         (main): Call prune_options after expandargv.
1222
1223         * optc-gen.awk: Generate common declarations for all flag
1224         variables in options.c. Output the neg_index field.
1225
1226         * opts.c (find_opt): Moved to ...
1227         * opts-common.c: Here. New file.
1228
1229         * opts.h (cl_option): Add a neg_index field.
1230         (find_opt): New.
1231         (prune_options): Likewise.
1232
1233 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
1234
1235         PR middle-end/27573
1236         * omp-low.c (expand_omp_parallel): Don't assert
1237         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
1238         instead search for it.
1239
1240         PR c/27499
1241         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
1242         is signed.
1243
1244 2006-05-16  Andreas Schwab  <schwab@suse.de>
1245
1246         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
1247         defmac.
1248
1249 2006-05-15  Roger Sayle  <roger@eyesopen.com>
1250
1251         PR target/26600
1252         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
1253         integer constants other than zero are only legitimate on TARGET_64BIT.
1254         <CONST_VECTOR> Only zero vectors are legitimate.
1255         (ix86_cannot_force_const_mem): Integral and vector constants can
1256         always be put in the constant pool.
1257
1258 2006-05-16  DJ Delorie  <dj@redhat.com>
1259
1260         * crtstuff.c (__dso_handle): Set section from
1261         TARGET_LBIGCC_SDATA_SECTION if defined.
1262         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
1263         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
1264
1265 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
1266
1267         PR target/27599
1268         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
1269         host_xmake_file.
1270
1271 2006-05-16  Ben Elliston  <bje@au.ibm.com>
1272
1273         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
1274
1275 2006-05-15  Per Bothner  <per@bothner.com>
1276
1277         * tree.c: (last_annotated_node): Use source_locus typedef.
1278         This permits bootstrapping with --enable-mapped-location.
1279
1280 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
1281
1282         PR tree-optimization/26830
1283         * tree-into-ssa.c (struct ssa_name_info): Add age field.
1284         (info_for_ssa_name, current_info_for_ssa_name_age,
1285         blocks_to_update): New variables.
1286         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
1287         (clear_ssa_name_info, initialize_flags_in_bb,
1288         mark_block_for_update): New functions.
1289         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
1290         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
1291         prepare_def_site_for): Use mark_block_for_update.
1292         (mark_def_interesting): Assert that the processed block is marked in
1293         blocks_to_update.  Do not take blocks argument.
1294         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
1295         argument.
1296         (rewrite_update_init_block, rewrite_update_stmt): Only process
1297         blocks with statements to rewrite.
1298         (delete_update_ssa): Do not clear SSA_NAME_AUX.
1299         (update_ssa): Initialize and free blocks_to_update.  Do not
1300         clear flags on statements.  Do not use blocks bitmap.
1301         * tree.h (SSA_NAME_AUX): Removed.
1302         (struct tree_ssa_name): Removed aux field.
1303         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
1304
1305 2006-05-15  Richard Guenther  <rguenther@suse.de>
1306
1307         PR tree-optimization/27603
1308         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
1309         Do computations in original type.
1310
1311 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
1312
1313         * see.c: Code style changes such as redundant paranthesis,
1314         redundant intialization of local variables etc.
1315         (see_main): Declared now as static.
1316         * doc/invoke.texi: Update that -fsee is not enabled by
1317         default at -O3.
1318
1319 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
1320
1321         * omp-low.c (check_omp_nesting_restrictions): New function.
1322         (scan_omp_1): Call it.
1323
1324         PR middle-end/27416
1325         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
1326         construct, return *VAR.
1327
1328 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1329
1330         PR rtl-optimization/27406
1331         * bt-load.c (migrate_btr_def): Skip the block having abnormal
1332         edges.
1333
1334 2006-05-14  Roger Sayle  <roger@eyesopen.com>
1335
1336         PR rtl-optimization/27538
1337         * combine.c (expand_compound_operation): Call gen_lowpart
1338         before calling simplify_shift_const.
1339
1340 2006-05-14  Roger Sayle  <roger@eyesopen.com>
1341
1342         PR rtl-optimization/22563
1343         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
1344         a fixed width bitfield, always force the intermediates into psuedos.
1345
1346 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
1347
1348         PR 27501
1349         * mkconfig.sh: Use operator = instead of == for test.
1350
1351 2006-05-13  Nick Clifton  <nickc@redhat.com>
1352
1353         * dwarf2out.c (dbx_reg_number): Check return value from
1354         LEAF_REG_REMAP and only use it if it is valid.
1355         (multiple_reg_loc_descriptor): Likewise.
1356
1357 2006-05-13  Richard Guenther  <rguenther@suse.de>
1358
1359         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
1360         host_xmake_file.
1361
1362 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
1363
1364         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
1365         information attached to non-INSNs such as NOTEs.
1366         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
1367
1368 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1369
1370         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
1371         On contraint.
1372         * config/s390/s390.md: Adjust comment describing On constraint.
1373
1374 2006-05-11  Jan Hubicka  <jh@suse.cz>
1375
1376         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
1377         to be output at -O0.
1378
1379 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1380
1381         PR middle-end/27384
1382         * fold-const.c (size_binop): Move sanity check for arguments to
1383         the beginning of the function.
1384
1385         PR middle-end/27488
1386         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
1387         expression.
1388
1389 2006-05-11  Richard Guenther  <rguenther@suse.de>
1390
1391         PR middle-end/27529
1392         * fold-const.c (fold_unary): Handle intermediate conversion
1393         to a pointer type like intermediate conversion to an integer
1394         type in folding of (T1)(T2)var to var.
1395         Match the code to the comment in the final conversion for
1396         (T1)(T2)var to (T1)var regarding to type precision.  Rather
1397         than disallow T1 being of pointer type, assert that both T1
1398         and var are of pointer type or not.  Make sure not to fall
1399         over the frontends lazyness wrt array to pointer decay though.
1400
1401 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
1402
1403         * arm.c (arm_struct_value_rtx): Delete.
1404         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
1405         (arm_init_cumulative_args): Always initialize nregs to zero.
1406
1407 2006-05-10  Richard Guenther  <rguenther@suse.de>
1408
1409         PR tree-optimization/27532
1410         * tree-object-size.c (plus_expr_object_size): Fix typo.
1411
1412 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
1413
1414         PR target/24949
1415         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
1416         ashrdi_const, ashrdi3): Use a scratch register.
1417
1418 2006-05-10  Richard Guenther  <rguenther@suse.de>
1419
1420         PR tree-optimization/27302
1421         * fold-const.c (operand_equal_p): For two comparisons,
1422         try comparison of one comparison code swapped if that yields
1423         the same code.
1424
1425 2006-05-10  Ben Elliston  <bje@au.ibm.com>
1426
1427         * tree-pretty-print.c (pretty_print_string): No need to handle
1428         '\0' as a special character.
1429
1430         * tree.h: Include "hashtab.h".
1431         (iterative_hash_expr): Use hashval_t in its prototype.
1432         * Makefile.in (TREE_H): Add $(HASHTAB_H).
1433
1434 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
1435
1436         PR bootstrap/26872
1437         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
1438         (hppa*64*-*-hpux11*): Ditto.
1439         (hppa[12]*-*-hpux11*): Ditto.
1440
1441 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
1442
1443         PR target/26545
1444         * config/rs6000/aix41.h (TARGET_64BIT): Define.
1445
1446 2006-05-09  Michael Matz  <matz@suse.de>
1447
1448         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
1449         host_extra_gcc_objs and host_xmake_file.
1450         (<*-*-linux*>): Don't overwrite host_xmake_file.
1451         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
1452         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
1453         (host_detect_local_cpu): Declare.
1454         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
1455         * config/i386/i386.c (override_options): Handle -mtune=native
1456         as -mtune=generic.
1457         * config/i386/x-i386: New file.
1458         * config/i386/driver-i386.c: New file.
1459         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
1460         cpu-type "native".
1461
1462 2006-05-09  Dirk Mueller  <dmueller@suse.de>
1463         Richard Guenther  <rguenther@suse.de>
1464
1465         PR middle-end/27498
1466         * fold-const.c (fold_read_from_constant_string): Relax check
1467         for matching types to matching modes.
1468
1469 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
1470
1471         PR rtl-optimization/27335
1472         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
1473         loops.
1474
1475 2006-05-08  Chao-ying Fu  <fu@mips.com>
1476             Richard Sandiford  <richard@codesourcery.com>
1477
1478         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
1479         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
1480         * config/mips/mips.md (UNSPEC_SCC): New constant.
1481         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
1482         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
1483         (mips_emit_compare): Use it.
1484         (mips_expand_vcondv2sf): New function.
1485
1486 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
1487
1488         Fix PR tree-optimization/27093
1489         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
1490         renaming when they become not-used_alone.
1491
1492 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1493
1494         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
1495         relocation and relocation stubs.
1496
1497 2006-05-08  Eric Christopher  <echristo@apple.com>
1498
1499         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
1500         section for ppc.
1501
1502 2006-05-08  Jan Hubicka  <jh@suse.cz>
1503
1504         PR middle-end/24561
1505         * cgraphunit.c (decide_is_function_needed): When not optimizing even
1506         unused static functions are needed.
1507
1508 2006-05-08  Roger Sayle  <roger@eyesopen.com>
1509
1510         PR target/27158
1511         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
1512         of a reg_equiv_constant if the result is a legitimate constant.
1513
1514 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
1515
1516         PR target/27277
1517         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
1518         standard 80387 constants, raise the cost to prevent
1519         compress_float_constant() to generate load from memory.
1520
1521 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
1522
1523         * config/arm/constraints.md (c): Fix a typo.
1524
1525         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
1526         typos.
1527
1528 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
1529
1530         PR target/24879
1531         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
1532         inline function.
1533         (_mm_mwait): Likewise.
1534
1535         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
1536         "mwait".
1537         (sse3_monitor): Make it 32bit only.
1538         (sse3_monitor64): New. 64bit monitor.
1539
1540 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1541
1542         PR target/27421
1543         * config/i386/i386.c (classify_argument): Skip fields with invalid
1544         types.
1545
1546 2006-05-07  Richard Guenther  <rguenther@suse.de>
1547
1548         PR tree-optimization/27409
1549         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1550         Do not try to find zero-sized subvars.
1551
1552 2006-05-07  Richard Guenther  <rguenther@suse.de>
1553
1554         PR tree-optimization/27136
1555         * tree-ssa-loop-niter.c (get_val_for): Correct function
1556         comment, assert requirements.
1557         (loop_niter_by_eval): Stop processing if the iterated
1558         value did not simplify.
1559
1560 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
1561
1562         * opts.c (flag_see): remove its setting at -O3.
1563
1564 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
1565
1566         * genpeep.c (main): Make insn-peep.c depend on flags.h.
1567         * arm/constraints.md: New file.
1568         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
1569         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
1570         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
1571         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
1572         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
1573         (EXTRA_MEMORY_CONSTRAINT): Likewise.
1574         * arm.md: Include constraints.md.
1575         (thumb_movsi_insn): Use satisfies_constraint_J.
1576         (movhi, movqi): Use satisfies_constraint_I.
1577
1578 2006-04-29 Anatoly Sokolov <aesok@post.ru>
1579
1580         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
1581         for atmeg a645 device.
1582
1583 2006-05-06   Richard Guenther  <rguenther@suse.de>
1584
1585         PR tree-optimization/27151
1586         * tree-vect-transform.c (vectorizable_condition): Punt on
1587         values that have a different type than the condition.
1588
1589 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
1590
1591         PR/21391
1592         * c-parser.c (c_parser_cast_expression): Only insert casts into
1593         hash table if pointer.
1594         * function.c (used_types_insert_helper): Rename from
1595         used_types_insert.
1596         (used_types_insert): Call used_types_insert_helper.
1597         * function.h (used_types_insert): Accept only one argument.
1598
1599 2006-05-05  David Edelsohn  <edesohn@gnu.org>
1600
1601         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
1602         scratch with output modifier.
1603
1604 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
1605
1606         PR target/26481
1607         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
1608         with output modifier.
1609
1610 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
1611
1612         PR target/26765
1613         * config/mips/mips.c (mips_symbolic_address_p): Return true
1614         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
1615         SYMBOL_GOTTPREL, and SYMBOL_TLS.
1616
1617 2006-05-04  Richard Guenther  <rguenther@suse.de>
1618
1619         PR tree-optimization/14287
1620         PR tree-optimization/14844
1621         PR tree-optimization/19792
1622         PR tree-optimization/21608
1623         PR tree-optimization/27090
1624         * tree-ssa-pre.c (try_combine_conversion): New function.
1625         (compute_avail): After constructing the value-handle
1626         expression, use try_combine_conversion to combine NOP_EXPRs
1627         with previous value-handle expressions and use the result if it
1628         is available.
1629
1630 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
1631
1632         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
1633
1634 2006-05-04  Jan Hubicka  <jh@suse.cz>
1635
1636         PR middle-end/25962
1637         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
1638
1639 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
1640
1641         * config/bfin/predicates.md (const01_rtx): Tell generator programs
1642         that this only matches CONST_INTs.  All users changed to VOIDmode
1643         operands.
1644
1645         * config/bfin/bfin.c: Include "optabs.h".
1646         (bfin_rtx_costs): Some costs for vector operations, to allow combine
1647         to do more work.
1648         (enum bfin_builtins): Add a number of fractional and vector builtins.
1649         (bfin_init_builtins): Likewise.
1650         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
1651         (safe_vector_operand, bfin_expand_binop_builtin,
1652         bfin_expand_unop_builtin): New functions.
1653         (bfin_expand_builtin): Handle the new builtins.
1654         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1655         __ADSPBLACKFIN__.
1656
1657 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
1658
1659         * see.c: New file.
1660         * Makefile.in (OBJS-common): Add see.o.
1661         (see.o): Add dependencies.
1662         * common.opt (fsee): New flag for the see optimization was added.
1663         * opts.c (flag_see): Initialized.
1664         * passes.c (init_optimization_passes, pass_see): New pass.
1665         * rtl.h (see_main): Declaration as extern.
1666         * timevar.def (TV_SEE): New.
1667         * tree-pass.h (pass_see): Declaration as extern.
1668         * invoke.texi (-fsee): Document.
1669         * recog.c (validate_simplify_insn): New function.
1670         * recog.h (validate_simplify_insn): Declaration as extern.
1671         * df-problems.c (df_chain_dump): Check for NULL.
1672
1673 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
1674             Daniel Berlin  <dberlin@dberlin.org>
1675
1676         * cfgrtl.c (insert_insn_bb_end_new): New function.
1677         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
1678
1679 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
1680
1681         * df.h (struct web_entry): Moved from web.c.
1682         (union_defs): Declaration as extern.
1683         (unionfind_root): Likewise.
1684         (unionfind_union): Likewise.
1685         * web.c (struct web_entry): Moved to df.h.
1686         (unionfind_root): Remove static declaration.
1687         (unionfind_union): Likewise.
1688         (union_defs): Likewise and generalize to use callback function.
1689         (web_main): Update arguments for union_defs function call.
1690
1691 2006-05-04  Richard Guenther  <rguenther@suse.de>
1692
1693         PR tree-optimization/26447
1694         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
1695         produce SSA_NAME copies before the store stmt to avoid
1696         breaking exception handling.
1697
1698 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
1699
1700         PR middle-end/27388
1701         * gimplify.c (omp_is_private): If var is shared in some outer context,
1702         return false instead of true.  Stop searching on parallel context
1703         boundary.
1704
1705 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
1706
1707         PR java/8260
1708         * coverage.c: Use get_gcov_unsigned_t() instead of
1709         unsigned_type_node all over.
1710
1711 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
1712
1713         PR tree-optimization/27381
1714         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
1715         maintain the same immediate_use links.
1716         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
1717         node rather than segfaulting.
1718
1719 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
1720
1721         PR fortran/27395
1722         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
1723         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
1724         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
1725
1726 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
1727
1728         Fix PR tree-optimization/26626
1729         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
1730         always.
1731         * tree-ssa-operands.c (access_can_touch_variable): Allow
1732         typecasting through union pointers.
1733
1734 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
1735
1736         PR c++/26943
1737         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
1738         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
1739         to find if var will be a global variable even in the nested context.
1740         (omp_copy_decl): Only check for global variable at the end, it might
1741         be overridden in outer contexts.
1742         (scan_sharing_clauses): For global variables don't create a field.
1743         (lower_rec_input_clauses): Do nothing for global shared variables.
1744         Emit a barrier at the end of ILIST if there were any decls in both
1745         firstprivate and lastprivate clauses.
1746         (lower_send_clauses): Do nothing for global variables except for
1747         COPYIN.
1748
1749 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
1750
1751         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
1752         of the correct signedness is returned.
1753
1754 2006-05-02  Jeff Law  <law@redhat.com>
1755
1756         PR tree-optimization/27364
1757         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
1758         multiply expressions.
1759
1760 2006-05-02  Tom Tromey  <tromey@redhat.com>
1761
1762         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
1763
1764 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
1765
1766         PR target/27387
1767         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
1768         -mthumb -fPIC are used.
1769
1770 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
1771             Joshua Kinard  <kumba@gentoo.org>
1772
1773         PR target/25871
1774         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
1775         with 64-bit pointers.
1776
1777 2006-05-02  Paul Brook  <paul@codesourcery.com>
1778
1779         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
1780         and pool overlap.
1781         (create_fix_barrier): Check that a suitable barrier location is
1782         found.
1783         (arm_reorg): Include ftmp->address in allowable range of addresses.
1784
1785 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
1786
1787         PR ada/27366
1788         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
1789         on Cygwin.
1790
1791 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
1792
1793         PR middle-end/27337
1794         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
1795         around RESULT_DECL for result passed by reference.
1796         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
1797         * omp-low.c (use_pointer_for_field): Don't look at
1798         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
1799         (scan_omp_1): Call remap_decl on RESULT_DECLs.
1800         (lower_rec_input_clauses): Don't allocate VLA memory for the second
1801         time or var for passing by reference for
1802         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
1803         TREE_ADDRESSABLE variables when passing by reference.
1804
1805         * omp-low.c (dump_omp_region): Fix output formatting.
1806
1807         PR middle-end/27328
1808         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
1809         (expand_omp_parallel): Likewise.
1810         * tree-cfg.c (move_sese_region_to_fn): Likewise.
1811
1812         PR middle-end/27325
1813         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
1814         on statement list containing also constructors and destructors.
1815         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
1816
1817         PR middle-end/27310
1818         * except.c (duplicate_eh_regions): Fix clearing of
1819         cfun->eh->region_array entries.
1820
1821 2006-05-01  DJ Delorie  <dj@redhat.com>
1822
1823         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
1824         build!=host.
1825         (gcc_cv_objdump): Likewise.
1826         * configure: Regenerated.
1827
1828 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
1829
1830         PR target/27374
1831         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
1832         templates for case 3 and 4.
1833
1834 2006-05-01  DJ Delorie  <dj@redhat.com>
1835
1836         * vec.c: Include bconfig.h when appropriate.
1837         * Makefile.in (build/vec.o): Adjust dependencies.
1838         * mkconfig.sh: Make sure config.h isn't used for build machine
1839         compiles.
1840
1841 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
1842
1843         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
1844         variables.
1845         (mark_phi_for_rewrite): New function.
1846         (insert_phi_nodes_for, mark_use_interesting): Call
1847         mark_phi_for_rewrite.
1848         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
1849         (update_ssa): Initialize and free phis_to_rewrite.
1850
1851 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
1852
1853         PR rtl-optimization/27291
1854         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
1855         folded to a constant.
1856
1857 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
1858
1859         PR tree-optimization/27283
1860         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
1861         not whole # of iteration descriptions.
1862         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
1863         uses abnormal ssa name.
1864         (niter_for_single_dom_exit): Ditto.
1865         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
1866         return just the number of iterations.
1867
1868 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
1869
1870         PR tree-optimization/27144
1871         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
1872         (record_estimate): Only record constant upper bound.
1873         (infer_loop_bounds_from_undefined): Call
1874         compute_estimated_nb_iterations just once.
1875         (proved_non_wrapping_p): Renamed to ...
1876         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
1877         (convert_step_widening, scev_probably_wraps_p): Call
1878         n_of_executions_at_most instead of proved_non_wrapping_p.
1879         (substitute_in_loop_info): Do not replace values in bounds.
1880         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
1881         comments.
1882
1883 2006-05-01  Richard Henderson  <rth@redhat.com>
1884
1885         PR c/27358
1886         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
1887         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
1888         CPP_PRAGMA.
1889
1890 2006-05-01  Roger Sayle  <roger@eyesopen.com>
1891
1892         * c-typeck.c (parser_build_binary_op): Don't call the function
1893         unsigned_conversion_warning to spot operand/result type overflow.
1894         (build_binary_op): Instead, call convert_and_check instead of
1895         convert to report the problem when the operands are promoted.
1896         * c-common.c (unsigned_conversion_warning): Make static.
1897         * c-common.h (unsigned_conversion_warning): Delete prototype.
1898
1899 2006-05-01  Richard Guenther  <rguenther@suse.de>
1900
1901         PR tree-optimization/26726
1902         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
1903         problem ...
1904         (find_interesting_uses_address): ... we work around here
1905         by folding INDIRECT_REFs in the substituted base.
1906
1907 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
1908
1909         * omp-low.c (dump_omp_region): Add newlines.
1910
1911 2006-04-30  Roger Sayle  <roger@eyesopen.com>
1912
1913         * common.opt (Woverflow): New command line option.
1914         * c-common.c (constant_expression_warning): Check warn_overflow.
1915         (overflow_waring): Pass OPT_Woverflow to warning.
1916         (unsigned_conversion_warning): Likewise.
1917         (convert_and_check): Likewise.
1918         * doc/invoke.texi: Document new command line option.
1919
1920 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
1921
1922         * config/rs6000/rs6000.c (rs6000_override_options): Enable
1923         TARGET_NO_FP_IN_TOC for section anchors.
1924         (optimization_options): Enable section anchors for all
1925         non-"Objective" languages.
1926
1927 2006-04-28  Eric Christopher  <echristo@apple.com>
1928
1929         * config/darwin-c.c (darwin_ms_struct): Move this
1930         (darwin_set_default_type_attributes): and this...
1931         * config/darwin.c: ... here.
1932         * config/darwin.h (darwin_ms_struct): Declare.
1933
1934 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
1935
1936         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
1937
1938 2006-04-28  Roger Sayle  <roger@eyesopen.com>
1939
1940         PR c/25309
1941         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
1942         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
1943         an unsigned HOST_WIDE_INT.
1944         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
1945         array index.
1946         (really_start_incremental_init): No need to call convert because
1947         bitsize_zero_node is already of type bitsizetype.
1948         (push_init_level): Extract the value of constructor_index as an
1949         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
1950         (process_init_element): Likewise.
1951
1952 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
1953
1954         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
1955         value before passing to make_relative_prefix.
1956
1957 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
1958
1959         PR middle-end/27260
1960         * builtins.c (expand_builtin_memset): Expand val in original mode.
1961
1962 2006-04-27  Eric Christopher  <echristo@apple.com>
1963
1964         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
1965         with #ifndef/#endif.
1966         * config/darwin-c.c (darwin_ms_struct): New.
1967         (darwin_pragma_ms_struct): Ditto.
1968         (darwin_set_default_type_attributes): Ditto.
1969         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
1970         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
1971         Register ms_struct pragma.
1972         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
1973         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
1974         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
1975         darwin_set_default_type_attributes if TARGET_MACHO.
1976
1977 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
1978
1979         PR tree-optimization/26854
1980         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
1981         * doc/tree-ssa.texi: Update immuse iterator documentation.
1982         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
1983         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
1984         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
1985         first_safe_imm_use, next_safe_imm_use): Remove.
1986         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
1987         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
1988         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
1989         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
1990         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
1991         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
1992         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
1993         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
1994         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
1995         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
1996         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
1997         (perfect_nestify): Use new iterator.
1998         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
1999         iterator.
2000         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
2001         (next_imm_name): New field in struct immediate_use_iterator_d.
2002         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
2003         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
2004         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
2005         * tree-cfg.c (replace_uses_by): Use new iterator.
2006         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
2007         * tree-ssa-operands.c (correct_use_link): Remove.
2008         (finalize_ssa_use_ops): No longer call correct_use_link.
2009
2010 2006-04-27  Stuart Hastings  <stuart@apple.com>
2011
2012         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
2013         * config/t-darwin (crt3.o): Use it.
2014         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
2015         'pmode', use Pmode instead of SImode for SYMBOL_REF.
2016         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
2017         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
2018         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
2019         support.
2020
2021 2006-04-27  Roger Sayle  <roger@eyesopen.com>
2022
2023         * expmed.c (store_fixed_bit_field): If we're not optimizing for
2024         size, force the intermediate into a new pseudo rather instead of
2025         performing both a bitwise AND and a bitwise IOR in memory.
2026
2027 2006-04-27  Richard Guenther  <rguenther@suse.de>
2028
2029         PR rtl-optimization/26685
2030         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
2031         this one "max-flow-memory-locations".
2032
2033 2006-04-27  Richard Guenther  <rguenther@suse.de>
2034
2035         PR tree-optimization/25148
2036         * tree-vrp.c (compare_values): Remove code dealing with
2037         comparisons against type min/max value.  Honour overflow
2038         and negative constants in code dealing with comparisons
2039         of plus and minus expressions.
2040         (value_inside_range): Use fold_binary with LE_EXPR and
2041         GE_EXPR rather than compare_values.
2042
2043 2006-04-27  Dirk Mueller  <dmueller@suse.de>
2044
2045         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
2046         prototype for SSE.
2047
2048 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
2049
2050         * basic-block.h (safe_insert_insn_on_edge): Removed.
2051         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
2052
2053 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
2054             Paolo Bonzini  <bonzini@gnu.org>
2055
2056         PR middle-end/27282
2057         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
2058         (simplify_and_const_int): Same.
2059
2060 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
2061
2062         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
2063
2064 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
2065
2066         PR c/26171
2067         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
2068         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
2069         cgraph_global_info_ready.
2070
2071         PR middle-end/26913
2072         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
2073
2074         PR c/25996
2075         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
2076         either decl or init is error_mark_node.
2077
2078         PR middle-end/25989
2079         * tree-flow.h (struct omp_region): Add sched_kind.
2080         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
2081         instead of extracting omp for data.
2082         (expand_omp_for): Save extracted sched_kind.
2083
2084 2006-04-25  Roger Sayle  <roger@eyesopen.com>
2085
2086         * expmed.c (store_bit_field): Also check whether the bitsize is
2087         valid for the machine's "insv" instruction before moving the
2088         target into a pseudo for use with the insv.
2089         * config/i386/predicates.md (const8_operand): New predicate.
2090         * config/i386/i386.md (extv, extzv, insv): Use the new
2091         const8_operand predicate where appropriate.
2092
2093 2006-04-25  DJ Delorie  <dj@redhat.com>
2094
2095         * doc/install.texi (Specific): Clarify that this is not a list of
2096         supported hosts or targets.
2097
2098 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
2099
2100         PR rtl-optimization/26725
2101         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
2102         block's BB_DIRTY flag.
2103
2104 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
2105
2106         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
2107         are no branches.
2108
2109         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
2110         to print an integer.
2111
2112 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
2113
2114         * varasm.c (align_variable): New function.
2115         (get_block_for_decl): Apply align_variable to DECL before
2116         calculating section information.
2117         (assemble_variable): Split out alignment computation.
2118
2119 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
2120
2121         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
2122         machines.
2123
2124 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
2125
2126         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
2127         MODE_PARTIAL_INT mode.
2128         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
2129         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
2130         for CONST_INTs.
2131         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
2132         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
2133         V2PDImode.
2134         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
2135         New predicates.
2136         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
2137         New constants.
2138         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
2139         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
2140         MACFLAG_IH): Likewise.
2141         (movstricthi_1): Renamed from "*movstricthi".
2142         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
2143         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
2144         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
2145         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
2146         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
2147         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
2148         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
2149         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
2150         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
2151         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
2152         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
2153         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
2154         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
2155         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
2156         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
2157
2158         * doc/rtl.texi (ss_ashift): Improve wording.
2159
2160 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
2161
2162         * dwarf2out.c (verify_marks_clear): New.
2163         (prune_unused_types): Call verify_marks_clear initially, not
2164         prune_unmark_dies.
2165
2166 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2167
2168         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
2169         * doc/rtl.texi: Document them.
2170         * simplify-rtx.c (simplify_unary_operation,
2171         simplify_binary_operation_1): Don't abort when we see them.
2172
2173 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
2174
2175         Revert:
2176         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
2177         * configure.ac: Completely disregard languages that are not
2178         enabled.
2179         * configure: Regenerated.
2180
2181 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
2182         Richard Guenther  <rguenther@suse.de>
2183
2184         PR tree-optimization/27236
2185         * tree-inline.c (copy_body_r): Make sure to copy
2186         TREE_THIS_VOLATILE flag.
2187
2188 2006-04-24  Richard Guenther  <rguenther@suse.de>
2189
2190         PR middle-end/26869
2191         * tree-complex.c (update_parameter_components): Don't handle
2192         unused parameters which have no default def.
2193
2194 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
2195         Richard Guenther  <rguenther@suse.de>
2196
2197         PR tree-optimization/27218
2198         * tree-inline.c (expand_call_inline): Strip useless type
2199         conversions for the return slot address.
2200
2201 2006-04-24  Richard Guenther  <rguenther@suse.de>
2202
2203         * cfgloop.h (struct loops): Remove unused field array.  Reorder
2204         state after num.
2205         (LOOP_PREFETCH): Remove.
2206
2207 2006-04-24  Richard Guenther  <rguenther@suse.de>
2208
2209         PR tree-optimization/22525
2210         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
2211         variable, adjust types of generated expressions.
2212
2213 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
2214
2215         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
2216         (tree-vect-patterns.o): Likewise.
2217         (jump.o): Likewise.
2218         (cselib.o): Likewise.
2219         (loop-doloop.o): Likewise.
2220         (regclass.o): Likewise.
2221         (reload1.o): Likewise.
2222         (explow.o): Replace target.h with $(TARGET_H).
2223         (ipa-prop.o): Likewise.
2224         (ipa-cp.o): Likewise.
2225         (ipa-inline.o): Likewise.
2226         (reorg.o): Likewise.
2227         (reg-stack.o): Likewise.
2228
2229 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2230
2231         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
2232
2233 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
2234
2235         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
2236
2237         * configure.ac: Completely disregard languages that are not
2238         enabled.
2239         * configure: Regenerated.
2240
2241         PR c++/26534
2242         * c-common.h (c_build_bitfield_integer_type): Declare.
2243         * c-decl.c (c_build_bitfield_integer_type): Move to ...
2244         * c-common.c (c_build_bitfield_integer_type): ... here.
2245
2246 2006-04-23  Roger Sayle  <roger@eyesopen.com>
2247
2248         PR target/21283
2249         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
2250         a SImode SUBREG of a floating point register after no_new_pseudos.
2251
2252 2006-04-23  Roger Sayle  <roger@eyesopen.com>
2253
2254         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
2255         identify potentially eliminable registers to additionally catch
2256         VIRTUAL_INCOMING_ARGS_REGNUM.
2257         (addsi3): Update the conditions on when to use addsi_small_int.
2258
2259 2006-04-23  Roger Sayle  <roger@eyesopen.com>
2260
2261         PR target/16641
2262         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
2263         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
2264         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
2265
2266 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2267
2268         * fold-const.c (range_predecessor): Use operand_equal_p
2269         as the predicate for equality.
2270         (range_successor): Likewise.
2271
2272 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
2273
2274         Revert:
2275         * config/soft-fp/op-common.h: Fix a typo.
2276
2277 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
2278
2279         PR libmudflap/26864
2280         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
2281         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
2282
2283 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
2284
2285         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
2286         Fix comment typos.
2287         * doc/tm.texi: Fix a typo.
2288
2289 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
2290
2291         * dwarf2out.c (struct die_struct): Document that die_sib makes
2292         a circular linked list.
2293         (FOR_EACH_CHILD): New.
2294         (reverse_die_lists): Delete.
2295         (reverse_all_dies): Delete.
2296         (add_dwarf_attr): Correct documentation.
2297         (remove_child_with_prev): New.
2298         (remove_child_TAG): Update for change to die_struct, use
2299         remove_child_with_prev.
2300         (add_child_die): Update for change to die_struct.
2301         (splice_child_die): Use remove_child_with_prev and add_child_die.
2302         (print_die): Use FOR_EACH_CHILD.
2303         (die_checksum): Likewise.
2304         (assign_symbol_names): Likewise.
2305         (output_location_lists): Likewise.
2306         (build_abbrev_table): Likewise.
2307         (calc_die_sizes): Likewise.
2308         (mark_dies): Likewise.
2309         (unmark_dies): Likewise.
2310         (unmark_all_dies): Likewise.
2311         (output_die): Likewise.
2312         (prune_unused_types_mark): Likewise.
2313         (prune_unused_types_walk): Likewise.
2314         (same_die_p): Update for change to die_struct.
2315         (break_out_includes): Likewise.
2316         (prune_unused_types_prune): Likewise.
2317         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
2318         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
2319         it's already clear.
2320         (dwarf2out_finish): Don't call reverse_all_dies.
2321
2322 2006-04-21  Eric Christopher  <echristo@apple.com>
2323
2324         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
2325         in comments and function names.
2326
2327 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2328
2329         PR c/25875
2330         * c-typeck.c (digest_init): Robustify.
2331
2332         * c-typeck.c (pop_init_level): Simplify.
2333
2334 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
2335
2336         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
2337
2338 2006-04-21  Paul Brook  <paul@codesourcery.com>
2339
2340         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
2341         hardware floating point.
2342
2343 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
2344
2345         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
2346         NON_FLOAT_REGS.
2347
2348 2006-04-21  Nick Clifton  <nickc@redhat.com>
2349
2350         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
2351         OPT_EXTRA_PARTS.
2352
2353 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
2354
2355         PR target/27230
2356         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
2357         C++ lang type in traceback table for Objective-C++.
2358
2359         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
2360
2361 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
2362
2363         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
2364
2365 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2366
2367         PR mudflap/26789
2368         * tree-mudflap.c (mudflap_finish_file): Skip function when there
2369         were errors.  Remove check for erroneous objects.
2370
2371 2006-04-20  Jeff Law  <law@redhat.com>
2372
2373         PR tree-optimization/26854
2374         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
2375         checking for zero or one use.
2376         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
2377         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
2378         * tree-ssa-reassoc.c (negate_value): Similarly.
2379         (reassociate_bb): Similarly.
2380
2381 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
2382
2383         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
2384         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
2385         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
2386
2387 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
2388
2389         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
2390         fp regs if the last fp arg doesn't fit in regs.
2391
2392 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2393
2394         PR target/27182
2395         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
2396         that the last insn has the REG_INC note.
2397
2398 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
2399             Nathan Sidwell  <nathan@codesourcery.com>
2400
2401         PR c/26774
2402         * stor-layout.c (update_alignment_for_field): Do not align
2403         ERROR_MARK nodes.
2404         (place_union_field): Place union field at the start of the union.
2405         (place_field): Move ERROR_MARK check later, and use the current
2406         allocation position to maintain monotonicity.
2407
2408 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
2409
2410         * dominance.c: Include timevar.h.
2411         (calculate_dominance_info): Use TV_DOMINANCE.
2412         * timevar.def (TV_DOMINANCE): New timevar.
2413         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
2414
2415 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2416
2417         PR rtl-optimization/14261
2418         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
2419         move would be an INSV insn.
2420         (noce_process_if_block): Don't optimize if the destination is a
2421         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
2422
2423 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2424
2425         * config/s390/s390.md: Add comments with the instructions emitted
2426         by an insn pattern if macros are used.
2427
2428 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
2429
2430         PR rtl-optimization/26026
2431         * fold-const.c (fold_binary): Optimize div and mod where the divisor
2432         is a known power of two shifted left a variable amount.
2433
2434 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
2435
2436         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
2437         to hash table twice when the debug_str section has SECTION_MERGE.
2438
2439 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
2440
2441         * config/soft-fp: New directory.  From glibc.
2442         * config/soft-fp/t-softfp: New.
2443         * config/soft-fp/README: New.
2444         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
2445         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
2446         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
2447         (LIBGCC_DEPS): Add $(SFP_MACHINE).
2448         * config.gcc: Use rs6000/t-fprules-fpbit or
2449         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
2450         rs6000/t-fprules.
2451         * config/rs6000/sfp-machine.h: New.  Based on glibc.
2452         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
2453         New.
2454         * config/rs6000/t-fprules: Remove fp-bit rules.
2455         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
2456         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
2457         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
2458         (softfp_wrap_start, softfp_wrap_end): New.
2459
2460 2006-04-18  DJ Delorie  <dj@redhat.com>
2461
2462         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
2463
2464 2006-04-18  Devang Patel  <dpatel@apple.com>
2465
2466         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
2467
2468 2006-04-18  Nick Clifton  <nickc@redhat.com>
2469
2470         * config/sh/t-symbian: Add rule to build sh-c.o
2471         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
2472         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
2473         (sh_symbian_encode_section_info): Likewise.
2474
2475 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2476
2477         * builtins.c (expand_builtin_strcmp): Cover label definition of
2478         do_libcall with HAVE_cmpstrnsi.
2479
2480 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
2481
2482         * function.c (temp_slots_at_level, max_slot_level): Use VEC
2483         instead of VARRAY.
2484         * function.h (temp_slot_p): New.
2485         (function): Change the type of x_used_temp_slots to
2486         VEC(temp_slot_p,gc) *.
2487
2488 2006-04-18  Nick Clifton  <nickc@redhat.com>
2489
2490         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
2491         flag_strength_reduce.
2492
2493         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
2494
2495 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
2496
2497         PR target/27117
2498
2499         Partial revert of revision 112637
2500         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
2501                     Dale Johannesen  <dalej@apple.com>
2502
2503         PR target/19653
2504         * regclass.c (struct reg_pref): Update documentation.
2505         (regclass): Set prefclass to NO_REGS if memory is the best option.
2506         (record_reg_classes): Cope with a prefclass set to NO_REGS.
2507
2508 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
2509
2510         PR tree-optimization/26821
2511         * tree-ssa-math-opts.c (get_constant_one): New.
2512         (insert_reciprocals): Use it.
2513
2514 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
2515
2516         * dwarf2out.c (free_AT): Delete.
2517         (remove_AT): Update string ref counts.
2518         (remove_child_TAG): Don't call free_die.
2519         (free_die): Delete.
2520         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
2521         or DW_TAG_GNU_EINCL.
2522         (prune_unused_types_walk_attribs): Reset string refcounts.
2523         (prune_unused_types_update_strings): New.
2524         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
2525         call free_die.  Do call prune_unused_types_update_strings.
2526         (prune_unused_types): Empty debug_str_hash.
2527
2528 2006-04-17  Roger Sayle  <roger@eyesopen.com>
2529
2530         * expr.c (expand_assignment): Optimize away no-op moves where the
2531         source and destination are equal and have no side-effects.
2532
2533 2006-04-17  Richard Guenther  <rguenther@suse.de>
2534
2535         PR target/26826
2536         * reload.c (push_reload): Guard calls to get_secondary_mem
2537         for memory subregs.
2538
2539 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
2540
2541         * alias.c (reg_base_value, old_reg_base_value): Change the
2542         type to VEC(rtx,gc) *.
2543         (REG_BASE_VALUE, find_base_value, record_set,
2544         init_alias_analysis): Use VEC instead of VARRAY.
2545
2546         * alias.c (alias_sets): Change the type to
2547         VEC(alias_set_entry,gc) *.
2548         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
2549         VEC instead of VARRAY.
2550         (last_alias_set): Remove.
2551
2552         * cgraph.h (cgraph_edge_p): New.
2553         Update the prototype of cgraph_function_versioning.
2554         * cgraphunit.c (cgraph_copy_node_for_versioning,
2555         cgraph_function_versioning): Use VEC instead of VARRAY.
2556         * ipa-cp.c (ipcp_insert_stage): Likewise.
2557
2558 2006-04-16  Roger Sayle  <roger@eyesopen.com>
2559
2560         PR target/26961
2561         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
2562         "A op B" or "A op C", we may need to convert A to the type of B and C.
2563
2564 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
2565
2566         * target.h (struct gcc_target): Add mode_rep_extended.
2567         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
2568         (init_num_sign_bit_copies_in_rep): Initialize it using
2569         mode_rep_extended.
2570         (truncate_to_mode): Use it.
2571         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
2572         * targhooks.h (default_mode_rep_extended): Declare it.
2573         * targhooks.c (default_mode_rep_extended): Define it.
2574         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
2575         default_mode_rep_extended.
2576         (TARGET_INITIALIZER): Include it.
2577         * doc/tm.texi (Misc): Document it.
2578         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
2579         (mips_truncated_to_mode): New function.
2580
2581 2006-04-16  Roger Sayle  <roger@eyesopen.com>
2582
2583         PR middle-end/25474
2584         * expr.c (compress_float_constant): Copy the narrow constant into
2585         a new pseudo before extending it to its final width.
2586
2587 2006-04-16  Roger Sayle  <roger@eyesopen.com>
2588             Andrew Pinski  <pinskia@gcc.gnu.org>
2589             Dale Johannesen  <dalej@apple.com>
2590
2591         PR target/24076
2592         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
2593         special case code to implement V8HImode and V16QImode with SSE2.
2594
2595 2006-04-15  Roger Sayle  <roger@eyesopen.com>
2596
2597         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
2598         trees are constructed with a suitable tree type.
2599
2600 2006-04-15  Roger Sayle  <roger@eyesopen.com>
2601
2602         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
2603         (integer_onep): Likewise.
2604         (integer_all_onesp): Likewise.
2605         (integer_pow2p): Likewise.
2606         (integer_nonzerop): Likewise.
2607         (real_zerop): Likewise.
2608         (real_onep): Likewise.
2609         (real_twop): Likewise.
2610         (real_minus_onep): Likewise.
2611         (int_size_in_bytes): Likewise.
2612         (host_integerp): Likewise.
2613
2614 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
2615
2616         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
2617         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
2618         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
2619
2620         * tree-ssa-structalias.h (alias_info): Remove num_references.
2621
2622 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2623
2624         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
2625         (output_bvb patterns): Likewise.
2626         * pa.c (output_bb): Use 'bb' insn for long branch case.
2627         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
2628         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
2629         1.  Correct length operand for alternatives 1 and 2.
2630         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
2631         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
2632
2633 2006-04-14  Roger Sayle  <roger@eyesopen.com>
2634
2635         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
2636         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
2637         were accidentally reverted by r112959.
2638
2639 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
2640
2641         PR middle-end/26823
2642         * except.h (eh_region_outermost): New prototype.
2643         * except.c (eh_region_outermost): New function.
2644         * tree-cfg.c (find_outermost_region_in_block): Use it.
2645
2646 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
2647
2648         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
2649         of VARRAY.
2650         * reload1.c (reg_equiv_memory_loc_varray): Rename to
2651         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
2652         (init_reload, reload): Use VEC instead of VARRAY.
2653         * reload.h: Update the prototype for
2654         reg_equiv_memory_loc_varray.
2655
2656 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2657             Eric Botcazou  <ebotcazou@libertysurf.fr>
2658
2659         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
2660         register save area.
2661
2662 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
2663
2664         PR middle-end/27134
2665         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
2666         to expand fallback builtin function call.
2667
2668 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
2669
2670         PR middle-end/27095
2671         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
2672         and emit libcall here in case the builtin fails.
2673         (expand_builtin_strcmp): Always emit the libcall here on failure.
2674
2675 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
2676
2677         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
2678         * flow.c (reg_n_info): Change the type to
2679         VEC(reg_info_p,heap) *.
2680         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
2681         instead of VARRAY.
2682         * regs.h (reg_info_p): New.
2683         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
2684         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
2685         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
2686         instead of VARRAY.
2687
2688 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2689
2690         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
2691         defaulting to 100.
2692         * params.h (MAX_SCHED_READY_INSNS): New macro.
2693         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
2694         past MAX_SCHED_READY_INSNS during the first scheduling pass.
2695         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
2696         the ready list for 1 cycle during the first scheduling pass.
2697         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
2698
2699 2006-04-13  Richard Henderson  <rth@redhat.com>
2700
2701         PR libgomp/26651
2702         * gimple-low.c (lower_omp_directive): Remove dead code.
2703         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
2704         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
2705         * omp-low.c (struct omp_region): Move to tree-flow.h.
2706         (root_omp_region): Export.
2707         (omp_regions, lookup_omp_region): Remove.
2708         (determine_parallel_type): Update for struct omp_region changes.
2709         (dump_omp_region): Dump regions with block numbers.
2710         (new_omp_region): Take type and block instead of stmt; malloc
2711         instead of ggc.
2712         (free_omp_region_1, free_omp_regions): New.
2713         (expand_parallel_call): Take entry_stmt as argument; update for
2714         changes to omp_region.
2715         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
2716         (remove_exit_barriers): New.
2717         (expand_omp_parallel): Update for struct omp_region changes.
2718         (expand_omp_synch): Likewise.
2719         (expand_omp): Likewise.
2720         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
2721         (expand_omp_for_static_chunk): Likewise.
2722         (expand_omp_for): Likewise.
2723         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
2724         (expand_omp_sections): Similarly, with GOMP_sections_end.
2725         (expand_omp_single): New.
2726         (build_omp_regions_1): Update for OMP_CONTINUE.
2727         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
2728         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
2729         OMP_SECTIONS_SECTIONS.
2730         (lower_omp_single_simple): Don't emit barrier here.
2731         (lower_omp_single_copy): Likewise.
2732         (lower_omp_single): Fix bindings, and lower to straightline now.
2733         (lower_omp_master, lower_omp_ordered): Likewise.
2734         (lower_omp_critical): Likewise.
2735         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
2736         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
2737         omp edges, free it afterward.
2738         (make_omp_sections_edges): Remove.
2739         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
2740         (move_stmt_r): Handle OMP_CONTINUE.
2741         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
2742         statement pointers to basic blocks.  Add type member.
2743         (root_omp_region, new_omp_region, free_omp_regions): Declare.
2744         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
2745         * tree-inline.c (estimate_num_insns_1): Likewise.
2746         * tree-pretty-print.c (dump_generic_node): Likewise.
2747         * tree-ssa-operands.c (get_expr_operands): Likewise.
2748         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
2749         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
2750         (OMP_CONTINUE): New.
2751         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
2752         (OMP_SECTIONS_SECTIONS): Remove.
2753         (OMP_SECTION_LAST): New.
2754         (OMP_RETURN_NOWAIT): New.
2755
2756 2006-04-13  Roger Sayle  <roger@eyesopen.com>
2757
2758         * fold-const.c (native_encode_vector, native_interpret_real):
2759         Correct obvious mistakes in the previous check-in.
2760
2761 2006-04-13  Roger Sayle  <roger@eyesopen.com>
2762
2763         * fold-const.c (native_encode_expr): New function to encode
2764         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
2765         or VECTOR_CST into a specified buffer.
2766         (native_encode_int): New function.
2767         (native_encode_real): New function.
2768         (native_encode_complex): New function.
2769         (native_encode_vector): New function.
2770         (native_interpret_expr): Inverse of native_encode_expr to convert
2771         a target representation into an INTEGER_CST, REAL_CST etc...
2772         (native_interpret_int): New function.
2773         (native_interpret_real): New function.
2774         (native_interpret_complex): New function.
2775         (native_interpret_vector): New function.
2776         (fold_view_convert_expr): New function to constant fold/evaluate
2777         a VIEW_CONVERT_EXPR of a suitable constant expression.
2778         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
2779         Change call of build1 to fold_build1 when constructing a
2780         VIEW_CONVERT_EXPR.
2781
2782 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
2783             Ulrich Weigand  <uweigand@de.ibm.com>
2784
2785         PR target/27006
2786         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
2787         to be even.
2788
2789 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
2790
2791         PR target/26459
2792         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
2793         optimize to lo_sum for DFmode if !TARGET_FPRS.
2794
2795 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
2796
2797         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
2798         delete_alias_info, compute_flow_sensitive_aliasing,
2799         group_aliases): Use VEC instead of VARRAY.
2800         * tree-ssa-structalias.c (update_alias_info): Likewise.
2801         * tree-ssa-structalias.h (alias_info): Change the type of
2802         processed_ptrs to VEC(tree,heap) *.
2803
2804 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
2805
2806         PR target/27060
2807         * config/sh/lib1funcs.h: New file, broken out of:
2808         * config/sh/lib1funcs.asm.
2809         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
2810         New macros.
2811         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
2812         * config/sh/lib1funcs-Os-4-200.asm: New file.
2813         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
2814         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
2815         (EXTRA_MULTILIB_PARTS): Include it.
2816         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
2817         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
2818         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
2819         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
2820         TARGET_SH2.
2821
2822 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
2823
2824         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
2825         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
2826         tpa_compact, root_var_init, type_var_init): Use VEC instead of
2827         VARRAY.
2828         * tree-ssa-live.h: Include vecprim.h.
2829         (tree_partition_associator_d): Change the type of
2830         first_partition to VEC(int,heap) *.
2831         (tpa_first_partition): Use VEC instead of VARRAY.
2832
2833         * Makefile.in (GTFILES): Move functions.h after tree.h.
2834         * function.c (reset_block_changes, record_block_change,
2835         check_block_change, free_block_changes): Use VEC instead of
2836         VARRAY.
2837         * function.h (function): Change the type of
2838         ib_boundaries_block to VEC(tree,gc) *.
2839         * tree-inline.c (copy_cfg_body): Initialize
2840         ib_boundaries_block to NULL instead of (varray_type) 0.
2841
2842 2006-04-12  Roger Sayle  <roger@eyesopen.com>
2843
2844         * expr.c (emit_group_store): Correct operand order in call to
2845         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
2846         a SUBREG_BYTE of zero.
2847
2848 2006-04-12  Richard Guenther  <rguenther@suse.de>
2849
2850         * profile.c (compute_branch_probabilities): Remove code
2851         encapsulated in !ir_type (), which are remanents of the
2852         removed RTL profiling code.
2853         * rtl-profile.c: Remove.
2854
2855 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
2856
2857         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
2858         magic NULL_RTX comment.
2859         (function_arg): Store entire fp arg to mem if any part should go
2860         on stack.
2861         (rs6000_arg_partial_bytes): Adjust for above change.
2862
2863 2006-04-11  Roger Sayle  <roger@eyesopen.com>
2864
2865         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
2866         if it hasn't been initialized by dwarf2out_init.
2867
2868 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
2869
2870         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
2871         symbolic constants in branch patterns.
2872
2873 2006-04-11  Roger Sayle  <roger@eyesopen.com>
2874
2875         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
2876
2877 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
2878
2879         PR rtl-optimization/27073
2880         * gcse.c (try_replace_reg): Revert last change.  Continue to search
2881         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
2882         on the former.
2883
2884 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2885
2886         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
2887         aggregate types other than record and union types.
2888         (function_arg): Likewise.
2889         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
2890         small arrays.
2891         (function_value): In 64-bit mode, return objects that require it
2892         in FP registers.
2893
2894 2006-04-11  Roger Sayle  <roger@eyesopen.com>
2895
2896         * dwarf2out.c (premark_used_types): Remove problematic prototype.
2897
2898 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
2899
2900         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
2901
2902 2006-04-03  Jeff Law  <law@redhat.com>
2903
2904         PR/27087
2905         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
2906         alias information too.
2907
2908 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
2909
2910         * Makefile.in (gcc-cross): Add $(exeext) to target name.
2911
2912 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
2913
2914         PR/21391
2915         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
2916         (premark_used_types_helper): New.
2917         (premark_used_types): New.
2918         (gen_subprogram_die): Call premark_used_types.
2919         (prune_unused_types_walk): Do not prune perennial dies.
2920         * function.c (used_types_insert): New.
2921         * function.h (struct function): Add used_types_hash field.
2922         (used_types_insert): Add prototype.
2923         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
2924         * c-parser.c (c_parser_cast_expression): Save casted types in used
2925         types hash table.
2926
2927 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
2928
2929         PR target/26459
2930         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
2931         rs6000_explicit_options.float_gprs.
2932
2933 2006-04-10  Roger Sayle  <roger@eyesopen.com>
2934
2935         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
2936         from ix86_expand_vector_init_low_nonzero.  Take an additional
2937         one_var argument indicating which element is non-zero.  Support
2938         one_var != 0 for V4SFmode and V4SImode by permuting the result.
2939         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
2940         with one_var instead of ix86_expand_vector_init_low_nonzero.
2941
2942 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
2943
2944         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
2945         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
2946         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
2947         build/genextract.o): Depend on vecprim.h.
2948         * cfglayout.c, df-problems.c, function.c, genextract.c,
2949         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
2950         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
2951         vecprim.h.
2952         * vecprim.h: New.
2953
2954 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
2955
2956         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
2957         Declare VECs of this type.
2958         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
2959         (remove_children): Delete.
2960         (add_dwarf_attr): Use VEC routines.
2961         (add_AT_flag): Update for changes to add_dwarf_attr.
2962         (add_AT_int): Likewise.
2963         (add_AT_unsigned): Likewise.
2964         (add_AT_long_long): Likewise.
2965         (add_AT_vec): Likewise.
2966         (add_AT_string): Likewise.
2967         (add_AT_die_ref): Likewise.
2968         (add_AT_fde_ref): Likewise.
2969         (add_AT_loc): Likewise.
2970         (add_AT_loc_list): Likewise.
2971         (add_AT_addr): Likewise.
2972         (add_AT_lbl_id): Likewise.
2973         (add_AT_lineptr): Likewise.
2974         (add_AT_macptr): Likewise.
2975         (add_AT_offset): Likewise.
2976         (add_AT_range_list): Likewise.
2977         (get_AT): Use VEC_iterate.
2978         (remove_AT): Use VEC_ordered_remove.
2979         (free_die): Fold remove_children into here; have it use VEC_iterate.
2980         (print_die): Use VEC_iterate on attrs.
2981         (reverse_die_lists): Don't reverse attr lists.
2982         (die_checksum): Use VEC_iterate on attrs.
2983         (same_die_p): Likewise.
2984         (output_location_lists): Likewise.
2985         (build_abbrev_table): Likewise.
2986         (size_of_die): Likewise.
2987         (unmark_all_dies): Likewise.
2988         (output_abbrev_section): Likewise.
2989         (output_die): Likewise.
2990         (prune_unused_types_walk_attribs): Likewise.
2991
2992 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2993
2994         * doc/install.texi (*-*-solaris2*): Point to the configure page.
2995
2996 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
2997
2998         PR debug/27057
2999         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
3000
3001 2006-04-09  Roger Sayle  <roger@eyesopen.com>
3002
3003         * expr.c (store_constructor): Don't bother clearing target if
3004         we're about to assign a vector to it using vec_init_optab.
3005
3006 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
3007
3008         * tree-ssa-alias.c (lhs_may_store_to): New function.
3009         (recalculate_used_alone): Handle LHS of calls.
3010
3011 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3012
3013         PR target/27034
3014         PR target/26508
3015         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
3016         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
3017         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
3018         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
3019         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
3020         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
3021         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
3022         stubs.  Add ".align 8" directives before all ".dword" directives.
3023         (GTHREAD_USE_WEAK): Revise comment.
3024         (TARGET_ATTRIBUTE_WEAK): Define.
3025         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
3026         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
3027         * stublib.c: New file.
3028
3029         PR target/26743
3030         PR target/11254
3031         PR target/10274
3032         * pa.md (cbranch patterns): Revise arguments used in calls to
3033         output_cbranch, output_bb and output_bvd.  Add long branch length
3034         attributes.
3035         (fbranch patterns): Handle long branches.
3036         (jump): Revise length check.  Revise arguments for output_lbranch call.
3037         Add long branch length attributes.
3038         (decrement_and_branch_until_zero): Add long branch length attributes.
3039         (output_movb, output_parallel_addb and output_parallel_movb patterns):
3040         Likewise.  Revise arguments for output_parallel_addb and
3041         output_parallel_movb calls.
3042         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
3043         output_parallel_movb and output_parallel_addb): Update prototypes.
3044         * pa.c (output_cbranch): Revise arguments.  Correct handling of
3045         nullification in long branches.
3046         (output_lbranch): Add new argument to control extraction of delay
3047         instruction.
3048         (output_bb): Handle long branches.
3049         (output_bvb, output_dbra, output_movb, output_parallel_movb,
3050         output_parallel_addb): Likewise.
3051
3052 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
3053
3054         PR rtl-optimization/27073
3055         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
3056         not REG_EQUIVs.
3057
3058 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
3059
3060         * tree.h (tree_memory_tag): Add old_used_alone.
3061         (SMT_OLD_USED_ALONE): New macro.
3062         * tree-ssa-alias.c (recalculate_used_alone): Stop
3063         marking things for renaming unnecessarily.
3064
3065 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
3066
3067         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
3068         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
3069         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
3070         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
3071         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
3072         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
3073         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
3074         spelling convensions.
3075         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
3076         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
3077         typos.  Follow spelling conventions.
3078
3079 2006-04-07  DJ Delorie  <dj@redhat.com>
3080
3081         * config/m32c/m32c.c (m32c_function_arg): Structures are always
3082         passed on the stack.
3083         (m32c_init_cumulative_args): When a function returns a structure,
3084         always pass the pointer to that return area on the stack.
3085         (m32c_function_arg_advance): Don't increment the parameter number
3086         if we're processing the returned structure pointer.
3087         (pushm_info): Reverse order of registers.
3088
3089 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
3090
3091         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
3092         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
3093         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
3094         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
3095         build_int_cst_type.
3096         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3097         chrec_fold_multiply): Same.
3098         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
3099         force_expr_to_var_cost): Same.
3100         * tree-mudflap.c (mf_xform_derefs_1): Same.
3101         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
3102
3103 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
3104
3105         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
3106         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
3107         insn.
3108
3109 2006-04-07  Jan Hubicka  <jh@suse.cz>
3110
3111         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
3112
3113 2006-04-07  Richard Guenther  <rguenther@suse.de>
3114
3115         PR tree-optimization/26135
3116         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
3117         loads for store copy-prop.
3118         (copy_prop_visit_stmt): Likewise.
3119
3120 2006-04-05  Robert Millan  <robertmh@gnu.org>
3121
3122         * config/i386/linux.h: Add a comment to mark macros that are
3123         being overriden in config/k*bsd-gnu.h.
3124         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
3125         DYNAMIC_LINKER.
3126         * config/knetbsd-gnu.h: Ditto.
3127
3128 2006-04-06  Jan Hubicka  <jh@suse.cz>
3129
3130         PR profile/20815
3131         PR profile/26399
3132         * coverage.c (coverage_checksum_string): Reorganize loop to not read
3133         after buffer.
3134
3135 2006-04-06  Mike Stump  <mrs@apple.com>
3136
3137         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
3138         for HAVE_nonlocal_goto to be consistent.
3139         (expand_builtin_nonlocal_goto): Likewise.
3140         (expand_builtin_strcmp): Use #ifdef instead of #if
3141         for HAVE_cmpstrnsi to be consistent.
3142
3143 2006-04-05  DJ Delorie  <dj@redhat.com>
3144
3145         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
3146         vs m32c.
3147
3148 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3149
3150         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
3151         got-relative addressing for anything but SImode.
3152
3153         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
3154         even if the calling function doesn't modify them.
3155
3156 2006-04-05  Richard Guenther  <rguenther@suse.de>
3157
3158         PR tree-optimization/26919
3159         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
3160         to cgraph_estimate_size_after_inlining.
3161
3162 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
3163
3164         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
3165
3166 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
3167
3168         PR tree-optimization/26996
3169         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
3170         VECTOR_TYPE variables.
3171
3172 2006-04-05  Richard Guenther  <rguenther@suse.de>
3173
3174         PR tree-optimization/26763
3175         * fold-const.c (fold_comparison): Move folding of
3176         PTR + CST CMP PTR + CST ...
3177         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
3178
3179 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
3180
3181         * doc/install.texi (Prerequisites): Refine some wording on
3182         bootstrapping and ksh.
3183         Move the version numbers of DejaGnu here from the testing section
3184         and fix casing of names.
3185         Fix markup and clarify wording for autogen requirements.
3186         Refer to GCJ instead of just java.
3187         Refer to SVN instead of CVS.
3188         Describe diffutils as useful instead of necessary.
3189         (Downloading the source): Refer to SVN instead of CVS.
3190         Adjust a link to our web site accordingly.
3191         (Configuration): Fix casing of Bison.
3192         (Building): Refer to SVN instead of CVS.
3193         Fix a sentence on the use of Bison and remove duplicate (and
3194         incorrect) version number of Bison requirement.
3195         Remove one redundant list of packages needed for building.
3196         (Specific): Avoid reference to CVS.
3197
3198 2006-04-04  Eric Christopher  <echristo@apple.com>
3199
3200         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
3201         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
3202         (rs6000_handle_struct_attribute): New.
3203         (rs6000_ms_bitfield_layout_p): Ditto.
3204
3205 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
3206
3207         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
3208         NULL for dso parameter to atexit_common.
3209
3210 2006-04-04  Eric Christopher  <echristo@apple.com>
3211
3212         * config/i386/i386.c (machopic_output_stub): Output \t
3213         between instructions and operands.
3214
3215 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
3216
3217         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
3218         satisfies_constraint_[IL] to explicit tests on value.
3219
3220 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
3221
3222         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
3223         set_nb_iterations_in_loop): Use build_int_cst instead of
3224         build_int_cst_type.
3225         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
3226         build_int_cst instead of convert.
3227
3228 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
3229
3230         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
3231         new value 2 for incoming.
3232         * function.c (expand_function_start): Call struct_value_rtx
3233         with incoming as 2.
3234         * config/sparc/sparc.md: Comment updated_return.
3235         * config/sparc/sparc.opt: Add -mstd-struct-return option.
3236         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
3237         struct return if sparc_std_struct_return and incoming is 2.
3238         (print_operand): Do not adjust return if
3239         sparc_std_struct_return.
3240
3241 2006-04-04  Roger Sayle  <roger@eyesopen.com>
3242
3243         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
3244         convert in the middle-end.
3245         * expr.c (store_expr, store_constructor, get_inner_reference,
3246         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
3247         Likewise.
3248         * tree.c (build_range_type): Likewise.
3249
3250 2006-04-04  Tom Tromey  <tromey@redhat.com>
3251
3252         * doc/install.texi (Prerequisites): Mention jar.
3253
3254 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
3255
3256         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
3257         subsection.
3258
3259 2006-04-04  Matthias Klose  <doko@debian.org>
3260
3261         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
3262         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
3263         strings.
3264
3265 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
3266
3267         * doc/extend.texi (Function Attributes): Rewrite visibility
3268         attribute documentation.
3269         * doc/invoke.texi (C++ Dialect Options): Rewrite
3270         -fvisibility-inlines-hidden documentation to describe something
3271         entirely different, although in practise compatible.
3272         (Code Gen Options): Warn about system headers in -fvisibility=
3273         documentation.
3274
3275         * doc/extend.texi (Other Builtins): Document that
3276         __builtin_nan is a compile-time constant only when its argument
3277         is valid.
3278
3279 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
3280
3281         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
3282         trying to remove TRUNCATE check if all bits outside the new mode
3283         are identical to the sign bit.
3284
3285 2006-04-03  Jeff Law  <law@redhat.com>
3286
3287         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
3288         and operand scanning in some common cases.
3289
3290 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
3291             Dale Johannesen  <dalej@apple.com>
3292
3293         PR target/19653
3294         * regclass.c (struct reg_pref): Update documentation.
3295         (regclass): Set prefclass to NO_REGS if memory is the best option.
3296         (record_reg_classes): Cope with a prefclass set to NO_REGS.
3297         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
3298         into account.  For non-registers, equate an empty preferred
3299         reload class to a `!' in the constraint; move the if clause to
3300         do so after those that reject the insn.
3301         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
3302         return NO_REGS.
3303         (find_dummy_reload): Likewise.
3304         * doc/tm.texi (Register Classes): Document what it means
3305         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
3306         * config/i386/i386.c (ix86_preferred_reload_class): Force
3307         using SSE registers (and return NO_REGS for floating-point
3308         constants) if math is done with SSE.
3309         (ix86_preferred_output_reload_class): New.
3310         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
3311         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
3312         * config/i386/i386.md: Remove # register preferences.
3313
3314 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
3315
3316         PR bootstrap/26992
3317         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
3318         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
3319         the type of nb_iter.
3320         (instantiate_parameters_1): Convert the operands before calling
3321         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
3322         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
3323
3324 2006-04-02  Roger Sayle  <roger@eyesopen.com>
3325
3326         * builtins.c (dummy_object): Use build_int_cst instead of convert.
3327         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
3328         instead of convert.
3329         * dojump.c (do_jump): Likewise.
3330         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
3331         * gimplify.c (gimple_boolify, gimplify_init_constructor,
3332         gimplify_boolean_expr): Likewise.
3333         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3334         * varasm.c (array_size_for_constructor): Likewise.
3335         * tree-object-size.c (compute_object_offset): Likewise.
3336
3337 2006-04-02  Roger Sayle  <roger@eyesopen.com>
3338
3339         PR middle-end/26977
3340         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
3341         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
3342
3343 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
3344
3345         PR tree-optimization/26939
3346         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
3347
3348 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
3349
3350         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
3351         at_stmt.  Convert the type of operands before calling
3352         build_polynomial_chrec.
3353         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
3354         add_to_evolution_1.
3355         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
3356         (instantiate_parameters_1): Convert the type of operands before calling
3357         build_polynomial_chrec.
3358         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
3359         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
3360         reset_evolution_in_loop): Insert asserts to check the types of the
3361         operands.
3362         (chrec_type): Moved...
3363         (eq_evolutions_p): Use operand_equal_p.
3364         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
3365         the types of the operands.
3366         (chrec_type): ...here.
3367         * tree-data-ref.c (create_data_ref): Convert the operands before
3368         calling chrec_replace_initial_condition.
3369         (same_access_functions, analyze_subscript_affine_affine,
3370         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
3371         (compute_subscript_distance, analyze_ziv_subscript,
3372         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
3373         analyze_miv_subscript): Convert the operands before calling
3374         chrec_fold_minus or chrec_fold_plus.
3375
3376 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
3377
3378         * tree-data-ref.c (compute_all_dependences): Use a pointer to
3379         the dependence_relations vector.
3380         (compute_data_dependences_for_loop): Adjust call to
3381         compute_all_dependences.
3382
3383 2006-04-01  Roger Sayle  <roger@eyesopen.com>
3384             Richard Henderson  <rth@redhat.com>
3385
3386         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
3387         gimple_boolify on the condition before calling gimplify_expr.
3388
3389 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
3390
3391         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
3392         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
3393         the frame size.  Update to use the new macros.
3394         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
3395         * config/xtensa/ieee754-df.S: Likewise.
3396
3397 2006-03-31  Richard Henderson  <rth@redhat.com>
3398
3399         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
3400         (make_edges): ... here.  Control fallthru creation with a local
3401         variable.  Do not play with fake edges.
3402         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
3403         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
3404         a boolean.
3405
3406 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
3407
3408         * dwarf2.h (DW64_CIE_ID): Define.
3409         * dwarf2out.c (DWARF_CIE_ID): Define.
3410         (output_call_frame_info): Output 0xffffffff before standard 8-byte
3411         length header.  Use DWARF_CIE_ID.
3412         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
3413         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
3414
3415 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3416
3417         * config/sh/linux-atomic.asm: New file.
3418         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
3419
3420 2006-03-31  DJ Delorie  <dj@redhat.com>
3421
3422         * config/m32c/cond.md: Set condition flags properly throughout.
3423         * config/m32c/minmax.md: Likewise.
3424         * config/m32c/prologue.md: Likewise.
3425         * config/m32c/bitops.md: Likewise.
3426         * config/m32c/muldiv.md: Likewise.
3427         * config/m32c/mov.md: Likewise.
3428         * config/m32c/addsub.md: Likewise.
3429         * config/m32c/m32c.md: Likewise.
3430         * config/m32c/jump.md: Likewise.
3431         * config/m32c/shift.md: Likewise.
3432
3433         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
3434         conditionally output the pattern for this.
3435         * config/m32c/m32c.c (flags_needed_for_conditional): New.
3436         (m32c_compare_redundant): New.
3437         (m32c_output_compare): New.
3438         * config/m32c/m32c-protos.h (m32c_output_compare): New.
3439
3440         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
3441         dest, not src.  Allow other 4-byte modes.
3442
3443 2006-03-30  Denis Chertykov  <denisc@overta.ru>
3444
3445         * doc/md.texi: Refer to avr/constraints.md instead of
3446         avr/avr.h.
3447
3448 2006-03-30  Roger Sayle  <roger@eyesopen.com>
3449
3450         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
3451         signed vs. unsigned comparison failures on some hosts.
3452
3453 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
3454
3455         PR target/26459
3456         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
3457         change to FLOAT_REGS.
3458
3459         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
3460         (rs6000_override_options): Use it.
3461         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
3462         only for -mabi=spe/no-spe and -mabi=altivec.
3463
3464 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
3465
3466         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
3467         !Zdynamiclib.
3468
3469 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
3470
3471         * Makefile.in: Rename docdir to gcc_docdir.
3472
3473 2006-03-30  Roger Sayle  <roger@eyesopen.com>
3474
3475         PR target/17959
3476         * expr.c (emit_group_store): Optimize group stores into a pseudo
3477         register by using a paradoxical subreg to initialize the destination
3478         if the first or last member of the group specifies a "low part".
3479
3480 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3481
3482         PR target/26734
3483         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
3484         * target.h (struct gcc_target.speculate_insn): Change type of the
3485         second parameter to 'int'.
3486         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
3487         the second operand of the DEPS_LIST.
3488         (copy_DEPS_LIST_list): Update reference to the second operand of the
3489         DEPS_LIST.
3490         * rtl.h (alloc_DEPS_LIST): Update signature.
3491         * sched-int.h (ds_t): Change typedef to 'int'.
3492         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
3493
3494 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3495
3496         * haifa-sched.c (try_ready): Change condition to restore
3497         non-speculative pattern of the instruction.
3498         (process_insn_depend_be_in_spec): Code to keep probability of the
3499         speculative dependence non-decreasing.
3500
3501 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
3502
3503         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
3504         (single_move_for_movmem): ... this. Also change all uses.
3505         (bfin_expand_strmov): Renamed to...
3506         (bfin_expand_movmem): ... this. Also change all uses.
3507         * config/bfin/bfin.md (movstrsi): Renamed to...
3508         (movstrsi): ...this.
3509
3510 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
3511
3512         PR tree-optimization/26830
3513
3514         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
3515         (copy_prop_visit_stmt): Remove write-only variable ann.
3516         (init_copy_prop): Check variable loop depth here.  Do not simulate
3517         memory-tag and virtual operand PHIs except for store copy prop.
3518
3519 2006-03-30  Richard Guenther  <rguenther@suse.de>
3520
3521         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
3522         variants with double arguments.
3523
3524 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
3525
3526         * genpreds.c (write_tm_constrs_h): Delete variable p.
3527         * genconditions.c (write_header): Add tm-constrs.h to included
3528         headers.
3529         * genpeep.c (main): Add toplev.h to included headers.
3530         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
3531         (build/genpeep.o): Add toplev.h dependency.
3532         * config/rs6000/constraints.md: Add "W" constraint.
3533
3534 2006-03-29  Roger Sayle  <roger@eyesopen.com>
3535
3536         * stor-layout.c (mode_for_size_tree): Remove restiction on type
3537         sizes by correctly testing whether the size fits a host integer.
3538         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
3539         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
3540         SImode range for the default sizetype and bitsizetype.
3541
3542 2006-03-29  Roger Sayle  <roger@eyesopen.com>
3543
3544         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
3545         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
3546         quickly if the argument is already of the correct type.
3547         Call fold_build1 instead of build1.  Tidy up blank lines.
3548
3549 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
3550
3551         * genemit.c (main): Add tm-constrs.h to included headers.
3552         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
3553         * genpeep.c (main): Add tm-constrs.h to included headers.
3554         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
3555         (write_tm_constrs_h): this and write complete file.
3556         (write_tm_preds_h): Do not emit satisfies_constraint fns.
3557         (write_insn_preds_c): Add tm-constrs.h to included headers.
3558         (gen_constrs): New variable.
3559         (parse_option): Parse "-c".
3560         (main): Invoke write_tm_constrs_h.
3561         * genrecog.c (write_header): Add tm-constrs.h to included headers.
3562         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
3563         (object_out_file): Add tm-constrs.h dependency.
3564         (insn-emit.o): Same.
3565         (insn-output.o): Same.
3566         (insn-peep.o): Same.
3567         (insn-preds.o): Same.
3568         (insn-recog.o): Same.
3569         (tm-constsr.h): New target.
3570         (s-constrs-h): New target.
3571
3572         * config/rs6000/constraints.md: New file.
3573         * config/rs6000/rs6000.c: Include tm-constrs.h.
3574         (num_insn_constant_wide): Convert to satisfies_constraint.
3575         (rs6000_rtx_costs): Convert to satisfies_constraint.
3576         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
3577         (CONST_OK_FOR_LETTER_P): Delete.
3578         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3579         (EXTRA_CONSTRAINT): Delete.
3580         (EXTRA_MEMORY_CONSTRAINT): Delete.
3581         (EXTRA_ADDRESS_CONSTRAINT): Delete.
3582         * config/rs6000/predicates.md: Convert to satisfies_constraint.
3583         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
3584         satisfies_constraint.
3585
3586         * config/i386/i386.c: Include tm-constrs.h.
3587
3588 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
3589
3590         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
3591         * tree-data-ref.c (find_data_references_in_loop,
3592         compute_data_dependences_for_loop): Use pointers to VEC.
3593         (analyze_all_data_dependences): Adjust calls.
3594         * tree-data-ref.h (find_data_references_in_loop,
3595         compute_data_dependences_for_loop): Adjust declarations.
3596         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
3597         compute_data_dependences_for_loop.
3598
3599 2006-03-29  Paul Brook  <paul@codesourcery.com>
3600
3601         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
3602         (movdf_vfp): Ditto.
3603
3604 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
3605
3606         PR tree-optimization/26859
3607         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
3608         division by zero.
3609         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
3610         for the step after fold_convert.
3611
3612 2006-03-29  Paul Brook  <paul@codesourcery.com>
3613
3614         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
3615         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
3616
3617 2006-03-29  Paul Brook  <paul@codesourcery.com>
3618
3619         PR middle-end/23623
3620         * targhooks.c (default_narrow_bitfield): New fuction.
3621         * targhooks.h (default_narrow_bitfield): add prototype.
3622         * target.h (gcc_target): Add narrow_volatile_bitfield.
3623         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
3624         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
3625         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
3626         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
3627
3628 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3629
3630         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
3631         tmake_file.
3632         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
3633         (NR_C_MODES): Add TDmode, DDmode and SDmode.
3634         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
3635         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
3636         (s390_function_arg_float): Allow SDmode and DDmode values to be
3637         passed in floating point registers.
3638         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
3639         check with SCALAR_FLOAT_MODE_P.
3640         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
3641
3642 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
3643
3644         PR tree-optimization/25985
3645         * tree-ssa-loop-niter.c (number_of_iterations_le,
3646         number_of_iterations_ne): Make comments more precise.
3647         (number_of_iterations_cond): Add only_exit argument.  Use the
3648         fact that signed variables do not overflow only when only_exit
3649         is true.
3650         (loop_only_exit_p): New.
3651         (number_of_iterations_exit): Pass result of loop_only_exit_p to
3652         number_of_iterations_cond.
3653
3654 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
3655
3656         PR tree-optimization/26643
3657         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
3658         bit_field_refs.
3659
3660 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3661
3662         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
3663         (divsi3_i4_int): Likewise.
3664
3665 2006-03-28  Roger Sayle  <roger@eyesopen.com>
3666
3667         * expr.c (emit_group_store): Only create a new pseudo reg if the
3668         quantity it needs to hold isn't already a suitable pseudo.
3669
3670 2006-03-28  Jeff Law  <law@redhat.com>
3671
3672         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
3673         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
3674
3675 2006-03-28  Roger Sayle  <roger@eyesopen.com>
3676
3677         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
3678         the equivalent ~X & Y, and the symmetry related transformations.
3679         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
3680         ~X & Y, and symmetry related transforms.
3681
3682 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3683
3684         Revert my 2006-03-27 patches.
3685
3686 2006-03-28  Roger Sayle  <roger@eyesopen.com>
3687
3688         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
3689         ~(T1)X, when T1 and T2 are integer types of the same precision
3690         and (T2)X isn't an extension.
3691
3692 2006-03-28  Jeff Law  <law@redhat.com>
3693
3694         PR tree-optimization/26796
3695         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
3696         need EH edge cleanups rather than purging them immediately.
3697         (eliminate_degenerate_phis): Handle queued EH cleanups.
3698
3699 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
3700
3701         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
3702         from parent_var.
3703
3704 2006-03-27  Roger Sayle  <roger@eyesopen.com>
3705
3706         PR middle-end/22524
3707         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
3708         cast BIT_NOT_EXPR operand to the correct type.
3709
3710 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
3711
3712         * tree-loop-linear.c: Don't include varray.h.
3713         (gather_interchange_stats, try_interchange_loops,
3714         linear_transform_loops): Use VEC instead of VARRAY.
3715         * lambda-mat.c: Don't include varray.h.
3716         * tree-chrec.c: Same.
3717         * lambda-trans.c: Same.
3718         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
3719         VEC instead of VARRAY.
3720         * tree-vectorizer.h: Idem.
3721         * tree-data-ref.c (dump_data_references,
3722         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
3723         initialize_data_dependence_relation, finalize_ddr_dependent,
3724         compute_all_dependences, find_data_references_in_loop,
3725         compute_data_dependences_for_loop, analyze_all_data_dependences,
3726         free_dependence_relation, free_dependence_relations,
3727         free_data_refs): Idem.
3728         * tree-data-ref.h (data_reference_p, subscript_p): New.
3729         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
3730         VEC instead of VARRAY.
3731         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
3732         (find_data_references_in_loop, compute_data_dependences_for_loop,
3733         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
3734         dump_data_dependence_relations, free_dependence_relations,
3735         free_data_refs): Adjust declaration.
3736         (lambda_transform_legal_p): Move declaration here...
3737         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
3738         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
3739         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
3740         vect_analyze_data_refs): Use VEC instead of VARRAY.
3741         * lambda.h (lambda_transform_legal_p): ...from here.
3742         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
3743         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
3744         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
3745         tree-chrec.o): Don't depend on VARRAY_H.
3746
3747 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3748
3749         * rtl.def (Copyright): Update date.
3750         (DEPS_LIST): Change type of the second operand to 'int'.
3751         * target.h (Copyright): Update date.
3752         (struct gcc_target.speculate_insn): Change type of the second parameter
3753         to 'int'.
3754         * lists.c (Copyright): Update date.
3755         (alloc_DEPS_LIST): Change signature.  Update reference to the second
3756         operand of the DEPS_LIST.
3757         (copy_DEPS_LIST_list): Update reference to the second operand of the
3758         DEPS_LIST.
3759         * rtl.h (Copyright): Update date.
3760         (alloc_DEPS_LIST): Update signature.
3761         * sched-int.h (Copyright): Update date.
3762         (ds_t): Change typedef to 'int'.
3763         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
3764
3765 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3766
3767         * haifa-sched.c (Copyright): Update date.
3768         (try_ready): Change condition to restore non-speculative pattern
3769         of the instruction.
3770         (process_insn_depend_be_in_spec): Code to keep probability of the
3771         speculative dependence non-decreasing.
3772
3773 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
3774
3775         * regrename.c (replace_oldest_value_addr): Initialize a variable to
3776         shut up the compiler.
3777
3778 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
3779
3780         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
3781         to use lib prefix for target.
3782         ($(T)libic_invalidate_array_4-200.a): Likewise.
3783         ($(T)libic_invalidate_array_4a.a): Likewise.
3784
3785 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
3786             J"orn Rennecke <joern.rennecke@st.com>
3787
3788         * superh.opt: New file.
3789         * sh.c (boardtype, osruntime): Remove.
3790         * superh.h (SUBTARGET_OPTIONS): Remove.
3791         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
3792
3793         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
3794         arguments with ^ and/or [].
3795
3796         * config.gcc (sh-*-*): Add quoting to account for quirk of
3797         Solaris /bin/sh.
3798         Replace == with = in enable_incomplete_targets test.
3799
3800         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
3801         with MASK_LITTLE_ENDIAN.
3802
3803         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
3804         * config/sh/sh.opt: Added to some comments.
3805         * config/sh/superh.h: Removed some chaff.
3806
3807         * config/sh/sh.opt: Add m4-[1234]00* options.
3808         * config/sh/sh.c (sh_handle_option): Likewise.
3809         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
3810         (ic_invalidate_array_4-100.o): New rule.
3811         ($(T)libic_invalidate_array_4-100.a): Likewise.
3812         (ic_invalidate_array_4-200.o): Likewise.
3813         ($(T)libic_invalidate_array_4-200.a): Likewise.
3814         (ic_invalidate_array_4a.o): Likewise.
3815         ($(T)libic_invalidate_array_4a.a): Likewise.
3816         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
3817         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
3818         m4-200*, and m4a*.
3819         * config/sh/crt1.asm: Merged in profiling code.
3820         * config/sh/superh.h (STARTFILE_SPEC): Override.
3821         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
3822         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
3823         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
3824
3825         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
3826         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
3827         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
3828
3829         * sh.opt (mpretend-cmove): New option.
3830         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
3831         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
3832         (movsicc): Add TARGET_PRETEND_CMOVE code.
3833
3834 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
3835
3836         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
3837         s390_class_max_nregs): New function prototypes.
3838         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
3839         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
3840         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
3841         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
3842
3843 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
3844
3845         * dwarf2out.c (add_location_or_const_value_attribute): Call
3846         tree_add_const_value_attribute if nothing else works.
3847         (reference_to_unused): New.
3848         (rtl_for_decl_init): Use reference_to_unused to decide whether
3849         to output an initializer.
3850
3851 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
3852
3853         PR target/26459
3854         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
3855         peephole removing spe frob_di_df_2.
3856
3857 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
3858
3859         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
3860         (subscript_dependence_tester_1): Declared.
3861         (print_dir_vectors, print_dist_vectors): New.
3862         (debug_data_dependence_relation): New.
3863         (dump_data_dependence_relation): Print more details.
3864         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
3865         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
3866         (save_dist_v, save_dir_v, add_outer_distances,
3867         build_classic_dist_vector_1): New.
3868         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
3869         Don't test for lambda_vector_lexico_pos.
3870         (same_access_functions, add_multivariate_self_dist,
3871         add_other_self_distances, dir_from_dist): New.
3872         (build_classic_dir_vector): Replace implementation almost identical to
3873         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
3874         dir_from_dist.
3875         (subscript_dependence_tester_1): New.
3876         (subscript_dependence_tester): Handle the lexicographically negative
3877         distance vectors by recomputing the dependence relation.
3878         (compute_affine_dependence): Remove parameter loop_nest_depth.
3879         (compute_self_dependence): Don't call compute_subscript_distance.
3880         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
3881         Add a parameter for the loop_nest.
3882         (find_loop_nest_1, find_loop_nest): New.
3883         (compute_data_dependences_for_loop): Compute the loop nest, and give
3884         up if the nest is not well formed.
3885         * tree-data-ref.h (loop_p): New.
3886         (struct data_dependence_relation): Replace size_vect field with
3887         loop_nest, a vec of loops.
3888         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
3889         (DDR_LOOP_NEST): New.
3890         (print_dir_vectors, print_dist_vectors,
3891         debug_data_dependence_relation): Declared.
3892         (index_in_loop_nest): New.
3893         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
3894         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
3895         distance.
3896
3897 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
3898
3899         * simplify-rtx.c (simplify_relational_operation): Call
3900         simplify_relational_operation_1 even if mode is VOIDmode.
3901
3902 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
3903
3904         PR tree-optimization/26804
3905         * tree.h (DECL_CALL_CLOBBERED): New macro.
3906         (tree_decl_common): Add call_clobbered_flag.
3907         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
3908         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
3909         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
3910         (mark_non_addressable): Ditto.
3911         * tree-ssa.c (verify_call_clobbered): New function.
3912         (verify_alias_info): Use it.
3913         * tree-pass.h (pass_reset_cc_flags): New prototype.
3914         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
3915         (reset_cc_flags): New function.
3916         * passes.c (init_optimization_passes): Call reset_cc_flags after
3917         initializing referenced_vars.
3918
3919 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
3920             Roger Sayle  <roger@eyesopen.com>
3921
3922         PR middle-end/26717
3923         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
3924         to 1.0 for non-real operands. Implement A / A optimization for
3925         complex operands.
3926
3927 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
3928
3929         * config/i386/i386.c (size_cost): Correct the comment for
3930         cost of storing fp registers.
3931         (i386_cost): Likewise.
3932         (i486_cost): Likewise.
3933         (pentium_cost): Likewise.
3934         (pentiumpro_cost): Likewise.
3935         (k6_cost): Likewise.
3936         (athlon_cost): Likewise.
3937         (k8_cost): Likewise.
3938         (pentium4_cost): Likewise.
3939         (nocona_cost): Likewise.
3940         (generic64_cost): Likewise.
3941         (generic32_cost): Likewise.
3942
3943 2006-03-24  Denis Chertykov  <denisc@overta.ru>
3944
3945         * config/avr/avr-protos.h (extra_constraint): Delete.
3946         (extra_constraint_Q): New declaration.
3947         * config/avr/constraints.md: New file.
3948         * config/avr/avr.md: Include it.
3949         (REG_X, REG_Y, REG_Z, REG_W): New constants.
3950         (TMP_REGNO, ZERO_REGNO): Likewise.
3951         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
3952         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
3953         (extra_constraint): Delete.
3954         (extra_constraint_Q): Test for memory constraint 'Q'.
3955         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
3956         (REG_CLASS_FROM_LETTER): Delete.
3957         (CONST_OK_FOR_LETTER_P): Delete.
3958         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3959         (EXTRA_CONSTRAINT): Delete.
3960         (TMP_REGNO): Delete.
3961         (ZERO_REGNO): Delete.
3962
3963 2006-03-24  Jeff Law  <law@redhat.com>
3964
3965         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
3966         directly.  Call mark_new_vars_to_rename slightly earlier.
3967
3968 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
3969
3970         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
3971         (is_cxx): Likewise.
3972         (gen_compile_unit_die): Use new language types for Objective-C and
3973         Objective-C++.
3974         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
3975         DW_LANG_C_plus_plus.
3976
3977         PR 26793
3978         * config/t-darwin (crt3.o): Work around bug 26840.
3979         * config/darwin-crt3.c: Rewrite.
3980         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
3981
3982 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
3983
3984         * doc/invoke.texi: Document -femit-class-debug-always
3985         * common.opt: Add -femit-class-debug-always.
3986
3987 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3988
3989         * config/s390/s390.c (s390_decompose_address): Allow SImode for
3990         index and base register.
3991         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
3992         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
3993         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
3994         REGNO_OK_FOR_INDEX_P.
3995         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
3996         ADDR_REGNO_P.
3997         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
3998         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
3999         REG_OK_FOR_BASE_P): Definitions removed.
4000
4001 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
4002
4003         PR middle-end/26611
4004         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
4005         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
4006         set yet or weren't marked as local yet.
4007
4008 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
4009
4010         * regrename.c (scan_rtx_address): Initialize a variable to shut up
4011         the compiler.
4012
4013 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4014
4015         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
4016         (rs6000_legitimate_small_data_p): Delete.
4017         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
4018         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
4019         and make static.  Add forward declaration.  Update uses.
4020         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
4021         of offsettable_memref_p.
4022         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
4023         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
4024
4025 2006-03-24  Jeff Law  <law@redhat.com>
4026
4027         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
4028         around bug in immediate-use iterator.
4029
4030 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
4031
4032         PR target/26607
4033         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
4034         or __LITTLE_ENDIAN__.
4035
4036 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
4037
4038         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
4039         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
4040         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
4041         * config/sh/sh.opt (mdiv=): Amend description.
4042         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
4043         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
4044         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
4045         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
4046         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
4047         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
4048         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
4049         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
4050         TARGET_DIVIDE_CALL_FP.
4051
4052 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4053
4054         * haifa-sched.c (choose_ready): Fix type of the local variable.
4055         Move local variables.  Add comment.
4056         (check_reg_live): Change signature.  Make callable from debugger.
4057         * sched-int.h (check_reg_live): Update signature.
4058         * sched-ebb.c (check_reg_live): Update parameters.
4059         * sched-rgn.c (check_reg_live): Ditto.
4060         (region_head_or_leaf_p): Check pointer before dereferencing.
4061         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
4062         before reload on optimization levels below 1.
4063