OSDN Git Service

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