OSDN Git Service

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