OSDN Git Service

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