OSDN Git Service

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