OSDN Git Service

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