OSDN Git Service

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