OSDN Git Service

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