OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/39678
4         * config/i386/i386.c (classify_argument): Handle SCmode with
5         (bit_offset % 64) != 0.
6
7 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
8
9         * doc/invoke.texi (Optimize Options): Add cross-reference to
10         -Q --help=optimizers examples.
11
12 2009-04-10  Ben Elliston  <bje@au.ibm.com>
13
14         PR target/36800
15         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
16         regalign for the reg == fpr and TDmode case.
17
18 2009-04-09  David Ayers  <ayers@fsfe.org>
19
20         PR objc/29200
21         * objc/objc-act.c (warn_with_method): Remove helper function.
22         (check_duplicates): Call warning and inform directly.
23         (really_start_method): Likewise.
24
25 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
26
27         * expmed.c (expand_divmod): Always use a comparison for a division
28         by a large unsigned integer.
29
30         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
31         for things others than variables or functions as nonzero.
32
33 2009-04-09  Nick Clifton  <nickc@redhat.com>
34
35         * unwind-compat.c: Change copyright header to refer to version
36         3 of the GNU General Public License with version 3.1 of the
37         GCC Runtime Library Exception and to point readers at the
38         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
39         * config/alpha/crtfastmath.c: Likewise.
40         * config/alpha/linux-unwind.h: Likewise.
41         * config/alpha/qrnnd.asm: Likewise.
42         * config/alpha/vms-crt0-64.c: Likewise.
43         * config/alpha/vms-crt0.c: Likewise.
44         * config/alpha/vms-dwarf2.asm: Likewise.
45         * config/alpha/vms-dwarf2eh.asm: Likewise.
46         * config/alpha/vms-psxcrt0-64.c: Likewise.
47         * config/alpha/vms-psxcrt0.c: Likewise.
48         * config/alpha/vms_tramp.asm: Likewise.
49         * config/arc/initfini.c: Likewise.
50         * config/arc/lib1funcs.asm: Likewise.
51         * config/arm/bpabi-v6m.S: Likewise.
52         * config/arm/bpabi.S: Likewise.
53         * config/arm/bpabi.c: Likewise.
54         * config/arm/crti.asm: Likewise.
55         * config/arm/crtn.asm: Likewise.
56         * config/arm/ieee754-df.S: Likewise.
57         * config/arm/ieee754-sf.S: Likewise.
58         * config/arm/lib1funcs.asm: Likewise.
59         * config/arm/libunwind.S: Likewise.
60         * config/arm/linux-atomic.c: Likewise.
61         * config/arm/mmintrin.h: Likewise.
62         * config/arm/pr-support.c: Likewise.
63         * config/arm/unaligned-funcs.c: Likewise.
64         * config/arm/unwind-arm.c: Likewise.
65         * config/arm/unwind-arm.h: Likewise.
66         * config/avr/libgcc.S: Likewise.
67         * config/bfin/crti.s: Likewise.
68         * config/bfin/crtlibid.s: Likewise.
69         * config/bfin/crtn.s: Likewise.
70         * config/bfin/lib1funcs.asm: Likewise.
71         * config/bfin/linux-unwind.h: Likewise.
72         * config/cris/arit.c: Likewise.
73         * config/cris/cris_abi_symbol.c: Likewise.
74         * config/darwin-64.c: Likewise.
75         * config/darwin-crt2.c: Likewise.
76         * config/darwin-crt3.c: Likewise.
77         * config/darwin.h: Likewise.
78         * config/dbxelf.h: Likewise.
79         * config/dfp-bit.c: Likewise.
80         * config/dfp-bit.h: Likewise.
81         * config/elfos.h: Likewise.
82         * config/fixed-bit.c: Likewise.
83         * config/fixed-bit.h: Likewise.
84         * config/fp-bit.c: Likewise.
85         * config/fp-bit.h: Likewise.
86         * config/fr30/crti.asm: Likewise.
87         * config/fr30/crtn.asm: Likewise.
88         * config/fr30/lib1funcs.asm: Likewise.
89         * config/freebsd-spec.h: Likewise.
90         * config/frv/cmovd.c: Likewise.
91         * config/frv/cmovh.c: Likewise.
92         * config/frv/cmovw.c: Likewise.
93         * config/frv/frvbegin.c: Likewise.
94         * config/frv/frvend.c: Likewise.
95         * config/frv/lib1funcs.asm: Likewise.
96         * config/glibc-stdint.h: Likewise.
97         * config/h8300/clzhi2.c: Likewise.
98         * config/h8300/crti.asm: Likewise.
99         * config/h8300/crtn.asm: Likewise.
100         * config/h8300/ctzhi2.c: Likewise.
101         * config/h8300/fixunssfsi.c: Likewise.
102         * config/h8300/lib1funcs.asm: Likewise.
103         * config/h8300/parityhi2.c: Likewise.
104         * config/h8300/popcounthi2.c: Likewise.
105         * config/i386/ammintrin.h: Likewise.
106         * config/i386/att.h: Likewise.
107         * config/i386/avxintrin.h: Likewise.
108         * config/i386/biarch64.h: Likewise.
109         * config/i386/bmmintrin.h: Likewise.
110         * config/i386/cpuid.h: Likewise.
111         * config/i386/cross-stdarg.h: Likewise.
112         * config/i386/crtfastmath.c: Likewise.
113         * config/i386/crtprec.c: Likewise.
114         * config/i386/cygming-crtbegin.c: Likewise.
115         * config/i386/cygming-crtend.c: Likewise.
116         * config/i386/cygwin.asm: Likewise.
117         * config/i386/emmintrin.h: Likewise.
118         * config/i386/gmm_malloc.h: Likewise.
119         * config/i386/gthr-win32.c: Likewise.
120         * config/i386/i386.h: Likewise.
121         * config/i386/immintrin.h: Likewise.
122         * config/i386/linux-unwind.h: Likewise.
123         * config/i386/linux64.h: Likewise.
124         * config/i386/mm3dnow.h: Likewise.
125         * config/i386/mmintrin-common.h: Likewise.
126         * config/i386/mmintrin.h: Likewise.
127         * config/i386/nmmintrin.h: Likewise.
128         * config/i386/pmm_malloc.h: Likewise.
129         * config/i386/pmmintrin.h: Likewise.
130         * config/i386/smmintrin.h: Likewise.
131         * config/i386/sol2-c1.asm: Likewise.
132         * config/i386/sol2-ci.asm: Likewise.
133         * config/i386/sol2-cn.asm: Likewise.
134         * config/i386/sol2-gc1.asm: Likewise.
135         * config/i386/tmmintrin.h: Likewise.
136         * config/i386/unix.h: Likewise.
137         * config/i386/w32-unwind.h: Likewise.
138         * config/i386/wmmintrin.h: Likewise.
139         * config/i386/x86-64.h: Likewise.
140         * config/i386/x86intrin.h: Likewise.
141         * config/i386/xmmintrin.h: Likewise.
142         * config/ia64/crtbegin.asm: Likewise.
143         * config/ia64/crtend.asm: Likewise.
144         * config/ia64/crtfastmath.c: Likewise.
145         * config/ia64/crti.asm: Likewise.
146         * config/ia64/crtn.asm: Likewise.
147         * config/ia64/fde-glibc.c: Likewise.
148         * config/ia64/lib1funcs.asm: Likewise.
149         * config/ia64/linux-unwind.h: Likewise.
150         * config/ia64/quadlib.c: Likewise.
151         * config/ia64/unwind-ia64.c: Likewise.
152         * config/linux.h: Likewise.
153         * config/m32c/m32c-lib1.S: Likewise.
154         * config/m32c/m32c-lib2-trapv.c: Likewise.
155         * config/m32c/m32c-lib2.c: Likewise.
156         * config/m32r/initfini.c: Likewise.
157         * config/m68hc11/larith.asm: Likewise.
158         * config/m68hc11/m68hc11-crt0.S: Likewise.
159         * config/m68k/cf.md: Likewise.
160         * config/m68k/crti.s: Likewise.
161         * config/m68k/crtn.s: Likewise.
162         * config/m68k/lb1sf68.asm: Likewise.
163         * config/m68k/linux-unwind.h: Likewise.
164         * config/mcore/crti.asm: Likewise.
165         * config/mcore/crtn.asm: Likewise.
166         * config/mcore/lib1.asm: Likewise.
167         * config/mips/linux-unwind.h: Likewise.
168         * config/mips/loongson.h: Likewise.
169         * config/mips/mips16.S: Likewise.
170         * config/mmix/crti.asm: Likewise.
171         * config/mmix/crtn.asm: Likewise.
172         * config/pa/fptr.c: Likewise.
173         * config/pa/hpux-unwind.h: Likewise.
174         * config/pa/lib2funcs.asm: Likewise.
175         * config/pa/linux-atomic.c: Likewise.
176         * config/pa/linux-unwind.h: Likewise.
177         * config/pa/milli64.S: Likewise.
178         * config/pa/quadlib.c: Likewise.
179         * config/pa/stublib.c: Likewise.
180         * config/picochip/libgccExtras/adddi3.asm: Likewise.
181         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
182         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
183         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
184         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
185         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
186         * config/picochip/libgccExtras/divmod15.asm: Likewise.
187         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
188         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
189         * config/picochip/libgccExtras/longjmp.asm: Likewise.
190         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
191         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
192         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
193         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
194         * config/picochip/libgccExtras/setjmp.asm: Likewise.
195         * config/picochip/libgccExtras/subdi3.asm: Likewise.
196         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
197         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
198         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
199         * config/rs6000/750cl.h: Likewise.
200         * config/rs6000/altivec.h: Likewise.
201         * config/rs6000/biarch64.h: Likewise.
202         * config/rs6000/crtresfpr.asm: Likewise.
203         * config/rs6000/crtresgpr.asm: Likewise.
204         * config/rs6000/crtresxfpr.asm: Likewise.
205         * config/rs6000/crtresxgpr.asm: Likewise.
206         * config/rs6000/crtsavfpr.asm: Likewise.
207         * config/rs6000/crtsavgpr.asm: Likewise.
208         * config/rs6000/darwin-asm.h: Likewise.
209         * config/rs6000/darwin-fallback.c: Likewise.
210         * config/rs6000/darwin-fpsave.asm: Likewise.
211         * config/rs6000/darwin-ldouble.c: Likewise.
212         * config/rs6000/darwin-tramp.asm: Likewise.
213         * config/rs6000/darwin-unwind.h: Likewise.
214         * config/rs6000/darwin-vecsave.asm: Likewise.
215         * config/rs6000/darwin-world.asm: Likewise.
216         * config/rs6000/e500crtres32gpr.asm: Likewise.
217         * config/rs6000/e500crtres64gpr.asm: Likewise.
218         * config/rs6000/e500crtres64gprctr.asm: Likewise.
219         * config/rs6000/e500crtrest32gpr.asm: Likewise.
220         * config/rs6000/e500crtrest64gpr.asm: Likewise.
221         * config/rs6000/e500crtresx32gpr.asm: Likewise.
222         * config/rs6000/e500crtresx64gpr.asm: Likewise.
223         * config/rs6000/e500crtsav32gpr.asm: Likewise.
224         * config/rs6000/e500crtsav64gpr.asm: Likewise.
225         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
226         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
227         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
228         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
229         * config/rs6000/eabi-ci.asm: Likewise.
230         * config/rs6000/eabi-cn.asm: Likewise.
231         * config/rs6000/eabi.asm: Likewise.
232         * config/rs6000/linux-unwind.h: Likewise.
233         * config/rs6000/linux64.h: Likewise.
234         * config/rs6000/paired.h: Likewise.
235         * config/rs6000/paired.md: Likewise.
236         * config/rs6000/ppc64-fp.c: Likewise.
237         * config/rs6000/ppu_intrinsics.h: Likewise.
238         * config/rs6000/rs6000.h: Likewise.
239         * config/rs6000/si2vmx.h: Likewise.
240         * config/rs6000/sol-ci.asm: Likewise.
241         * config/rs6000/sol-cn.asm: Likewise.
242         * config/rs6000/spe.h: Likewise.
243         * config/rs6000/spu2vmx.h: Likewise.
244         * config/rs6000/sysv4.h: Likewise.
245         * config/rs6000/tramp.asm: Likewise.
246         * config/rs6000/vec_types.h: Likewise.
247         * config/s390/linux-unwind.h: Likewise.
248         * config/s390/tpf-unwind.h: Likewise.
249         * config/score/crti.asm: Likewise.
250         * config/score/crtn.asm: Likewise.
251         * config/sh/crt1.asm: Likewise.
252         * config/sh/crti.asm: Likewise.
253         * config/sh/crtn.asm: Likewise.
254         * config/sh/divtab-sh4-300.c: Likewise.
255         * config/sh/divtab-sh4.c: Likewise.
256         * config/sh/divtab.c: Likewise.
257         * config/sh/lib1funcs-4-300.asm: Likewise.
258         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
259         * config/sh/lib1funcs.asm: Likewise.
260         * config/sh/lib1funcs.h: Likewise.
261         * config/sh/linux-atomic.asm: Likewise.
262         * config/sh/linux-unwind.h: Likewise.
263         * config/sh/shmedia.h: Likewise.
264         * config/sh/sshmedia.h: Likewise.
265         * config/sh/ushmedia.h: Likewise.
266         * config/sparc/crtfastmath.c: Likewise.
267         * config/sparc/linux-unwind.h: Likewise.
268         * config/sparc/sol2-c1.asm: Likewise.
269         * config/sparc/sol2-ci.asm: Likewise.
270         * config/sparc/sol2-cn.asm: Likewise.
271         * config/spu/divmodti4.c: Likewise.
272         * config/spu/divv2df3.c: Likewise.
273         * config/spu/float_disf.c: Likewise.
274         * config/spu/float_unsdidf.c: Likewise.
275         * config/spu/float_unsdisf.c: Likewise.
276         * config/spu/float_unssidf.c: Likewise.
277         * config/spu/mfc_multi_tag_release.c: Likewise.
278         * config/spu/mfc_multi_tag_reserve.c: Likewise.
279         * config/spu/mfc_tag_release.c: Likewise.
280         * config/spu/mfc_tag_reserve.c: Likewise.
281         * config/spu/mfc_tag_table.c: Likewise.
282         * config/spu/multi3.c: Likewise.
283         * config/spu/spu_internals.h: Likewise.
284         * config/spu/spu_intrinsics.h: Likewise.
285         * config/spu/spu_mfcio.h: Likewise.
286         * config/spu/vec_types.h: Likewise.
287         * config/spu/vmx2spu.h: Likewise.
288         * config/stormy16/stormy16-lib2.c: Likewise.
289         * config/svr4.h: Likewise.
290         * config/sync.c: Likewise.
291         * config/v850/lib1funcs.asm: Likewise.
292         * config/vxlib-tls.c: Likewise.
293         * config/vxlib.c: Likewise.
294         * config/vxworks-dummy.h: Likewise.
295         * config/xtensa/crti.asm: Likewise.
296         * config/xtensa/crtn.asm: Likewise.
297         * config/xtensa/ieee754-df.S: Likewise.
298         * config/xtensa/ieee754-sf.S: Likewise.
299         * config/xtensa/lib1funcs.asm: Likewise.
300         * config/xtensa/lib2funcs.S: Likewise.
301         * config/xtensa/linux-unwind.h: Likewise.
302         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
303         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
304         * coretypes.h: Likewise.
305         * crtstuff.c: Likewise.
306         * defaults.h: Likewise.
307         * dwarf2.h: Likewise.
308         * emutls.c: Likewise.
309         * gbl-ctors.h: Likewise.
310         * gcov-io.h: Likewise.
311         * ginclude/float.h: Likewise.
312         * ginclude/iso646.h: Likewise.
313         * ginclude/stdarg.h: Likewise.
314         * ginclude/stdbool.h: Likewise.
315         * ginclude/stddef.h: Likewise.
316         * ginclude/stdfix.h: Likewise.
317         * ginclude/stdint-gcc.h: Likewise.
318         * ginclude/tgmath.h: Likewise.
319         * gthr-aix.h: Likewise.
320         * gthr-dce.h: Likewise.
321         * gthr-gnat.c: Likewise.
322         * gthr-gnat.h: Likewise.
323         * gthr-lynx.h: Likewise.
324         * gthr-mipssde.h: Likewise.
325         * gthr-nks.h: Likewise.
326         * gthr-posix.c: Likewise.
327         * gthr-posix.h: Likewise.
328         * gthr-posix95.h: Likewise.
329         * gthr-rtems.h: Likewise.
330         * gthr-single.h: Likewise.
331         * gthr-solaris.h: Likewise.
332         * gthr-tpf.h: Likewise.
333         * gthr-vxworks.h: Likewise.
334         * gthr-win32.h: Likewise.
335         * gthr.h: Likewise.
336         * libgcc2.c: Likewise.
337         * libgcc2.h: Likewise.
338         * libgcov.c: Likewise.
339         * tsystem.h: Likewise.
340         * typeclass.h: Likewise.
341         * unwind-c.c: Likewise.
342         * unwind-compat.h: Likewise.
343         * unwind-dw2-fde-compat.c: Likewise.
344         * unwind-dw2-fde-darwin.c: Likewise.
345         * unwind-dw2-fde-glibc.c: Likewise.
346         * unwind-dw2-fde.c: Likewise.
347         * unwind-dw2-fde.h: Likewise.
348         * unwind-dw2.c: Likewise.
349         * unwind-dw2.h: Likewise.
350         * unwind-generic.h: Likewise.
351         * unwind-pe.h: Likewise.
352         * unwind-sjlj.c: Likewise.
353         * unwind.inc: Likewise.
354         * config/arm/neon-gen.ml: Change generated copyright header to
355         refer to version 3 of the GNU General Public License with
356         version 3.1 of the GCC Runtime Library Exception and to point
357         readers at the COPYING3 and COPYING3.RUNTIME files and the
358         FSF's license web page.
359         * config/arm/arm_neon.h: Regenerate.
360
361 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
362
363         * config/cris/cris.md: Change copyright header to refer to version
364         3 of the GNU General Public License.
365         * doc/install.texi2html: Change copyright header to refer to version
366         3 of the GNU General Public License and to point readers at the
367         COPYING3 file and the FSF's license web page.
368         * config/vax/linux.h: Likewise.
369
370 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
371
372         * config/i386/i386.md (cmpcc): New.
373         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
374         (sync_compare_and_swap_cc*): Delete.
375
376         * config/s390/s390.c (s390_compare_emitted): Remove.
377         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
378         s390_compare_emitted used to be handled.  Assert that modes match.
379         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
380         refer to sync_compare_and_swap_ccsi.
381         * config/s390/s390.h (s390_compare_emitted): Remove.
382         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
383         instead of s390_compare_emitted.
384         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
385         instead of s390_compare_emitted.
386         * config/s390/s390.md (cmpcc): New.
387         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
388         CC_REGNUM, do not pretend it's set.
389         (sync_compare_and_swap_cc*): Delete.
390         * config/s390/predicates.md (cc_reg_operand): New.
391
392         * expr.c (sync_compare_and_swap_cc): Delete.
393         * optabs.h (sync_compare_and_swap_cc): Delete.
394         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
395         is being used with can_compare_p.
396         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
397         (find_cc_set): New.
398         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
399         look for a MODE_CC set instead.  Use emit_store_flag.
400         (expand_compare_and_swap_loop): Likewise, with some additional
401         complication to avoid a force_reg when useless.  Use
402         emit_cmp_and_jump_insns.
403         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
404         * doc/md.texi (sync_compare_and_swap_cc): Merge with
405         sync_compare_and_swap documentation.
406
407 2009-04-09  Jan Hubicka  <jh@suse.cz>
408
409         * except.c (find_prev_try): Break out from ....
410         (duplicate_eh_regions): ... here; properly update prev_try pointers
411         when duplication part of tree.
412         (dump_eh_tree): Improve dumping.
413         (verify_eh_region): New.
414         (verify_eh_tree): Use it.
415
416 2009-04-06  Richard Guenther  <rguenther@suse.de>
417
418         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
419         &ARRAY addresses by adjusting their types and prepending
420         a conversion.
421         * tree-cfg.c (verify_gimple_assign_single): Verify that
422         addresses are correct.
423
424 2009-04-09  Richard Guenther  <rguenther@suse.de>
425
426         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
427         indices into an array reference if possible.
428         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
429         Fold POINTER_PLUS_EXPR statements with invariant address.
430
431 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
432
433         PR target/39634
434         * config.gcc (powerpc64-*-linux*): Always build biarch.
435
436 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
437
438         PR c/39613
439         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
440         it and pedwarn if this results in an INTEGER_CST.
441
442 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
443
444         * doc/install.texi: Update minimum GMP version.  Remove obsolete
445         text in MPFR section.
446
447 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
448
449         * dwarf2out.c (class_scope_p): New static inline.
450         (class_or_namespace_scope_p): Use it.
451         (gen_variable_die): Use DW_TAG_member tag for static data member
452         declarations instead of DW_TAG_variable.
453
454         PR middle-end/39573
455         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
456         variables.
457
458 2009-04-08  Richard Guenther  <rguenther@suse.de>
459
460         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
461         valueize random data.
462
463 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
464
465         * config.gcc (aix tm_file):  Add aix-stdint.h.
466         (aix tm clause use_gcc_stdint):  Set to wrap.
467         * config/rs6000/aix-stdint.h:  New file.
468         
469 2009-04-08  Richard Guenther  <rguenther@suse.de>
470
471         PR middle-end/36291
472         * tree-dfa.c (add_referenced_var): Do not recurse into
473         global initializers.
474         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
475         exposed variables.
476         (fold_const_aggregate_ref): Likewise.
477
478 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
479
480         * recog.c (ordered_comparison_operator): New.
481         * gensupport.c (std_preds): Add it.
482         * doc/md.texi (Machine-Independent Predicates): Document it.
483
484 2009-04-08  Jan Hubicka  <jh@suse.cz>
485
486         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
487         * function.h (rtl_eh): Remove exception_handler_label_map.
488         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
489         remove_exception_handler_label, for_each_eh_label_1): Remove.
490         (rtl_remove_unreachable_regions): Remove.
491         (convert_from_eh_region_ranges): Do not remove unreachable regions.
492         (find_exception_handler_labels): Don't build the hashtable.
493         (maybe_remove_eh_handler): Remove.
494         (for_each_eh_label): Rewrite to walk the tree.
495         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
496         * except.h (maybe_remove_eh_handler): Remove.
497         * passes.c (init_optimization_passes): Schedule second EH cleanup
498         before out-of-ssa.
499         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
500         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
501
502 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
503
504         * genoutput.c (validate_optab_operands): New.
505         (gen_insn, gen_expand): Call it.
506
507         * genflags.c (gen_insn): Detect misused iterators.
508         (main): Pass line_no to gen_insn, exit with status 1 on error.
509
510         * genextract.c (line_no): Make global.
511         (VEC_safe_set_locstr): Change assertion to error message.
512         (main): Exit with status 1 on error.
513
514 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
515
516         PR c/39614
517         PR c/39673
518         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
519         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
520         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
521         * c-convert.c (convert): Do not call fold on results of conversion
522         functions when the result is a C_MAYBE_CONST_EXPR.
523         * c-parser.c (c_parser_postfix_expression): Do not fold condition
524         of __builtin_choose_expr.
525         * c-typeck.c (remove_c_maybe_const_expr): New.
526         (build_unary_op, build_conditional_expr, build_compound_expr,
527         build_binary_op, c_objc_common_truthvalue_conversion): Call
528         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
529         integer operands.
530
531 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
532
533         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
534         CODE to produce a new one. Add a prototype to use fold_convert_const
535
536 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
537
538         PR bootstrap/39660
539         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
540         mix declarations and code.
541
542 2009-04-08  Ben Elliston  <bje@au.ibm.com>
543
544         * gcc.c: Replace `CC' with `GCC' throughout.
545
546 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
547
548         * doc/invoke.texi: Document Atom support.
549
550 2009-04-07  Jason Merrill  <jason@redhat.com>
551
552         PR c++/25185
553         * c-common.h, c-common.c: Add flag_pretty_templates.
554         * c-opts.c (c_common_handle_option): Set it.
555         * c.opt: Add -fno-pretty-templates.
556         * doc/invoke.texi (C++ Dialect Options): Likewise.
557
558 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
559
560         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
561         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
562         (ia64_expand_builtin): Likewise.
563
564 2009-04-07  Martin Jambor  <mjambor@suse.cz>
565
566         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
567         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
568         ADDR_EXPRS are include too.
569
570 2009-04-07  Richard Guenther  <rguenther@suse.de>
571
572         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
573         decls are only used if passes as parameters or if they are
574         local statics and the call is not to a builtin.
575         (call_may_clobber_ref_p_1): Likewise.
576
577 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
578
579         * expr.c (do_store_flag): Remove last argument.  Simplify code
580         to avoid duplication of tests already done by can_compare_p.
581         (expand_expr_real_1): Adjust caller.
582
583 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
584
585         * optabs.c (can_compare_p): Test the predicate of a
586         cbranch and cstore pattern.
587
588 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
589
590         * expr.c (convert_move): Use emit_store_flag instead of
591         "emulating" it.
592
593 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
594
595         * config/i386/i386.c (ix86_compare_emitted): Remove.
596         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
597         ix86_compare_op0 like ix86_compare_emitted used to be handled.
598         * config/i386/i386.h (ix86_compare_emitted): Remove.
599         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
600         instead of ix86_compare_emitted.
601         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
602
603 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
604
605         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
606         Add t-sysroot-suffix to tmake_file.
607         * config/print-sysroot-suffix.sh: New file.
608         * config/t-sysroot-suffix: New file.
609
610 2009-04-07  Ben Elliston  <bje@au.ibm.com>
611
612         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
613         as the latter produces a warning when the target does not support
614         infinity.
615
616 2009-04-07  Ben Elliston  <bje@au.ibm.com>
617
618         * dfp.c: Replace type punning assignments with memcpy throughout.
619         * Makefile.in (dfp.o-warn): Remove.
620         
621 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
622
623         PR target/39634
624         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
625         Include soft-fp/t-softfp after rs6000/t-linux64.
626
627 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
628
629         * stor-layout.c (set_sizetype): Use the full precision of their
630         machine mode for bitsize types.
631
632 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
633
634         * config/i386/i386.md: Revert 2 accidental checkins.
635
636 2009-04-06  Joey Ye  <joey.ye@intel.com>
637             Xuepeng Guo <xuepeng.guo@intel.com>
638             H.J. Lu  <hongjiu.lu@intel.com>
639
640         Atom pipeline model, tuning and insn selection.
641         * config.gcc (atom): Add atom config options and target.
642
643         * config/i386/atom.md: New.
644
645         * config/i386/i386.c (atom_cost): New cost.
646         (m_ATOM): New macro flag.
647         (initial_ix86_tune_features): Set m_ATOM.
648         (x86_accumulate_outgoing_args): Likewise.
649         (x86_arch_always_fancy_math_387): Likewise.
650         (processor_target): Add Atom cost.
651         (cpu_names): Add Atom cpu name.
652         (override_options): Set Atom ISA.
653         (ix86_issue_rate): New case PROCESSOR_ATOM.
654         (ix86_adjust_cost): Likewise.
655
656         * config/i386/i386.h (TARGET_ATOM): New target macro.
657         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
658         (TARGET_OPT_AGU): New target option.
659         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
660         (processor_type): Add PROCESSOR_ATOM.
661
662         * config/i386/i386.md (cpu): Add new value "atom".
663         (use_carry, movu): New attr.
664         (atom.md): Include atom.md.
665         (adddi3_carry_rex64): Set attr "use_carry".
666         (addqi3_carry): Likewise.
667         (addhi3_carry): Likewise.
668         (addsi3_carry): Likewise.
669         (*addsi3_carry_zext): Likewise.
670         (subdi3_carry_rex64): Likewise.
671         (subqi3_carry): Likewise.
672         (subhi3_carry): Likewise.
673         (subsi3_carry): Likewise.
674         (x86_movdicc_0_m1_rex64): Likewise.
675         (*x86_movdicc_0_m1_se): Likewise.
676         (x86_movsicc_0_m1): Likewise.
677         (*x86_movsicc_0_m1_se): Likewise.
678         (*adddi_1_rex64): Emit add insn as much as possible.
679         (*addsi_1): Likewise.
680         (return_internal): Set atom_unit.
681         (return_internal_long): Likewise.
682         (return_pop_internal): Likewise.
683         (*rcpsf2_sse): Set atom_sse_attr attr.
684         (*qrt<mode>2_sse): Likewise.
685         (*prefetch_sse): Likewise.
686
687         * config/i386/i386-c.c (ix86_target_macros_internal): New case
688         PROCESSOR_ATOM.
689         (ix86_target_macros_internal): Likewise.
690
691         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
692         (*prefetch_sse_rex): Likewise.
693         (sse_rcpv4sf2): Likewise.
694         (sse_vmrcpv4sf2): Likewise.
695         (sse_sqrtv4sf2): Likewise.
696         (<sse>_vmsqrt<mode>2): Likewise.
697         (sse_ldmxcsr): Likewise.
698         (sse_stmxcsr): Likewise.
699         (*sse_sfence): Likewise.
700         (sse2_clflush): Likewise.
701         (*sse2_mfence): Likewise.
702         (*sse2_lfence): Likewise.
703         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
704         (<sse>_movup<ssemodesuffixf2c>): Likewise.
705         (avx_movdqu<avxmodesuffix>): Likewise.
706         (avx_lddqu<avxmodesuffix>): Likewise.
707         (sse2_movntv2di): Change attr "type" to "ssemov".
708         (sse2_movntsi): Likewise.
709         (rsqrtv8sf2): Change attr "type" to "sseadd".
710         (sse3_addsubv2df3): Set attr "atom_unit".
711         (sse3_h<plusminus_insn>v4sf3): Likewise.
712         (*sse2_pmaddwd): Likewise.
713         (*vec_extractv2di_1_rex64): Likewise.
714         (*vec_extractv2di_1_avx): Likewise.
715         (sse2_psadbw): Likewise.
716         (ssse3_phaddwv8hi3): Likewise.
717         (ssse3_phaddwv4hi3): Likewise.
718         (ssse3_phadddv4si3): Likewise.
719         (ssse3_phadddv2si3): Likewise.
720         (ssse3_phaddswv8hi3): Likewise.
721         (ssse3_phaddswv4hi3): Likewise.
722         (ssse3_phsubwv8hi3): Likewise.
723         (ssse3_phsubwv4hi3): Likewise.
724         (ssse3_phsubdv4si3): Likewise.
725         (ssse3_phsubdv2si3): Likewise.
726         (ssse3_phsubswv8hi3): Likewise.
727         (ssse3_phsubswv4hi3): Likewise.
728         (ssse3_pmaddubsw128): Likewise.
729         (sse3_pmaddubsw: Likewise.
730         (ssse3_palignrti): Likewise.
731         (ssse3_palignrdi): Likewise.
732
733 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
734
735         * doc/install.texi (Specific): Fix two cross-references to MinGW.
736
737 2009-04-06  Richard Guenther  <rguenther@suse.de>
738
739         PR tree-optimization/28868
740         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
741         of which PHI results we inserted.
742         (insert_into_preds_of_block): Record inserted PHIs.
743         (eliminate): Eliminate redundant PHI nodes.
744         (init_pre): Init inserted_phi_names.
745
746 2009-04-06  Richard Guenther  <rguenther@suse.de>
747
748         PR tree-optimization/39643
749         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
750         IMAGPART_EXPRs of complex constants.
751         (execute_fold_all_builtins): If we folded a call queue
752         TODO_update_address_taken.
753
754 2009-04-06  Jan Hubicka  <jh@suse.cz>
755
756         PR middle-end/39659
757         * except.c (remove_unreachable_regions): Propagate may_contain_throw
758         flag.
759
760 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
761
762         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
763         delay slot.
764         (ic_invalidate_array): Likewise.
765
766 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
767
768         * calls.c (emit_library_call_value_1): Fix a problem with parameter
769         alignment for library calls.
770
771 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
772
773         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
774         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
775         * config/i386/mingw-stdint.h:  New file.
776
777 2009-04-05  Richard Guenther  <rguenther@suse.de>
778
779         PR tree-optimization/39648
780         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
781         our &A vs. &A[0] IL deficiencies.
782
783 2009-04-04  Jan Hubicka  <jh@suse.cz>
784
785         * except.c (sjlj_find_directly_reachable_regions): Be ready for
786         removed toplevel regions.
787         (sjlj_mark_call_sites): Likewise.
788
789 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
790
791         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
792         (cygwin tm clause use_gcc_stdint):  Set to wrap.
793         * config/i386/cygwin-stdint.h:  New file.
794
795 2009-04-04  Richard Guenther  <rguenther@suse.de>
796
797         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
798         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
799         single-argument PHIs if we are in loop-closed SSA form.
800         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
801         for the pre-condition.
802         (slpeel_tree_peel_loop_to_edge): Likewise.
803         (vect_build_loop_niters): Take an optional sequence to append stmts.
804         (vect_generate_tmps_on_preheader): Likewise.
805         (vect_do_peeling_for_loop_bound): Take extra guards for the
806         pre-condition.
807         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
808         the cost model check.
809         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
810         guards if we are going to peel.  Do not apply versioning in that case.
811         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
812         (vect_do_peeling_for_loop_bound): Likewise.
813         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
814         loop bound only record extra pre-conditions, do not apply loop
815         versioning.
816
817 2009-04-04  Richard Guenther  <rguenther@suse.de>
818
819         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
820         renaming code.
821
822 2009-04-04  Jan Hubicka  <jh@suse.cz>
823
824         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
825         last_basic_block for size of bb->index indexed array.
826         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
827         compute_out, link_btr_uses, build_btr_def_use_webs,
828         build_btr_def_use_webs, migrate_btr_defs): Likewise.
829
830 2009-04-04  Jan Hubicka  <jh@suse.cz>
831
832         * except.c (remove_eh_handler_and_replace): Break out from ...
833         (remove_eh_handler): ... here.
834         (bring_to_root): New function.
835         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
836         handled ones, bring others to root of tree.
837
838 2009-04-04  Jan Hubicka  <jh@suse.cz>
839
840         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
841         (all_phis_safe_to_merge): New function.
842         (update_info): New structure.
843         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
844         (cleanup_empty_eh): Update SSA if possible.
845
846 2009-04-04  Richard Guenther  <rguenther@suse.de>
847
848         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
849         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
850         (append_vuse): Likewise.
851
852 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
853
854         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
855         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
856         instead of REG_UNSAVED for DW_CFA_undefined.
857         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
858         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
859         outermost frame.
860
861 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
862
863         PR target/39501
864         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
865         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
866         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
867
868 2009-04-04  Richard Guenther  <rguenther@suse.de>
869
870         PR tree-optimization/8781
871         PR tree-optimization/37892
872         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
873         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
874         (valueize_refs): Call it for *& valueizations.
875         (shared_reference_ops_from_ref): Rename to ...
876         (valueize_shared_reference_ops_from_ref): ... this and valueize.
877         (shared_reference_ops_from_call): Rename to ...
878         (valueize_shared_reference_ops_from_call): ... this and valueize.
879         (vn_reference_lookup): Update.
880         (visit_reference_op_call): Likewise.
881         * tree-ssa-pre.c (phi_translate_1): Fold *&.
882         (eliminate): Value-replace the call address in call statements.
883
884 2009-04-04  Richard Guenther  <rguenther@suse.de>
885
886         PR tree-optimization/39636
887         * tree-ssa-forwprop.c
888         (forward_propagate_addr_into_variable_array_index): Check for
889         GIMPLE_ASSIGN before accessing the rhs code.
890
891 2009-04-03  Jason Merrill  <jason@redhat.com>
892
893         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
894
895 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
896
897         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
898         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
899         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
900         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
901         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
902         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
903         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
904         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
905         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
906         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
907         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
908         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
909         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
910         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
911         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
912         Use fr_reg_or_fp01_operand instead of fr_register_operand
913
914         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
915         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
916         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
917
918 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
919
920         PR rtl-optimization/39607
921         PR rtl-optimization/39631
922
923         Revert:
924         
925         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
926         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
927         instead of DF_LR_OUT.
928         * ira-lives.c (process_bb_node_lives): Ditto.
929         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
930         instead of DF_LR_{OUT,IN}.
931         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
932         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
933
934 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
935
936         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
937         (execute_lower_omp): Always run but take the short way out if -fopenmp
938         is not given.
939         (gate_lower_omp): Remove, forcing the pass manager to always run the
940         pass and always set PROP_gimple_lomp.
941         (pass_lower_omp): Remove gate function.
942         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
943         PROP_trees.  Instead, require it.
944         * ipa-cp.c (pass_ipa_cp): Likewise.
945         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
946         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
947         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
948         and PROP_gimple_leh.
949
950 2009-04-03  Richard Guenther  <rguenther@suse.de>
951
952         PR middle-end/13146
953         PR tree-optimization/23940
954         PR tree-optimization/33237
955         PR middle-end/33974
956         PR middle-end/34093
957         PR tree-optimization/36201
958         PR tree-optimization/36230
959         PR tree-optimization/38049
960         PR tree-optimization/38207
961         PR tree-optimization/38230
962         PR tree-optimization/38301
963         PR tree-optimization/38585
964         PR middle-end/38895
965         PR tree-optimization/38985
966         PR tree-optimization/39299
967         * tree-ssa-structalias.h: Remove.
968         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
969         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
970         (struct vuse_element_d): Remove.
971         (struct vuse_vec_d): Likewise.
972         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
973         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
974         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
975         VUSE_ELEMENT_VAR): Likewise.
976         (struct voptype_d): Likewise.
977         (NUM_VOP_FREE_BUCKETS): Likewise.
978         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
979         (struct stmt_operands_d): Remove.
980         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
981         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
982         VDEF_NUM, VDEF_VECT): Likewise.
983         (copy_virtual_operands): Remove.
984         (operand_build_cmp): Likewise.
985         (create_ssa_artificial_load_stmt): Likewise.
986         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
987         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
988         vuse_index and mayuse_index members.  Pack and move done and iter_type
989         members to the front.
990         (SSA_OP_VMAYUSE): Remove.
991         (SSA_OP_VIRTUAL_USES): Adjust.
992         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
993         (unlink_stmt_vdef): Declare.
994         (add_to_addressable_set): Remove.
995         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
996         (vrp_visit_stmt): Likewise.
997         * doc/tree-ssa.texi (Alias analysis): Update.
998         * doc/invoke.texi (max-aliased-vops): Remove docs.
999         (avg-aliased-vops): Likewise.
1000         * tree-into-ssa.c (syms_to_rename): Remove.
1001         (need_to_update_vops_p): Likewise.
1002         (need_to_initialize_update_ssa_p): Rename to ...
1003         (update_ssa_initialized_fn): ... this.  Track function we are
1004         initialized for.
1005         (symbol_marked_for_renaming): Simplify.
1006         (add_new_name_mapping): Do not set need_to_update_vops_p.
1007         (dump_currdefs): Use SYMS_TO_RENAME.
1008         (rewrite_update_stmt): Always walk all uses/defs.
1009         (dump_update_ssa): Adjust.
1010         (init_update_ssa): Take function argument.  Track what we are
1011         initialized for.
1012         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1013         (create_new_def_for): Initialize for cfun, assert we are initialized
1014         for cfun.
1015         (mark_sym_for_renaming): Simplify.
1016         (mark_set_for_renaming): Do not initialize update-ssa.
1017         (need_ssa_update_p): Simplify.  Take function argument.
1018         (name_mappings_registered_p): Assert we ask for the correct function.
1019         (name_registered_for_update_p): Likewise.
1020         (ssa_names_to_replace): Likewise.
1021         (release_ssa_name_after_update_ssa): Likewise.
1022         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1023         (dump_decl_set): Do not print a newline.
1024         (debug_decl_set): Do it here.
1025         (dump_update_ssa): And here.
1026         * tree-ssa-loop-im.c (move_computations): Adjust.
1027         (movement_possibility): Likewise.
1028         (determine_max_movement): Likewise.
1029         (gather_mem_refs_stmt): Likewise.
1030         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1031         or NAME_MEMORY_TAG.
1032         * tree-complex.c (update_all_vops): Remove.
1033         (expand_complex_move): Adjust.
1034         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1035         Simplify test for memory referencing statement.  Exclude
1036         non-invariant ADDR_EXPRs.
1037         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1038         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1039         (rdg_flag_uses): Likewise.
1040         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1041         related code.
1042         (tree_optimize_tail_calls_1): Also split the
1043         edge from the entry block if we have degenerate PHI nodes in
1044         the first basic block.
1045         * tree.c (init_ttree): Remove memory-tag related code.
1046         (tree_code_size): Likewise.
1047         (tree_node_structure): Likewise.
1048         (build7_stat): Re-write to be build6_stat.
1049         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1050         (SSA_VAR_P): Adjust.
1051         (struct tree_memory_tag): Remove.
1052         (struct tree_memory_partition_tag): Likewise.
1053         (union tree_node): Adjust.
1054         (build7): Re-write to be build6.
1055         * tree-pass.h (pass_reset_cc_flags): Remove.
1056         (TODO_update_address_taken): New flag.
1057         (pass_simple_dse): Remove.
1058         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1059         * params.h (MAX_ALIASED_VOPS): Remove.
1060         (AVG_ALIASED_VOPS): Likewise.
1061         * omp-low.c (expand_omp_taskreg): Update SSA form.
1062         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1063         aliases the lhs in a copy stmt.
1064         * tree-ssa-dse.c (struct address_walk_data): Remove.
1065         (memory_ssa_name_same): Likewise.
1066         (memory_address_same): Likewise.
1067         (get_kill_of_stmt_lhs): Likewise.
1068         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1069         unused stores.  Look through PHI nodes into post-dominated regions.
1070         (dse_optimize_stmt): Simplify.  Properly remove stores.
1071         (tree_ssa_dse): Compute dominators.
1072         (execute_simple_dse): Remove.
1073         (pass_simple_dse): Likewise.
1074         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1075         gimple_loaded_syms and gimple_stored_syms computation.
1076         * toplev.c (dump_memory_report): Dump alias and pta stats.
1077         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1078         (vn_reference_eq): Likewise.
1079         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1080         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1081         valueize_vuses): Remove.
1082         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1083         (get_def_ref_stmt_vuse): ... this.
1084         (vn_reference_lookup_2): New function.
1085         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1086         walking equivalent vuses.  Simplify.
1087         (vn_reference_lookup): Likewise.
1088         (vn_reference_insert): Likewise.
1089         (vn_reference_insert_pieces): Likewise.
1090         (visit_reference_op_call): Simplify.
1091         (visit_reference_op_load): Likewise.
1092         (visit_reference_op_store): Likewise.
1093         (init_scc_vn): Remove shared_lookup_vuses initialization.
1094         (free_scc_vn): Remove shared_lookup_vuses freeing.
1095         (sort_vuses, sort_vuses_heap): Remove.
1096         (get_ref_from_reference_ops): Export.
1097         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1098         vector with single vuse pointer.
1099         (vn_reference_lookup_pieces, vn_reference_lookup,
1100         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1101         (shared_vuses_from_stmt): Remove.
1102         (get_ref_from_reference_ops): Declare.
1103         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1104         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1105         memory-tag related code.
1106         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1107         (likely_value): Add comment, skip static-chain of call statements.
1108         (surely_varying_stmt_p): Adjust.
1109         (gimplify_and_update_call_from_tree): Likewise.
1110         (execute_fold_all_builtins): Do not rebuild alias info.
1111         (gimplify_and_update_call_from_tree): Properly update VOPs.
1112         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1113         (copy_ref_info): Remove memory-tag related code.
1114         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1115         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1116         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1117         computation.
1118         * tree-ssa-dom.c (gimple_p): Remove typedef.
1119         (eliminate_redundant_computations): Adjust.
1120         (record_equivalences_from_stmt): Likewise.
1121         (avail_expr_hash): Likewise.
1122         (avail_expr_eq): Likewise.
1123         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1124         (stmt_makes_single_load): Likewise.
1125         (stmt_makes_single_store): Likewise.
1126         * tree-ssa-alias.c: Rewrite completely.
1127         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1128         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1129         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1130         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1131         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1132         Remove public functions.
1133         (pass_reset_cc_flags): Remove.
1134         (pass_build_alias): Move ...
1135         * tree-ssa-structalias.c (pass_build_alias): ... here.
1136         * tree-ssa-alias.c (may_be_aliased): Move ...
1137         * tree-flow-inline.h (may_be_aliased): ... here.
1138         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1139         count_uses_and_derefs): Move ...
1140         * gimple.c: ... here.
1141         * gimple.h (count_uses_and_derefs): Declare.
1142         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1143         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1144         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1145         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1146         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1147         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1148         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1149         New functions.
1150         * tree-dfa.c (refs_may_alias_p): Move ...
1151         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1152         * tree-ssa-alias.h: New file.
1153         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1154         (statement_sink_location): Likewise.
1155         * opts.c (decode_options): Do not adjust max-aliased-vops or
1156         avg-aliased-vops values.
1157         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
1158         (TV_CALL_CLOBBER): Likewise.
1159         (TV_FLOW_SENSITIVE): Likewise.
1160         (TV_FLOW_INSENSITIVE): Likewise.
1161         (TV_MEMORY_PARTITIONING): Likewise.
1162         (TV_ALIAS_STMT_WALK): New timevar.
1163         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
1164         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
1165         (get_address_description): Remove memory-tag related code.
1166         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
1167         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
1168         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
1169         and immediate uses in statements.  Document.
1170         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
1171         (dump_symbols): Remove.
1172         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
1173         * alias.c (get_deref_alias_set): New function split out from ...
1174         (get_alias_set): ... here.
1175         * alias.h (get_deref_alias_set): Declare.
1176         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
1177         type parameter.  Remove restrict pointer handling.  Create a
1178         ref-all pointer in case type-based alias sets do not conflict.
1179         (vect_analyze_data_refs): Remove SMT related code.
1180         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
1181         (vectorizable_load): Likewise.
1182         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
1183         (DR_SYMBOL_TAG, DR_VOPS): Remove.
1184         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
1185         Ignore vops and SMTs.
1186         (dr_analyze_alias): Likewise..
1187         (free_data_ref): Likewise.
1188         (create_data_ref): Likewise.
1189         (analyze_all_data_dependences): Likewise.
1190         (get_references_in_stmt): Adjust.
1191         * tree-flow-inline.h (gimple_aliases_computed_p,
1192         gimple_addressable_vars, gimple_call_clobbered_vars,
1193         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
1194         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
1195         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
1196         gimple_mem_ref_stats): Remove.
1197         (gimple_vop): New function.
1198         (op_iter_next_use): Remove vuses and mayuses cases.
1199         (op_iter_next_def): Remove vdefs case.
1200         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
1201         (clear_and_done_ssa_iter): Do not set removed fields.
1202         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
1203         Assert we are not iterating over vuses or vdefs if not also
1204         iterating over uses or defs.
1205         (op_iter_init_use): Likewise.
1206         (op_iter_init_def): Likewise.
1207         (op_iter_next_vdef): Remove.
1208         (op_iter_next_mustdef): Likewise.
1209         (op_iter_init_vdef): Likewise.
1210         (compare_ssa_operands_equal): Likewise.
1211         (link_use_stmts_after): Handle vuse operand.
1212         (is_call_used): Use is_call_clobbered.
1213         (is_call_clobbered): Global variables are always call clobbered,
1214         query the call-clobbers bitmap.
1215         (mark_call_clobbered): Ignore global variables.
1216         (clear_call_clobbered): Likewise.
1217         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
1218         virtual operands sanity check.
1219         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
1220         Remove.
1221         (TARGET_MEM_REF): Remove TMR_TAG operand.
1222         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
1223         Remove call-clobber related code.
1224         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
1225         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
1226         partitions or escape reason.
1227         (get_single_def_stmt, get_single_def_stmt_from_phi,
1228         get_single_def_stmt_with_phi): Remove.
1229         (dump_referenced_vars): Tidy.
1230         (get_ref_base_and_extent): Allow bare decls.
1231         (collect_dfa_stats): Adjust.
1232         * graphite.c (rename_variables_in_stmt): Adjust.
1233         (graphite_copy_stmts_from_block): Likewise.
1234         (translate_clast): Likewise.
1235         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
1236         (EXPR_DIES): New.
1237         (translate_vuse_through_block): Use the oracle.
1238         (phi_translate_1): Adjust.
1239         (value_dies_in_block_x): Use the oracle.  Cache the outcome
1240         in EXPR_DIES.
1241         (valid_in_sets): Check if the VUSE for
1242         a REFERENCE is available.
1243         (eliminate): Do not remove stmts during elimination,
1244         instead queue and remove them afterwards.
1245         (do_pre): Do not rebuild alias info.
1246         (pass_pre): Run TODO_rebuild_alias before PRE.
1247         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
1248         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
1249         (mark_all_v_defs_stmt): Remove.
1250         (mark_all_v_defs_seq): Adjust.
1251         (sra_replace): Likewise.
1252         (scalarize_use): Likewise.
1253         (scalarize_copy): Likewise.
1254         (scalarize_init): Likewise.
1255         (scalarize_ldst): Likewise.
1256         (todoflags): Remove.
1257         (tree_sra): Do not rebuild alias info.
1258         (tree_sra_early): Adjust.
1259         (pass_sra): Run TODO_update_address_taken before SRA.
1260         * tree-predcom.c (set_alias_info): Remove.
1261         (prepare_initializers_chain): Do not call it.
1262         (mark_virtual_ops_for_renaming): Adjust.
1263         (mark_virtual_ops_for_renaming_list): Remove.
1264         (initialize_root_vars): Adjust.
1265         (initialize_root_vars_lm): Likewise.
1266         (prepare_initializers_chain): Likewise.
1267         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
1268         (may_propagate_copy_into_stmt): Likewise.
1269         (merge_alias_info): Do nothing for now.
1270         (propagate_tree_value_into_stmt): Adjust.
1271         (stmt_may_generate_copy): Likewise.
1272         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
1273         not mark symbols for renaming.
1274         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
1275         with the same statement, make sure to update the new pointed-to one.
1276         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
1277         call statements, do not mark symbols for renaming.
1278         (mark_operand_necessary): Dump something.
1279         (ref_may_be_aliased): New function.
1280         (mark_aliased_reaching_defs_necessary_1): New helper function.
1281         (mark_aliased_reaching_defs_necessary): Likewise.
1282         (mark_all_reaching_defs_necessary_1): Likewise.
1283         (mark_all_reaching_defs_necessary): Likewise.
1284         (propagate_necessity): Do not process virtual PHIs.  For
1285         non-aliased loads mark all reaching definitions as necessary.
1286         For aliased loads and stores mark the immediate dominating
1287         aliased clobbers as necessary.
1288         (visited): New global static.
1289         (perform_tree_ssa_dce): Free visited bitmap after propagating
1290         necessity.
1291         (remove_dead_phis): Perform simple dead virtual PHI removal.
1292         (remove_dead_stmt): Properly unlink virtual operands when
1293         removing stores.
1294         (eliminate_unnecessary_stmts): Schedule PHI removal after
1295         stmt removal.
1296         * tree-ssa-ter.c (is_replaceable_p): Adjust.
1297         (process_replaceable): Likewise.
1298         (find_replaceable_in_bb): Likewise.
1299         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
1300         based on the single gimple vop.
1301         (verify_flow_insensitive_alias_info): Remove.
1302         (verify_flow_sensitive_alias_info): Likewise.
1303         (verify_call_clobbering): Likewise.
1304         (verify_memory_partitions): Likewise.
1305         (verify_alias_info): Likewise.
1306         (verify_ssa): Adjust..
1307         (execute_update_addresses_taken): Export.  Update SSA
1308         manually.  Optimize only when optimizing.  Use a local bitmap.
1309         (pass_update_address_taken): Remove TODO_update_ssa, add
1310         TODO_dump_func.
1311         (pass_update_address_taken): Just use TODO_update_address_taken.
1312         (init_tree_ssa): Do not initialize addressable_vars.
1313         (verify_ssa): Verify new VUSE / VDEF properties.
1314         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
1315         Do not call verify_alias_info.
1316         (delete_tree_ssa): Clear the VUSE, VDEF operands.
1317         Do not free the loaded and stored syms bitmaps.  Reset the escaped
1318         and callused solutions.  Do not free addressable_vars.
1319         Remove memory-tag related code.
1320         (warn_uninitialized_var): Aliases are always available.
1321         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
1322         * lambda-code.c (can_put_in_inner_loop): Adjust.
1323         (can_put_after_inner_loop): Likewise.
1324         (perfect_nestify): Likewise.
1325         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
1326         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
1327         (vectorizable_conversion): Do not mark symbols for renaming.
1328         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
1329         (expand_call_inline): Unlink the calls virtual operands before
1330         replacing it.
1331         (tree_function_versioning): Do not call update_ssa if we are not
1332         updating clones.  Simplify.
1333         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
1334         (propagate_with_phi): Likewise..
1335         * tree-outof-ssa.c (create_temp): Remove memory tag and call
1336         clobber code.  Assert we are not aliased or global.
1337         * tree-flow.h: Include tree-ssa-alias.h
1338         (enum escape_type): Remove.
1339         (struct mem_sym_stats_d): Likewise.
1340         (struct mem_ref_stats_d): Likewise.
1341         (struct gimple_df): Add vop member.  Remove global_var,
1342         call_clobbered_vars, call_used_vars, addressable_vars,
1343         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
1344         escaped and callused members.
1345         (struct ptr_info_def): Remove all members, add points-to solution
1346         member pt.
1347         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
1348         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
1349         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
1350         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
1351         (tree-ssa-alias.o): Likewise.
1352         (toplev.o): Add tree-ssa-alias.h
1353         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
1354         * gimple.c (gimple_set_bb): Fix off-by-one error.
1355         (is_gimple_reg): Do not handle memory tags.
1356         (gimple_copy): Also copy virtual operands.
1357         Delay updating the statement.  Do not reset loaded and stored syms.
1358         (gimple_set_stored_syms): Remove.
1359         (gimple_set_loaded_syms): Likewise.
1360         (gimple_call_copy_skip_args): Copy the virtual operands
1361         and mark the new statement modified.
1362         * tree-ssa-structalias.c (may_alias_p): Remove.
1363         (set_uids_in_ptset): Take the alias set to prune with as
1364         parameter.  Fold in the alias test of may_alias_p.
1365         (compute_points_to_sets): Compute whether a ptr is dereferenced
1366         in a local sbitmap.
1367         (process_constraint): Deal with &ANYTHING on the lhs, reject all
1368         other ADDRESSOF constraints on the lhs.
1369         (get_constraint_for_component_ref): Assert that we don't get
1370         ADDRESSOF constraints from the base of the reference.
1371         Properly generate UNKNOWN_OFFSET for DEREF if needed.
1372         (struct variable_info): Remove collapsed_to member.
1373         (get_varinfo_fc): Remove.
1374         (new_var_info): Do not set collapsed_to.
1375         (dump_constraint): Do not follow cycles.
1376         (dump_constraint_graph): Likewise.
1377         (build_pred_graph): Likewise.
1378         (build_succ_graph): Likewise.
1379         (rewrite_constraints): Likewise.
1380         (do_simple_structure_copy): Remove.
1381         (do_rhs_deref_structure_copy): Remove.
1382         (do_lhs_deref_structure_copy): Remove.
1383         (collapse_rest_of_var): Remove.
1384         (do_structure_copy): Re-implement.
1385         (pta_stats): New global variable.
1386         (dump_pta_stats): New function.
1387         (struct constraint_expr): Make offset signed.
1388         (UNKNOWN_OFFSET): Define special value.
1389         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
1390         (solution_set_expand): New helper function split out from ...
1391         (do_sd_constraint): ... here.
1392         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
1393         (do_ds_constraint): Likewise.
1394         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
1395         and CALLUSED = *CALLUSED.
1396         (set_union_with_increment): Make inc argument signed.
1397         (type_safe): Remove.
1398         (get_constraint_for_ptr_offset): Handle unknown and negative
1399         constant offsets.
1400         (first_vi_for_offset): Handle offsets before start.  Bail
1401         out early for offsets beyond the variable extent.
1402         (first_or_preceding_vi_for_offset): New function.
1403         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
1404         Together with ESCAPED = *ESCAPED this properly computes reachability.
1405         (find_what_var_points_to): New function.
1406         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
1407         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
1408         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
1409         pt_solutions_intersect): New functions.
1410         (compute_call_used_vars): Remove.
1411         (compute_may_aliases): New main entry into PTA computation.
1412         * gimple.h (gimple_p): New typedef.
1413         (struct gimple_statement_base): Remove references_memory_p.
1414         (struct gimple_statement_with_memory_ops_base): Remove
1415         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
1416         members.
1417         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
1418         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
1419         gimple_set_references_memory): Remove.
1420         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
1421         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
1422         New functions.
1423         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
1424         (verify_expr): Allow RESULT_DECL.
1425         (gimple_duplicate_bb): Do not copy virtual operands.
1426         (gimple_duplicate_sese_region): Adjust.
1427         (gimple_duplicate_sese_tail): Likewise.
1428         (mark_virtual_ops_in_region): Remove.
1429         (move_sese_region_to_fn): Do not call it.
1430         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
1431         and pass_simple_dse.
1432         (execute_function_todo): Handle TODO_update_address_taken,
1433         call execute_update_addresses_taken for TODO_rebuild_alias.
1434         (execute_todo): Adjust.
1435         (execute_one_pass): Init dump files early.
1436         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
1437         call-clobbered.
1438         (create_general_new_stmt): Clear vops.
1439         * tree-ssa-reassoc.c (get_rank): Adjust.
1440         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
1441         symbols for renaming.
1442         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
1443         (PARAM_AVG_ALIASED_VOPS): Likewise.
1444         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
1445         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
1446         * tree-ssa-operands.c: Simplify for new virtual operand representation.
1447         (operand_build_cmp, copy_virtual_operands,
1448         create_ssa_artificial_load_stmt, add_to_addressable_set,
1449         gimple_add_to_addresses_taken): Remove public functions.
1450         (unlink_stmt_vdef): New function.
1451
1452 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1453
1454         * config.gcc (powerpc-*-linux*): Merge variants.
1455
1456 2009-04-02  Chao-ying Fu  <fu@mips.com>
1457             James Grosbach <james.grosbach@microchip.com>
1458
1459         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
1460         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
1461         cop0_sp_offset.
1462         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
1463         keep_interrupts_masked_p, use_debug_exception_return_p.
1464         (mips_attribute_table): Add interrupt, use_shadow_register_set,
1465         keep_interrupts_masked, use_debug_exception_return.
1466         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
1467         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
1468         New functions.
1469         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
1470         (mips_print_operand): Process COP0 registers to print $0 .. $31
1471         correctly for GAS to process.
1472         (mips_interrupt_extra_call_saved_reg_p): New function.
1473         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
1474         extra registers.
1475         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1476         (mips_compute_frame_info): Add supports for interrupt context that
1477         includes doubleword accumulators and COP0 registers.
1478         (mips_for_each_saved_acc): New function.
1479         (mips_for_each_saved_gpr_and_fpr): Change the function name from
1480         mips_for_each_saved_reg.
1481         (mips_save_reg): Save accumulators.
1482         (mips_kernel_reg_p): A new for_each_rtx callback.
1483         (mips_expand_prologue): Support interrupt handlers.
1484         (mips_restore_reg): Restore accumulators.
1485         (mips_expand_epilogue): Support interrupt handlers.
1486         (mips_can_use_return_insn): Return false for interrupt handlers.
1487         (mips_epilogue_uses): New function.
1488         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
1489         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
1490         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
1491         cop0_move): New instructions.
1492         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
1493         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
1494         defines.
1495         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
1496         New defines.
1497         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
1498         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
1499         interrupt handlers, we use K0 as the temporary register.
1500         (EPILOGUE_USES): Change to a function call.
1501         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
1502         handlers, we use K0 as the temporary register.
1503         
1504         * doc/extend.texi (Function Attributes): Document interrupt,
1505         use_shadow_register_set, keep_interrupts_masked,
1506         use_debug_exception_return for MIPS attributes.
1507
1508 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1509
1510         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
1511         Remove a number of t-files from tmake_file.
1512         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
1513         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
1514         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1515         target_prototype, not TARGET_PROTOTYPE.
1516         (LINK_OS_GNU_SPEC): Define.
1517         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
1518         and darwin-ldoubdle.c.
1519
1520 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1521
1522         PR driver/39293
1523         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
1524         (cpp_options): Ditto.
1525         (default_compilers): Ditto.
1526         (display_help): Ditto.
1527         (process_command): Ditto.
1528         (do_spec_1): Ditto.
1529         (set_input): Use lbasename instead of duplicate code.
1530         (save_temps_prefix): New static for -save-temps=obj.
1531         (save_temps_length): Ditto.
1532         
1533         * doc/invoke.texi (-save-temps=obj): Document new variant to
1534         -save-temps switch.
1535
1536 2009-04-02  Jeff Law  <law@redhat.com>
1537
1538         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
1539         variable.
1540
1541 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1542
1543         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
1544         * configure: Regenerated.
1545
1546 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1547
1548         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
1549         share the argument list.
1550
1551 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1552
1553         Merge
1554
1555         2009-02-12  Diego Novillo  <dnovillo@google.com>
1556
1557         * varpool.c (debug_varpool): New.
1558         * cgraph.h (debug_varpool): Declare.
1559
1560 2009-04-02  Jan Hubicka  <jh@suse.cz>
1561
1562         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1563         pass.
1564
1565 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1566
1567         * config/i386/i386.c (ix86_abi): Move initialization to ...
1568         (override_options): Here.
1569
1570 2009-04-02  Christian Bruel  <christian.bruel@st.com>
1571
1572         * config/sh/sh.c (sh_dwarf_register_span): New function.
1573         (TARGET_DWARF_REGISTER_SPAN): Define.
1574         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1575         
1576 2009-04-02  Ira Rosen  <irar@il.ibm.com>
1577
1578         PR tree-optimization/39595
1579         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
1580         interleaved loads group is not  greater than the SLP group size.
1581
1582 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1583
1584         * builtins.c (is_builtin_name): New.
1585         (called_as_built_in): Use is_builtin_name.
1586         * tree.h (is_builtin_name): New.
1587         * varasm.c (incorporeal_function_p): Use is_builtin_name
1588
1589 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
1590
1591         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1592
1593 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
1594
1595         PR c++/26693
1596         * c-decl.c: (clone_underlying_type): Move this ...
1597         * c-common.c (set_underlying_type): ... here.
1598         Also, make sure the function properly sets TYPE_STUB_DECL() on
1599         the newly created typedef variant type.
1600         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1601         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
1602         points.
1603
1604 2009-04-02  Richard Guenther  <rguenther@suse.de>
1605
1606         PR tree-optimization/37221
1607         * tree-flow.h (degenerate_phi_result): Declare.
1608         * tree-ssa-dom.c (degenerate_phi_result): Export.
1609         * tree-scalar-evolution.c (analyze_initial_condition): If
1610         the initial condition is defined by a degenerate PHI node
1611         use the degenerate value.
1612
1613 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
1614
1615         PR rtl-optimization/39588
1616         * combine.c (merge_outer_ops): Do not set the constant when this
1617         is not necessary.
1618         (simplify_shift_const_1): Do not modify it either in this case.
1619
1620 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1621
1622         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1623         tuning is deprecated if -mtune value is set to an Itanium1 variant.
1624
1625 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1626
1627         PR c/29027
1628         * c-lex.c (interpret_float): Default (no suffix) is double.
1629
1630 2009-04-1  Xinliang David Li  <davidxl@google.com>
1631
1632         * config/i386/i386.c (legitimate_constant_p): Recognize
1633         all one vector constant.
1634
1635 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1636
1637         * gcc/config/vax/vax.c: Add #includes to silence warnings.
1638         Change #include order to silence two warnings.
1639
1640 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1641
1642         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1643         (ASM_SPEC): Pass -k to the assembler for PIC code.
1644
1645 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1646
1647         * gcc/config.gcc: Add vax-*-linux* to the switch.
1648         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1649         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1650
1651 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1652
1653         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1654         Use predicate macros instead of GET_CODE() == foo.
1655         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1656         ashlsi3, rotrsi3, <unnamed>): Likewise.
1657
1658 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1659
1660         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1661         jbbccihi, jbbccisi): Remova trailing whitespace.
1662         * gcc/config/vax/constraints.md: Likewise.
1663         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1664         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1665         * gcc/config/vax/predicates.md: Likewise.
1666         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1667         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1668         * gcc/config/vax/vax.h: Likewise.
1669         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1670
1671 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1672
1673         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1674         (indirectable_address_p, adjacent_operands_p): Add spaces around
1675         braces.
1676         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1677
1678 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1679
1680         * gcc/config/vax/vax.c (legitimate_constant_address_p,
1681         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1682         index_term_p, reg_plus_index_p, legitimate_address_p,
1683         vax_mode_dependent_address_p): Update comments to match functions
1684         modified by the recent int->bool conversion.
1685
1686 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1687
1688         * gcc/config/vax/builtins.md: Update copyright message.
1689         * gcc/config/vax/constraints.md: Likewise.
1690         * gcc/config/vax/netbsd-elf.h: Likewise.
1691         * gcc/config/vax/predicates.md: Likewise.
1692         * gcc/config/vax/vax-protos.h: Likewise.
1693         * gcc/config/vax/vax.c: Likewise.
1694         * gcc/config/vax/vax.h: Likewise.
1695         * gcc/config/vax/vax.md: Likewise.
1696         * gcc/config/vax/vax.opt: Likewise.
1697
1698 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1699
1700         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1701         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1702         * gcc/config/vax/constraints.md (B, R): Likewise.
1703         * gcc/config/vax/predicates.md (external_memory_operand,
1704         nonimmediate_addsub_di_operand): Likewise.
1705         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1706         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1707         untyped_call): Likewise.
1708
1709 2009-04-01  Matt Thomas <matt@3am-software.com>
1710
1711         * config/vax/predicates.md: New file.
1712         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
1713         external_const_operand, nonsymbolic_operand, external_memory_operand,
1714         indirect_memory_operand, indexed_memory_operand,
1715         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1716         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1717         predicate.
1718         * config/vax/constraints.md: New file.
1719         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
1720         New constraint.
1721         * config/vax/builtins.md: New file.
1722         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
1723         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
1724         jbbccisi): Define.
1725         * config/vax/vax.opt (mqmath): Add option.
1726         * config/vax/vax.md (isfx): Extend with DI.
1727         (VAXintQH, VAXintQHSD): Define.
1728         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1729         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1730         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1731         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
1732         (movdi): Update constraints and use vax_output_int_move().
1733         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
1734         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
1735         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
1736         nonlocal_goto): New.
1737         (mov<mode>): Extend accepted operand types.
1738         (subdi3_old): Rename from subdi3, change update constraints and use
1739         a new implementation.
1740         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1741         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1742         MOVE_RATIO, CLEAR_RATIO): Define.
1743         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1744         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1745         (PRINT_OPERAND): Redefine using a function instead of inlined code.
1746         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1747         (split_quadword_operands): Make static and really allow variable
1748         splitting.
1749         (print_operand_address): Update for PIC generation.
1750         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1751         indexable_address_p, fixup_mathdi_operand,
1752         vax_expand_addsub_di_operands, adjacent_operands_p): New.
1753         (vax_float_literal, legitimate_constant_p,
1754         indirectable_constant_address_p, index_term_p,
1755         reg_plus_index_p): Return bool instead of int.
1756         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1757         where needed.
1758         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1759         generation.
1760         (vax_output_conditional_branch): Indent.
1761         (legitimate_constant_address_p, indirectable_constant_address_p,
1762         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1763         vax_mode_dependent_address_p): Return bool instead of int, update for
1764         PIC generation.
1765         * config/vax/vax-protos.h (legitimate_constant_address_p,
1766         legitimate_constant_p, legitimate_address_p,
1767         vax_mode_dependent_address_p): Change declaration to bool.
1768         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1769         vax_expand_addsub_di_operands, vax_output_int_subtract,
1770         vax_output_movmemsi): Declare.
1771         (split_quadword_operands, vax_float_literal): Delete declaration.
1772         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1773         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1774         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1775         ASM_OUTPUT_DWARF_PCREL): Define.
1776         (ASM_SPEC): Change definition to allow PIC generation.
1777
1778 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
1779
1780         * doc/sourcebuild.texi: Update front-end requirements.
1781
1782 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1783
1784         PR target/39226
1785         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1786         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1787         (booldi3_internal3): Use boolean_or_operator instead of
1788         boolean_operator.
1789
1790 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
1791
1792         PR c/39605
1793         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
1794         declarator whose size is not an integer constant expression but
1795         folds to an integer constant, then treat it as a constant
1796         subsequently.
1797
1798 2009-04-01  Richard Guenther  <rguenther@suse.de>
1799
1800         * fold-const.c (fold_plusminus_mult_expr): Do not fold
1801         i * 4 + 2 to (i * 2 + 1) * 2.
1802
1803 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1804
1805         PR c/37772
1806         * c-parser.c (c_parser_asm_statement): Skip until close paren and
1807         return if c_parser_asm_string_literal returned NULL.
1808
1809 2009-04-01  Nick Clifton  <nickc@redhat.com>
1810
1811         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
1812         already defined.
1813         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
1814         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
1815         other typedefs to avoid conflicts with libgcc2.c.  Define labels
1816         to gain 16-bit bit-manipulation functions from libgcc2.c and then
1817         include it.
1818         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
1819         to gain 16-bit trapping arithmetic functions from libgcc2.c and
1820         then include it.
1821
1822 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
1823
1824         * varasm.c (default_function_rodata_section): Declare DOT as
1825         const char*.
1826
1827 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
1828             Andrey Galkin <agalkin@hypercom.com>
1829
1830         PR/39492
1831         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
1832         Make object_name unique for each process.
1833
1834 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1835
1836         PR other/39591
1837         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
1838         addressable variables in the parallel that could go out of scope while
1839         running queued tasks.
1840
1841 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
1842
1843         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
1844         (CASE_VALUES_THRESHOLD): Redefine.
1845         * config/avr/avr.c (avr_override_options): Remove initialization of
1846         avr_case_values_threshold variable.
1847         (avr_case_values_threshold): Remove variable. Add new function.
1848         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
1849         * config/avr/avr.opt (mno-tablejump): Remove option.
1850         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
1851
1852 2009-04-01  DJ Delorie  <dj@redhat.com>
1853
1854         * varasm.c (default_function_rodata_section): Don't assume
1855         anything about where the first '.' in the section name is.
1856
1857 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
1858
1859         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
1860         rs6000_emit_stack_tie.
1861
1862 2009-03-31  Ian Lance Taylor  <iant@google.com>
1863
1864         * tree-eh.c (tree_remove_unreachable_handlers): Compare
1865         gimple_code with GIMPLE_RESX, not RESX.
1866
1867 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1868
1869         * c-common.c (c_get_ident): New.
1870         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
1871
1872 2009-04-01  Ben Elliston  <bje@au.ibm.com>
1873
1874         * config/rs6000/sysv4.opt (msdata): Improve option description.
1875
1876 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
1877
1878         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
1879         (divdf3_internal_lat): Remove.
1880         (divxf3_internal_lat): Remove.
1881         (divxf3_internal_thr): Remove.
1882         (divxf): Use divxf3_internal.
1883         * config/ia64/div.md (divsf3_internal_lat): New.
1884         (divdf3_internal_lat): New.
1885         (divxf3_internal): New.
1886
1887 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1888
1889         PR c/448
1890         * Makefile.in (USE_GCC_STDINT): Define.
1891         (stmp-int-hdrs): Install stdint.h if applicable.
1892         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
1893         if known.
1894         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
1895         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
1896         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1897         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1898         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1899         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1900         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1901         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1902         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1903         (c_common_nodes_and_builtins): Initialize
1904         underlying_wchar_type_node.  Do not initialize
1905         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
1906         nodes for new types.
1907         (c_stddef_cpp_builtins): Define macros for new types.
1908         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
1909         Remove.
1910         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
1911         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
1912         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
1913         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
1914         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
1915         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
1916         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
1917         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
1918         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
1919         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
1920         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
1921         int16_type_node, int32_type_node, int64_type_node,
1922         uint8_type_node, uint16_type_node, c_uint32_type_node,
1923         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
1924         int_least32_type_node, int_least64_type_node,
1925         uint_least8_type_node, uint_least16_type_node,
1926         uint_least32_type_node, uint_least64_type_node,
1927         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
1928         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
1929         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
1930         uintptr_type_node): Define.
1931         * c-cppbuiltin.c (builtin_define_constants,
1932         builtin_define_type_minmax): New.
1933         (builtin_define_stdint_macros): Define more macros.
1934         (c_cpp_builtins): Define more limit macros.
1935         (type_suffix): New.
1936         (builtin_define_type_max): Define in terms of
1937         builtin_define_type_minmax.  Remove is_long parameter.  All
1938         callers changed.
1939         * config.gcc (use_gcc_stdint): Define.
1940         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
1941         Add newlib-stdint.h for generic targets.
1942         * config/glibc-stdint.h, config/newlib-stdint.h,
1943         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
1944         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
1945         * config/score/score.h (UINTPTR_TYPE): Define.
1946         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1947         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1948         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1949         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1950         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1951         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1952         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1953         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1954         * config/spu/spu.h (STDINT_LONG32): Define.
1955         * configure.ac (use_gcc_stdint): Substitute.
1956         * configure: Regenerate.
1957         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
1958         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
1959         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
1960         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
1961         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
1962         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
1963         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
1964         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
1965         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
1966         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
1967         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
1968         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
1969         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
1970         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
1971         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
1972         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
1973         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
1974         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
1975         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
1976         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
1977         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
1978         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
1979         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1980         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1981         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1982         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1983         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1984         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1985         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
1986
1987 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1988
1989         * loop-iv.c (suitable_set_for_replacement): Renamed from
1990         simplify_using_assignment; changed to return bool and to accept new
1991         args DEST and SRC.  Return true iff we find a source/destination pair
1992         that can be used to make a replacement, and fill SRC and DEST if so.
1993         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
1994         changed.
1995         (simplify_using_initial_values): Deal with altered regs here and track
1996         more precisely the effect they have on the validity of our expression.
1997
1998         * loop-iv.c (simplify_using_condition): A condition of the form
1999         (EQ REG CONST) can be used to simply make a substitution.
2000         (simplify_using_initial_values): Keep track of conditions we have seen
2001         and keep using them to simplify new expressions, while applying the
2002         same substitutions to them as to the expression.
2003
2004         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2005         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2006         GEU/LTU reversed.
2007
2008         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2009         changed.  Use this when trying to improve the upper bound.
2010         Generate the comparison by using simplify_gen_relational.
2011
2012         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2013
2014         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2015         functions.
2016         (simplify_using_assignment, simplify_using_initial_values): Call 
2017         replace_in_expr to make replacements.  Call replace_single_def_regs
2018         once on the initial version of the expression.
2019
2020 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2021
2022         PR target/27237
2023         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2024         
2025 2009-03-31  Richard Guenther  <rguenther@suse.de>
2026
2027         PR middle-end/31029
2028         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2029         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2030
2031 2009-03-31  Richard Guenther  <rguenther@suse.de>
2032
2033         * tree.h (div_if_zero_remainder): Declare.
2034         * fold-const.c (div_if_zero_remainder): Export.
2035         * tree-ssa-forwprop.c
2036         (forward_propagate_addr_into_variable_array_index): Handle
2037         constant array index addition outside of the variable index.
2038
2039 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2040
2041         PR target/39592
2042         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2043         define_splits, floatunssi<mode>2): Require x87 conversions from
2044         DImode to be permitted.
2045
2046 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2047
2048         PR preprocessor/15638
2049         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2050
2051 2009-03-31  Richard Guenther  <rguenther@suse.de>
2052
2053         PR middle-end/23401
2054         PR middle-end/27810
2055         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2056         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2057         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2058         a separate statement.
2059         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2060         (lookup_tmp_var): Likewise.
2061         (is_gimple_formal_tmp_or_call_rhs): Remove.
2062         (is_gimple_reg_or_call_rhs): Rename to ...
2063         (is_gimple_reg_rhs_or_call): ... this.
2064         (is_gimple_mem_or_call_rhs): Rename to ...
2065         (is_gimple_mem_rhs_or_call): ... this.
2066         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2067         DECL_GIMPLE_REG_P only if is_formal is true.
2068         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2069         for non-proper post-modify expression gimplification.
2070         (gimplify_self_mod_expr): For post-modify expressions gimplify
2071         the lvalue to a minimal lvalue.
2072         (rhs_predicate_for): Remove formal temp case.
2073         (gimplify_modify_expr_rhs): Likewise.
2074         (gimplify_addr_expr): Use is_gimple_reg.
2075         (gimplify_expr): Remove formal temp cases.
2076         (gimple_regimplify_operands): Likewise.
2077         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2078         and FILTER_EXPR like constants.
2079         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2080         is_gimple_reg.
2081         (is_gimple_formal_tmp_rhs): Remove.
2082         (is_gimple_reg_rhs): Remove special casing.
2083         (is_gimple_mem_rhs): Fix.
2084         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2085         (is_gimple_formal_tmp_var): Remove.
2086         (is_gimple_formal_tmp_reg): Likewise.
2087         (is_gimple_min_lval): Allow invariant component ref parts.
2088         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2089         is_gimple_formal_tmp_reg): Remove declarations.
2090         * tree-cfg.c (verify_expr): Verify that variables with address
2091         taken do not have DECL_GIMPLE_REG_P set.
2092         * tree-mudflap.c (mf_build_check_statement_for): Use
2093         force_gimple_operand instead of gimplify_expr.
2094
2095 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2096
2097         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2098         schedulable rows to compute_split_row.
2099
2100 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2101
2102         PR target/31635
2103         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2104         OPT_mvrsave.
2105
2106 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2107
2108         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2109         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2110         * configure: Regenerate.
2111         * config.in: Regenerate.
2112         * config/rs6000/rs6000.opt (mtls-markers): Add.
2113         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2114         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2115         (tls_ld_aix, tls_ld_sysv): Likewise.
2116         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2117         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2118
2119 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2120
2121         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2122
2123 2009-03-30  Jan Hubicka  <jh@suse.cz>
2124
2125         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2126         out of RESX.
2127         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2128         detection and label handling.
2129
2130 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2131
2132         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2133         left_conflicts_size.
2134         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2135         ALLOCNO_LEFT_CONFLICTS_SIZE.
2136
2137         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2138         remove_allocno_from_bucket_and_push,
2139         allocno_spill_priority_compare, push_allocnos_to_stack,
2140         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2141         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2142         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2143         setup_allocno_left_conflicts_size.
2144         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2145         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2146         setup_allocno_left_conflicts_size instead of
2147         setup_allocno_left_conflicts_num.
2148
2149         * ira-build.c (ira_create_allocno): Use
2150         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2151         ALLOCNO_LEFT_CONFLICTS_NUM.
2152                 
2153 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2154
2155         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2156         instead of DF_LR_OUT.
2157
2158         * ira-lives.c (process_bb_node_lives): Ditto.
2159
2160         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2161         instead of DF_LR_{OUT,IN}.
2162
2163         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2164
2165         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2166
2167 2009-03-30  Jan Hubicka  <jh@suse.cz>
2168
2169         * except.c (label_to_region_map): Fix thinko.
2170
2171 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
2172
2173         PR middle-end/38237
2174         * tree.h (tree_find_value): New declaration.
2175         * tree.c (tree_find_value): New function.
2176         * varasm.c (assemble_external): Avoid duplicate entries on lists.
2177
2178 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2179
2180         PR debug/39563
2181         * c-decl.c (struct c_binding): Add locus field.
2182         (bind): Add locus argument, set locus field from it.
2183         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
2184         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
2185         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
2186         implicitly_declare, undeclared_variable, lookup_label,
2187         declare_label, c_make_fname_decl, c_builtin_function,
2188         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
2189         bind callers.
2190
2191 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2192
2193         PR target/38781
2194         * config/i386/i386.c (classify_argument): Check total size of
2195         structure.
2196
2197 2009-03-30  Martin Jambor  <mjambor@suse.cz>
2198
2199         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
2200         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
2201         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
2202         respectively.
2203
2204         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
2205         seen_variable_array_ref while also traversing a union.
2206
2207         * tree-inline.c (optimize_inline_calls): Do not call
2208         cgraph_node_remove_callees.
2209         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
2210         (pass_remove_cgraph_callee_edges): New variable.
2211         * passes.c (init_optimization_passes): Add
2212         pass_remove_cgraph_callee_edges after early inlining and before all
2213         late intraprocedural passes.
2214
2215         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
2216
2217 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2218
2219         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
2220         Fix typos in names.
2221
2222 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2223
2224         * combine.c (simplify_comparison): Use have_insn_for.
2225         * dojump.c (do_jump): Likewise.
2226
2227 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2228
2229         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
2230         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
2231         sparc_compare_op0 like sparc_compare_emitted used to be handled.
2232         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
2233         instead of sparc_compare_emitted.
2234         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
2235         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
2236         instead of sparc_compare_emitted.
2237
2238 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2239
2240         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
2241         enter/exit cfglayout mode.
2242         (pass_partition_block): Require it.
2243         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
2244         (combine_instructions): Track basic blocks instead of labels.
2245         (update_cfg_for_uncondjump): New.
2246         (try_combine): Use it.  Update jumps after rescanning.
2247         (pass_combine): Require PROP_cfglayout.
2248         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
2249
2250 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2251
2252         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
2253         Provide/destroy PROP_cfglayout respectively.
2254         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
2255         * tree-pass.h (PROP_cfglayout): New.
2256
2257 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2258
2259         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
2260         fold_convert_const_fixed_from_fixed,
2261         fold_convert_const_fixed_from_int,
2262         fold_convert_const_fixed_from_real, fold_negate_const): Do not
2263         set TREE_CONSTANT_OVERFLOW.
2264         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
2265         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
2266
2267 2009-03-30  Ira Rosen  <irar@il.ibm.com>
2268
2269         * tree-vect-loop-manip.c: New file.
2270         * tree-vectorizer.c: Update documentation and included files.
2271         (vect_loop_location): Make extern.
2272         (rename_use_op): Move to tree-vect-loop-manip.c
2273         (rename_variables_in_bb, rename_variables_in_loop, 
2274         slpeel_update_phis_for_duplicate_loop, 
2275         slpeel_update_phi_nodes_for_guard1,
2276         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
2277         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
2278         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2279         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
2280         find_loop_location): Likewise.
2281         (new_stmt_vec_info): Move to tree-vect-stmts.c.
2282         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
2283         get_vectype_for_scalar_type, vect_is_simple_use,
2284         supportable_widening_operation, supportable_narrowing_operation):
2285         Likewise.
2286         (bb_in_loop_p): Move to tree-vect-loop.c.
2287         (new_loop_vec_info, destroy_loop_vec_info, 
2288         reduction_code_for_scalar_code, report_vect_op, 
2289         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
2290         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
2291         (vect_supportable_dr_alignment): Likewise.
2292         * tree-vectorizer.h (tree-data-ref.h): Include.
2293         (vect_loop_location): Declare.
2294         Reorganize function declarations according to the new file structure.
2295         * tree-vect-loop.c: New file.
2296         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
2297         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
2298         * tree-vect-data-refs.c: New file.
2299         * tree-vect-patterns.c (timevar.h): Don't include.
2300         * tree-vect-stmts.c: New file.
2301         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
2302         tree-vect-slp.c, tree-vect-loop.c.
2303         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
2304         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
2305         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
2306         (tree-vect-analyze.o): Remove.
2307         (tree-vect-transform.o): Likewise.
2308         (tree-vect-data-refs.o): Add rule.
2309         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
2310         tree-vect-slp.o): Likewise.
2311         (tree-vect-patterns.o): Remove redundant dependencies.
2312         (tree-vectorizer.o): Likewise.
2313         * tree-vect-slp.c: New file.
2314
2315 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2316
2317         * optc-gen.awk: Warn if an option flag has multiple different
2318         help strings.
2319
2320 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
2321
2322         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
2323         -floop-block): Document dependences on PPL, CLooG and Graphite.
2324
2325 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2326
2327         PR rtl-optimization/323
2328         * c-common.c (c_fully_fold, convert_and_check,
2329         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
2330         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
2331         * c-common.def (EXCESS_PRECISION_EXPR): New.
2332         * c-cppbuiltin.c (builtin_define_float_constants): Define
2333         constants with enough digits for long double.
2334         * c-lex.c (interpret_float): Interpret constant with excess
2335         precision where appropriate.
2336         * c-opts.c (c_common_post_options): Set
2337         flag_excess_precision_cmdline.  Give an error for
2338         -fexcess-precision=standard for C++ for processors where the
2339         option is significant.
2340         * c-parser.c (c_parser_conditional_expression): Handle excess
2341         precision in condition.
2342         * c-typeck.c (convert_arguments): Handle arguments with excess
2343         precision.
2344         (build_unary_op): Move excess precision outside operation.
2345         (build_conditional_expr): Likewise.
2346         (build_compound_expr): Likewise.
2347         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
2348         (build_modify_expr): Handle excess precision in RHS.
2349         (convert_for_assignment): Handle excess precision in converted
2350         value.
2351         (digest_init, output_init_element, process_init_element): Handle
2352         excess precision in initializer.
2353         (c_finish_return): Handle excess precision in return value.
2354         (build_binary_op): Handle excess precision in operands and add
2355         excess precision as needed for operation.
2356         * common.opt (-fexcess-precision=): New option.
2357         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
2358         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2359         For standard excess precision, output explicit conversion to and
2360         truncation from XFmode.
2361         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
2362         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
2363         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
2364         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
2365         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
2366         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
2367         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
2368         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
2369         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
2370         define_splits, sqrt<mode>2): Disable where appropriate for
2371         standard excess precision.
2372         * convert.c (convert_to_real): Do not shorten arithmetic to type
2373         for which excess precision would be used.
2374         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
2375         * doc/invoke.texi (-fexcess-precision=): Document option.
2376         (-mfpmath=): Correct index entry.
2377         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
2378         flag_excess_precision): New.
2379         * langhooks.c (lhd_post_options): Set
2380         flag_excess_precision_cmdline.
2381         * opts.c (common_handle_option): Handle -fexcess-precision=.
2382         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
2383         init_excess_precision): New.
2384         (lang_dependent_init_target): Call init_excess_precision.
2385         * tree.c (excess_precision_type): New.
2386         * tree.h (excess_precision_type): Declare.
2387
2388 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2389
2390         PR c/35235
2391         * c-typeck.c (build_component_ref): Do not copy qualifiers from
2392         non-lvalue to component.
2393
2394 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2395
2396         PR preprocessor/34695
2397         * Makefile.in (c-opts.o): Depend on c-tree.h.
2398         * c-common.c: Move down include of diagnostic.h.
2399         (done_lexing, c_cpp_error): New.
2400         * c-common.h (done_lexing): Declare.
2401         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
2402         (parse_in).
2403         * c-opts.c: Include c-tree.h.
2404         (c_common_init_options): Set preprocessor error callback.
2405         (c_common_handle_option): Do not set preprocessor
2406         inhibit_warnings, warnings_are_errors, warn_system_headers,
2407         pedantic_errors or inhibit_warnings flags.
2408         (c_common_post_options): Do not check cpp_errors (parse_in).
2409         (c_common_finish): Do not output dependencies if there were
2410         errors.  Do not check return value of cpp_finish.
2411         * c-ppoutput.c (pp_file_change): Set input_location.
2412         * c-tree.h (c_cpp_error): Declare.
2413         * diagnostic.c (diagnostic_set_info_translated): Also initialize
2414         override_column.
2415         (diagnostic_build_prefix): Check override_column.
2416         * diagnostic.h (diagnostic_info): Add override_column field.
2417         (diagnostic_override_column): Define.
2418
2419 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
2420
2421         * c-common.c (c_expand_expr, c_staticp): Remove.
2422         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
2423         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
2424         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
2425         * c-gimplify.c (gimplify_compound_literal_expr,
2426         optimize_compound_literals_in_ctor): Remove.
2427         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
2428         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
2429         * c-semantics.c (emit_local_var): Remove.
2430
2431         * langhooks-def.h (lhd_expand_expr): Remove.
2432         * langhooks.c (lhd_expand_expr): Remove.
2433         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
2434
2435         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
2436         handling from c-semantics.c; don't call into langhook.
2437         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
2438         * gimplify.c (gimplify_compound_literal_expr,
2439         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
2440         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
2441         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
2442         as was done in c-gimplify.c.
2443         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
2444         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
2445         Move from c-common.h.
2446         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2447
2448         * tree.c (staticp): Do not call langhook.
2449         * langhooks.c (lhd_staticp): Delete.
2450         * langhooks-def.h (lhd_staticp): Delete prototype.
2451         (LANG_HOOKS_STATICP): Delete.
2452         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
2453
2454         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
2455         instead of DECL_STMTs.
2456
2457 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2458
2459         PR c/456
2460         PR c/5675
2461         PR c/19976
2462         PR c/29116
2463         PR c/31871
2464         PR c/35198
2465         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
2466         void_type_node.
2467         (fold_call_expr): Return a NOP_EXPR from folding rather than the
2468         contained expression.
2469         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
2470         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
2471         conditional expressions for C.
2472         (decl_constant_value_for_optimization): Move from
2473         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
2474         whether optimizing and that the expression is a VAR_DECL not of
2475         array type instead of doing such checks in the caller.  Do not
2476         check pedantic.  Call gcc_unreachable for C++.
2477         * c-common.def (C_MAYBE_CONST_EXPR): New.
2478         * c-common.h (c_fully_fold, c_save_expr,
2479         decl_constant_value_for_optimization): New prototypes.
2480         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2481         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2482         EXPR_INT_CONST_OPERANDS): Define.
2483         * c-convert.c (convert): Strip nops from expression.
2484         * c-decl.c (groktypename): Take extra parameters expr and
2485         expr_const_operands.  Update call to grokdeclarator.
2486         (start_decl): Update call to grokdeclarator.  Add statement for
2487         expressions used in type of decl.
2488         (grokparm): Update call to grokdeclarator.
2489         (push_parm_decl): Update call to grokdeclarator.
2490         (build_compound_literal): Add parameter non_const and build a
2491         C_MAYBE_COSNT_EXPR if applicable.
2492         (grokdeclarator): Take extra parameters expr and
2493         expr_const_operands.  Track expressions used in declaration
2494         specifiers and declarators.  Fold array sizes and track whether
2495         they are constant expressions and whether they are integer
2496         constant expressions.
2497         (parser_xref_tag): Set expr and expr_const_operands fields in
2498         return value.
2499         (grokfield): Update call to grokdeclarator.
2500         (start_function): Update call to grokdeclarator.
2501         (build_null_declspecs): Set expr and expr_const_operands fields in
2502         return value.
2503         (declspecs_add_type): Handle expressions in typeof specifiers.
2504         * c-parser.c (c_parser_declspecs): Set expr and
2505         expr_const_operands fields for declaration specifiers.
2506         (c_parser_enum_specifier): Likewise.
2507         (c_parser_struct_or_union_specifier): Likewise.
2508         (c_parser_typeof_specifier): Likewise.  Update call to
2509         groktypename.  Fold expression as needed.  Return expressions with
2510         type instead of adding statements.
2511         (c_parser_attributes): Update calls to c_parser_expr_list.
2512         (c_parser_statement_after_labels): Fold expression before passing
2513         to objc_build_throw_stmt.
2514         (c_parser_condition): Fold expression.
2515         (c_parser_asm_operands): Fold expression.
2516         (c_parser_conditional_expression): Use c_save_expr.  Update call
2517         to build_conditional_expr.
2518         (c_parser_alignof_expression): Update call to groktypename.
2519         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
2520         original_code.  Fold expression argument of va_arg.  Create
2521         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
2522         argument to va_arg.  Update calls to groktypename.  Fold array
2523         index for offsetof.  Verify that first argument to
2524         __builtin_choose_expr has integer type.
2525         (c_parser_postfix_expression_after_paren_type): Update calls to
2526         groktypename and build_compound_literal.  Handle expressions with
2527         side effects in type name.
2528         (c_parser_postfix_expression_after_primary): Update call to
2529         c_parser_expr_list.  Set original_code for calls to
2530         __builtin_constant_p.
2531         (c_parser_expr_list): Take extra parameter fold_p.  Fold
2532         expressions if requested.
2533         (c_parser_objc_type_name): Update call to groktypename.
2534         (c_parser_objc_synchronized_statement): Fold expression.
2535         (c_parser_objc_receiver): Fold expression.
2536         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
2537         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
2538         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
2539         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
2540         (struct c_typespec): Add elements expr and expr_const_operands.
2541         (struct c_declspecs): Add elements expr and expr_const_operands.
2542         (groktypename, build_conditional_expr, build_compound_literal):
2543         Update prototypes.
2544         (in_late_binary_op): Declare.
2545         * c-typeck.c (note_integer_operands): New function.
2546         (in_late_binary_op): New variable.
2547         (decl_constant_value_for_broken_optimization): Move to c-common.c
2548         and rename to decl_constant_value_for_optimization.
2549         (default_function_array_conversion): Do not strip nops.
2550         (default_conversion): Do not call
2551         decl_constant_value_for_broken_optimization.
2552         (build_array_ref): Do not fold result.
2553         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
2554         result when operand is a VLA.
2555         (c_expr_sizeof_type): Update call to groktypename.  Handle
2556         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
2557         result when operand names a VLA type.
2558         (build_function_call): Update call to build_compound_literal.
2559         Only fold result for calls to __builtin_* functions.  Strip
2560         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
2561         the function designator.
2562         (convert_arguments): Fold arguments.  Update call to
2563         convert_for_assignment.
2564         (build_unary_op): Handle increment and decrement of
2565         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
2566         decrement earlier.  Fold operand of increment and decrement.
2567         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
2568         built for integer operand.  Wrap returns that are INTEGER_CSTs
2569         without being integer constant expressions or that have integer
2570         constant operands without being INTEGER_CSTs.
2571         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2572         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
2573         result is an integer constant expression or can be used in
2574         unevaluated parts of one and avoid folding and wrap as
2575         appropriate.  Fold operands before possibly doing -Wsign-compare
2576         warnings.
2577         (build_compound_expr): Wrap result for C99 if operands can be used
2578         in integer constant expressions.
2579         (build_c_cast): Update call to digest_init.  Do not ignore
2580         overflow from casting floating-point constants to integers.  Wrap
2581         results that could be confused with integer constant expressions,
2582         null pointer constants or floating-point constants.
2583         (c_cast_expr): Update call to groktypename.  Handle expressions
2584         included in type name.
2585         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
2586         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
2587         Update calls to convert_for_assignment.
2588         (convert_for_assignment): Take new parameter
2589         null_pointer_constant.  Do not strip nops or call
2590         decl_constant_value_for_broken_optimization.  Set
2591         in_late_binary_op for conversions to boolean.
2592         (store_init_value): Update call to digest_init.
2593         (digest_init): Take new parameter null_pointer_constant.  Do not
2594         call decl_constant_value_for_broken_optimization.  pedwarn for
2595         initializers not constant expressions.  Update calls to
2596         convert_for_assignment.
2597         (constructor_nonconst): New.
2598         (struct constructor_stack): Add nonconst element.
2599         (really_start_incremental_init, push_init_level, pop_init_level):
2600         Handle constructor_nonconst and nonconst element.
2601         (set_init_index): Call constant_expression_warning for array
2602         designators.
2603         (output_init_element): Fold value.  Set constructor_nonconst as
2604         applicable.  pedwarn for initializers not constant expressions.
2605         Update call to digest_init.  Call constant_expression_warning
2606         where constant initializers are required.
2607         (process_init_element): Use c_save_expr.
2608         (c_finish_goto_ptr): Fold expression.
2609         (c_finish_return): Fold return value.  Update call to
2610         convert_for_assignment.
2611         (c_start_case): Fold switch expression.
2612         (c_process_expr_stmt): Fold expression.
2613         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
2614         ensure statement expression is not evaluated in constant expression.
2615         (build_binary_op): Track whether results are integer constant
2616         expressions or may occur in such, disable folding and wrap results
2617         as applicable.  Fold operands for -Wsign-compare warnings unless
2618         in_late_binary_op.
2619         (c_objc_common_truthvalue_conversion): Handle results folded to
2620         integer constants that are not integer constant expressions.
2621         * doc/extend.texi: Document when typeof operands are evaluated,
2622         that condition of __builtin_choose_expr is an integer constant
2623         expression, and more about use of __builtin_constant_p in
2624         initializers.
2625
2626 2009-03-29  Richard Guenther  <rguenther@suse.de>
2627
2628         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2629         propagate addresses of array references.
2630
2631 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2632
2633         * regmove.c (perhaps_ends_bb_p): Remove.
2634         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
2635         from INSN and check that the main loop stays within that basic block.
2636         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2637         (regmove_forward_pass): Split out from regmove_optimize.  Use
2638         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2639         (regmove_backward_pass): Split out from regmove_optimize.  Use
2640         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2641         (regmove_optimize): Simplify.
2642
2643 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2644
2645         PR target/39545
2646         * config/i386/i386.c (classify_argument): Ignore flexible array
2647         member in struct and warn ABI change.
2648
2649 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2650
2651         * config/i386/i386-protos.h (ix86_agi_dependent): New.
2652
2653         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2654         (ix86_adjust_cost): Updated.
2655
2656 2009-03-29  Jan Hubicka  <jh@suse.cz>
2657
2658         PR middle-end/28850
2659         * tree-pass.h (pass_cleanup_eh): New function.
2660         (remove_unreachable_regions): Break code handling RTL
2661         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2662         that can not be reached by runtime.
2663         (can_be_reached_by_runtime): New function.
2664         (label_to_region_map): New function.
2665         (num_eh_regions): New function.
2666         (rtl_remove_unreachable_regions): New function.
2667         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2668         (remove_eh_region): New function.
2669         * except.h: Include sbitmap and vecprim.
2670         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2671         num_eh_regions): Declare.
2672         * passes.c (init_optimization_passes): Schedule cleanup_eh.
2673         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
2674         * tree-eh.c (tree_remove_unreachable_handlers): New function.
2675         (tree_empty_eh_handler_p): New function.
2676         (cleanup_empty_eh): New function.
2677         (cleanup_eh): New function.
2678         (pass_cleanup_eh): New function.
2679
2680 2009-03-29  Jan Hubicka  <jh@suse.cz>
2681
2682         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2683         for removed regions.
2684
2685 2009-03-29  Jan Hubicka  <jh@suse.cz>
2686
2687         * except.c (dump_eh_tree): Dump all datastructures.
2688
2689 2009-03-29  Jan Hubicka  <jh@suse.cz>
2690
2691         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2692         (duplicate_eh_regions_1): Likewise.
2693         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2694         vector; call EH verification.
2695         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2696         Be ready for region being removed.
2697
2698 2009-03-29  Jan Hubicka  <jh@suse.cz>
2699
2700         * bitmap.c (bitmap_last_set_bit): New function.
2701         * bitmap.h (bitmap_last_set_bit): Declare.
2702
2703 2009-03-29  David Ayers  <ayers@fsfe.org>
2704
2705         PR objc/27377
2706         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2707         by calling objc_compare_types and surpress warnings about
2708         incompatible C pointers that are compatible ObjC pointers.
2709         
2710 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
2711
2712         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2713         call initialize_inline_failed.
2714         (initialize_inline_failed): Move it from here ...
2715         * cgraph.c (initialize_inline_failed): ... to here.
2716         (cgraph_create_edge): Call initialize_inline_failed rather than
2717         setting inline_failed directly.
2718
2719 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2720
2721         PR target/32542
2722         * sysv4.opt (msdata): Improve comment.
2723         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2724         * sysv4.h (SVR4_ASM_SPEC): Likewise.
2725
2726 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2727
2728         PR target/30451
2729         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2730         load and store attributes.
2731
2732 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2733
2734         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
2735         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
2736         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
2737         * doc/extend.texi (X86 Built-in Functions): Add index entries for
2738         __builtin_infq and __builtin_huge_valq.
2739
2740 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
2741
2742         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2743         atmega8m1 devices.
2744         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2745         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2746
2747 2009-03-28  Xinliang David Li  <davidxl@google.com>
2748
2749         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
2750         (do_dbg_cnt): New function.
2751
2752 2009-03-28  Jan Hubicka  <jh@suse.cz>
2753
2754         Merge from pretty-ipa:
2755
2756         2009-03-27  Jan Hubicka  <jh@suse.cz>
2757
2758         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2759         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2760         * passes.c (function_called_by_processed_nodes_p): New.
2761         * ipa-pure-const.c (check_call): Fix handling of operands.
2762         (analyze_function): Dump debug output for skipped bodies.
2763         (local_pure_const): Use function_called_by_processed_nodes_p.
2764         * dwarf2out.c (reference_to_unused): Use output.
2765         * passes.c (do_per_function_toporder): Likewise.
2766
2767         2008-11-12  Jan Hubicka  <jh@suse.cz>
2768
2769         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2770         * ipa-pure-const.c (funct_state_d): Add can throw field; make
2771         state_set_in_source enum
2772         (check_decl): Ignore memory tags; do not set fake looping flags;
2773         dump diagnostics.
2774         (check_operand, check_tree, check_rhs_var, check_lhs_var,
2775         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2776         (check_call, analyze_function): Rewrite.
2777         (check_stmt): New.
2778         (add_new_function): Update call of analyze_function.
2779         (generate_summary): Add call of analyze_function.
2780         (propagate): Propagate can_throw; handle state_set_in_source correctly.
2781         (local_pure_const): New function.
2782         (pass_local_pure_const): New pass.
2783         * ipa-inline.c (inline_transform): Set after_inlining.
2784         * tree-eh.c (stmt_can_throw_external): New.
2785         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2786         work with aliasing built.
2787         * tree-flow.h (stmt_can_throw_external): New.
2788         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2789         and local pure/const pass in early and late optimization queue.
2790
2791 2009-03-28  Martin Jambor  <mjambor@suse.cz>
2792
2793         * fold-const.c (get_pointer_modulus_and_residue): New parameter
2794         allow_func_align.
2795         (fold_binary): Allow function decl aligment consideration is the
2796         second argument is integer constant one.
2797         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
2798         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
2799         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
2800
2801 2009-03-28  Jan Hubicka  <jh@suse.cz>
2802
2803         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
2804         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
2805         * function.h (rtl_data): Add nothrow flag.
2806         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
2807         set DECL_NOTHROW for AVAILABLE functions.
2808
2809 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
2810
2811         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
2812         following vector keyword has expansion starting with pixel or bool
2813         keyword, expand vector to __vector and pixel or bool to __pixel or
2814         __bool.
2815
2816         PR c++/39554
2817         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
2818         warn_if_disallowed_function_p): Removed.
2819         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
2820         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
2821         warning_if_disallowed_function_p.
2822         * flags.h (warn_if_disallowed_function_p,
2823         warn_disallowed_functions): Removed.
2824         * common.opt (Wdisallowed-function-list=): Removed.
2825         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
2826
2827 2009-03-28  Richard Guenther  <rguenther@suse.de>
2828
2829         PR tree-optimization/38723
2830         * tree-ssa-pre.c (compute_avail): Add all default definitions to
2831         the entry block.
2832
2833 2009-03-28  Jan Hubicka  <jh@suse.cz>
2834
2835         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
2836         test introduced by my previous patch.
2837
2838 2009-03-28  Richard Guenther  <rguenther@suse.de>
2839
2840         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
2841         the PHIs value undefined.
2842
2843 2009-03-28  Jan Hubicka  <jh@suse.cz>
2844
2845         * tree-pass.h (pass_fixup_cfg): New pass.
2846         * ipa-inline.c (inline_transform): Set
2847         always_inline_functions_inlined/after_inlining.
2848         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
2849         (pass_fixup_cfg): New pass.
2850         * passes.c (init_optimization_passes): Add fixup_cfg.
2851
2852 2009-03-28  Richard Guenther  <rguenther@suse.de>
2853
2854         PR tree-optimization/38458
2855         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
2856         argument use the arguments copy-of value.
2857
2858 2009-03-28  Richard Guenther  <rguenther@suse.de>
2859
2860         PR tree-optimization/38180
2861         * tree-ssa-ccp.c (get_default_value): Simplify.
2862         (likely_value): Likewise.
2863         (surely_varying_stmt_p): Properly handle VOP case.
2864         (ccp_initialize): Likewise.
2865         (ccp_fold): Handle propagating through *&.
2866         (fold_const_aggregate_ref): Also handle decls.
2867
2868 2009-03-28  Jan Hubicka  <jh@suse.cz>
2869
2870         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2871         * cgraph.h (cgraph_node): Likewise.
2872         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
2873         (cgraph_reset_node): Use process flag.
2874         (cgraph_mark_functions_to_output): Likewise.
2875         (cgraph_expand_function): Likewise.
2876         (cgraph_expand_all_functions): Likewise.
2877         (cgraph_output_in_order): Likewise.
2878         * dwarf2out.c (reference_to_unused): Likewise.
2879         * passes.c do_per_function_toporder): Likewise.
2880
2881 2009-03-28  Jan Hubicka  <jh@suse.cz>
2882
2883         Bring from lto-branch:
2884
2885         2008-09-03  Doug Kwan  <dougkwan@google.com>
2886
2887         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
2888         enums instead of reason strings.
2889         * cgraph.c (cgraph_create_edge): Same.
2890         (cgraph_inline_failed_string): New function.
2891         * cgraph.h (cgraph_inline_failed_t): New enum type.
2892         (cgraph_inline_failed_string): New prototype.
2893         (struct cgraph_edge): Change type of INLINED_FAILED from constant
2894         char pointer to cgraph_inline_failed_t.
2895         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
2896         (cgraph_default_inline_p): Ditto.
2897         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
2898         to cgraph_inline_failed_t pointer.
2899         * cif-code.def: New file.
2900         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
2901         reason string.
2902         (cgraph_check_inline_limits): Change type of REASON to pointer to
2903         cgraph_inline_failed_t.  Replace reason strings with enums.
2904         (cgraph_default_inline_p): Ditto.
2905         (cgraph_recursive_inlining_p): Ditto.
2906         (update_caller_keys): Change type of FAILED_REASON to
2907         cgraph_inline_failed_t.
2908         (cgraph_set_inline_failed): Change type of REASON to pointer to
2909         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
2910         convert enums to strings for text output.
2911         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
2912         to be of type cgraph_inline_failed_t.  Replace reason strings with
2913         enums.  Call cgraph_inline_failed_string to covert enums
2914         to strings for text output.
2915         (cgraph_decide_inlining): Replace reason strings with enums.
2916         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
2917         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
2918         for text output.
2919         * tree-inline.c (expand_call_inline): Change type of REASON
2920         to cgraph_inline_failed_t.  Replace reason strings with enums.
2921         Call cgraph_inline_failed_string for text output.
2922         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
2923         (cgraph.o): Ditto.
2924
2925 2009-03-28  Jan Hubicka  <jh@suse.cz>
2926
2927         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
2928         cgraph_clone_node): Remove master clone handling.
2929         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2930         * cgraph.h (master_clone): Remove.
2931         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2932         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
2933         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
2934
2935 2009-03-28  Jan Hubicka  <jh@suse.cz>
2936
2937         * cgraph.c (cgraph_function_body_availability): Functions declared
2938         inline are always safe to assume that it is not going to be replaced.
2939
2940 2009-03-28  Richard Guenther  <rguenther@suse.de>
2941
2942         PR tree-optimization/38513
2943         * tree-ssa-pre.c (eliminate): Remove redundant stores.
2944         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2945         EXC_PTR_EXPR and FILTER_EXPR.
2946         (get_ref_from_reference_ops): Likewise.
2947
2948 2009-03-28  Richard Guenther  <rguenther@suse.de>
2949
2950         PR tree-optimization/38968
2951         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
2952         Use FLOOR_MOD_EXPR to compute misalignment.
2953
2954 2009-03-28  Richard Guenther  <rguenther@suse.de>
2955
2956         PR tree-optimization/37795
2957         * tree.h (combine_comparisons): Declare.
2958         * fold-const.c (combine_comparisons): Export.
2959         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
2960         comparisons.
2961         (ifcombine_iforif): Use combine_comparisons.
2962
2963 2009-03-28  Jan Hubicka  <jh@suse.cz>
2964
2965         * tree-eh.c (inlinable_call_p): New function.
2966         (make_eh_edges): Use it.
2967         (verify_eh_edges): Use it.
2968         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
2969         * except.c (reachable_next_level): Add inlinable_function argument
2970         (sjlj_find_directly_reachable_regions): Update.
2971         (add_reachable_handler): Do not set saw_any_handlers.
2972         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
2973         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2974         Add new inlinable call parameter.
2975         (can_throw_internal, can_throw_external): Update.
2976         * except.h (can_throw_internal_1, can_throw_external_1,
2977         foreach_reachable_handler): Update declaration.
2978
2979 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
2980
2981         * config/arm/t-arm-coff, config/h8300/coff.h,
2982         config/i386/i386-aout.h, config/i386/i386-coff.h,
2983         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
2984         config/pdp11/2bsd.h, config/rs6000/aix41.h,
2985         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
2986         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
2987         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
2988         sys-types.h: Remove.
2989         * Makefile.in: Remove protoize and fixproto support and references
2990         in comments.
2991         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
2992         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
2993         Remove.
2994         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
2995         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
2996         unprotoize$(exeext).
2997         (rest.encap): Don't depend on $(STMP_FIXPROTO)
2998         (.PHONY): Don't depend on proto.
2999         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
3000         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
3001         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
3002         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
3003         build/gen-protos.o, build/scan.o, xsys-protos.h,
3004         build/fix-header$(build_exeext), build/fix-header.o,
3005         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
3006         stmp-install-fixproto): Remove.
3007         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
3008         SYSCALLS.c or fixproto files.
3009         (install-common): Don't install protoize.
3010         (install-headers-tar, install-headers-cpio, install-headers-cp):
3011         Don't depend on $(STMP_FIXPROTO).
3012         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
3013         install fixproto files or write out fixproto settings.
3014         (uninstall): Don't uninstall protoize.
3015         * config.gcc (use_fixproto): Remove.
3016         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
3017         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
3018         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
3019         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
3020         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
3021         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
3022         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
3023         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
3024         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
3025         * config/t-vxworks (STMP_FIXPROTO): Remove.
3026         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
3027         STMP_FIXPROTO): Remove.
3028         * config.in, configure: Regenerate.
3029         * crtstuff.c (gid_t, uid_t): Don't undefine.
3030         * doc/install.texi: Change m68k-coff to m68k-elf in example.
3031         (arm-*-coff, arm-*-aout: Remove target entries.
3032         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
3033         Remove mention of AIX 4.1.
3034         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
3035         * doc/invoke.texi (Running Protoize): Remove.
3036         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
3037         (Protoize Caveats): Remove.
3038         * tsystem.h: Update comments on headers assumed to exist.
3039
3040 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3041
3042         * genautomata.c: Add a new year to the copyright.  Add a new
3043         reference.
3044         (struct insn_reserv_decl): Add comments for member bypass_list.
3045         (find_bypass): Remove.
3046         (insert_bypass): New.
3047         (process_decls): Use insert_bypass.
3048         (output_internal_insn_latency_func): Output all bypasses with the
3049         same input insn in one switch case.
3050
3051         * rtl.def (define_bypass): Describe bypass choice.
3052         * doc/md.texi (define_bypass): Ditto.
3053
3054 2009-03-27  Richard Guenther  <rguenther@suse.de>
3055
3056         * gimplify.c (mark_addressable): Export.
3057         * tree-flow.h (mark_addressable): Declare.
3058         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
3059         * tree-ssa.c (verify_phi_args): Verify that address taken
3060         variables have TREE_ADDRESSABLE set.
3061
3062 2009-03-27  Richard Guenther  <rguenther@suse.de>
3063
3064         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
3065         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
3066         Do not mark decls TREE_ADDRESSABLE.
3067         (build_fold_addr_expr): Adjust.
3068         (fold_addr_expr): Remove.
3069         (fold_unary): Use build_fold_addr_expr.
3070         (fold_comparison): Likewise.
3071         (split_address_to_core_and_offset): Likewise.
3072         * coverage.c (tree_coverage_counter_addr): Mark the array decl
3073         TREE_ADDRESSABLE.
3074         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
3075         (gimplify_modify_expr_to_memcpy): Mark source and destination
3076         addressable.
3077         * omp-low.c (create_omp_child_function): Mark the object decl
3078         TREE_ADDRESSABLE.
3079         (lower_rec_input_clauses): Mark the var we take the address of
3080         TREE_ADDRESSABLE.
3081         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
3082
3083 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3084
3085         PR middle-end/39315
3086         * cfgexpand.c (expand_one_stack_var_at): Change alignment
3087         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
3088
3089 2009-03-27  Richard Guenther  <rguenther@suse.de>
3090
3091         PR tree-optimization/39120
3092         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
3093         constraints.
3094         (handle_lhs_call): Process return constraints.  Add escape
3095         constraints if necessary.
3096         (handle_const_call): Fill out return constraints.  Make nested
3097         case more precise.  Avoid consttmp if possible.
3098         (handle_pure_call): Fill out return constraints.  Avoid
3099         callused if possible.
3100         (find_func_aliases): Simplify call handling.
3101
3102 2009-03-27  Richard Guenther  <rguenther@suse.de>
3103
3104         PR tree-optimization/39120
3105         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
3106         as a representative.
3107         (solve_graph): Do propagate CALLUSED.
3108         (handle_pure_call): Use a scalar constraint from CALLUSED for
3109         the return value.
3110         (find_what_p_points_to): CALLUSED shall not appear in poins-to
3111         solutions.
3112
3113 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3114
3115         PR c/39323
3116         * c-common.c (handle_aligned_attribute): Properly check alignment
3117         overflow.  Use (1U << i) instead of (1 << i).
3118
3119         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
3120
3121         * expr.h (get_mem_align_offset): Updated.
3122
3123         * tree.h (tree_decl_common): Change align to "unsigned int" and
3124         move it before pointer_alias_set.
3125
3126 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3127             Jakub Jelinek  <jakub@redhat.com>
3128
3129         PR target/38034
3130         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
3131         gr_register_operand with gr_reg_or_0_operand.
3132         (cmpxchg_rel_di): Likewise.
3133         (sync_lock_test_and_set<mode>): Likewise.
3134
3135 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3136
3137         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
3138         (true_regnum): Likewise.
3139
3140         * rtlanal.c (subreg_info): Moved to ...
3141         * rtl.h (subreg_info): Here.  New.
3142         (subreg_get_info): New.
3143
3144         * rtlanal.c (subreg_get_info): Make it extern.
3145
3146 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3147
3148         PR target/39472
3149         * config/i386/i386.c (ix86_abi): New.
3150         (override_options): Handle -mabi=.
3151         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
3152         (ix86_call_abi_override): Likewise.
3153         (init_cumulative_args): Likewise.
3154         (function_arg_advance): Likewise.
3155         (function_arg_64): Likewise.
3156         (function_arg): Likewise.
3157         (ix86_pass_by_reference): Likewise.
3158         (ix86_function_value_regno_p): Likewise.
3159         (ix86_build_builtin_va_list_abi): Likewise.
3160         (setup_incoming_varargs_64): Likewise.
3161         (is_va_list_char_pointer): Likewise.
3162         (ix86_init_machine_status): Likewise.
3163         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
3164         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
3165         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
3166         (ix86_function_abi): Make it static and return enum calling_abi.
3167         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
3168         with ix86_abi.
3169         (ix86_fn_abi_va_list): Updated.
3170
3171         * config/i386/i386.h (ix86_abi): New.
3172         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
3173         (CONDITIONAL_REGISTER_USAGE): Likewise.
3174         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
3175         (machine_function): Likewise.
3176
3177         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
3178         with ix86_abi.
3179         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
3180         (STACK_BOUNDARY): Likewise.
3181         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
3182
3183         * config/i386/i386.opt (mabi=): New.
3184
3185         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
3186         return enum calling_abi.
3187         (ix86_function_type_abi): Likewise.
3188         (ix86_function_abi): Removed.
3189
3190         * doc/invoke.texi: Document -mabi= option for x86.
3191
3192 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3193
3194         * builtins.c (real_dconstp): Delete.
3195         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
3196
3197 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
3198             Jakub Jelinek  <jakub@redhat.com>
3199
3200         PR debug/37959
3201         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
3202         (gen_subprogram_die): When a function is explicit, generate the
3203         DW_AT_explicit attribute.
3204         * langhooks.h (struct lang_hooks_for_decls): Add
3205         function_decl_explicit_p langhook.
3206         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
3207         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
3208
3209 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
3210
3211         * builtins.c (fold_builtin_memory_op): Optimize memmove
3212         into memcpy if we can prove source and destination don't overlap.
3213
3214         * tree-inline.c: Include gt-tree-inline.h.
3215         (clone_fn_id_num): New variable.
3216         (clone_function_name): New function.
3217         (tree_function_versioning): Use it.
3218         * Makefile.in (GTFILES): Add tree-inline.c.
3219
3220 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
3221
3222         * BASE-VER: Change to 4.5.0.
3223
3224 2009-03-27  Xinliang David Li  <davidxl@google.com>
3225
3226         PR tree-optimization/39557
3227         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
3228
3229 2009-03-27  Xinliang David Li  <davidxl@google.com>
3230
3231         PR tree-optimization/39548
3232         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
3233         candidate check.
3234
3235 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3236
3237         * c-common.c (pointer_int_sum): Use %wd on return from
3238         tree_low_cst.
3239
3240 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3241
3242         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
3243         on return from tree_low_cst.
3244
3245 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3246
3247         PR c++/36799
3248         * ginclude/stdarg.h (va_copy): Define also for
3249         __GXX_EXPERIMENTAL_CXX0X__.
3250
3251 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3252
3253         PR c++/35652
3254         * builtins.h (c_strlen): Do not warn here.
3255         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3256         * c-common.c (pointer_int_sum): Take an explicit location.
3257         Warn about offsets out of bounds.
3258         * c-common.h (pointer_int_sum): Adjust declaration.
3259
3260 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3261
3262         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
3263         markup glitch.
3264
3265 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
3266
3267         PR c++/39554
3268         * opts.c (warn_if_disallowed_function_p): Don't assume
3269         get_callee_fndecl must return non-NULL.
3270
3271 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3272
3273         PR rtl-optimization/39522
3274         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
3275         when reg_reloaded_valid is set.
3276
3277 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3278
3279         * config/spu/divv2df3.c: New file.
3280         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
3281         (DPBIT_FUNCS): Filter out _div_df.
3282
3283 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3284
3285         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
3286         a jump insn, count that jump in the distance to the loop start.
3287
3288 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3289
3290         PR target/39523
3291         * config/sh/sh.c (calc_live_regs): Fix condition for global
3292         registers except PIC_OFFSET_TABLE_REGNUM.
3293
3294 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
3295
3296         PR/39518
3297         * doc/invoke.texi (-mconsole): New.
3298         (-mcygwin): New.
3299         (-mno-cygwin): New.
3300         (-mdll): New.
3301         (-mnop-fun-dllimport): New.
3302         (-mthread): New.
3303         (-mwin32): New.
3304         (-mwindows): New.
3305         (sub section "i386 and x86-64 Windows Options"): New.
3306
3307 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
3308
3309         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
3310         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
3311
3312 2009-03-25  Richard Guenther  <rguenther@suse.de>
3313
3314         PR middle-end/39497
3315         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
3316         of -Wno-error.
3317
3318 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
3319
3320         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
3321         neither of haifa/selective schedulers are working.
3322
3323 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3324
3325         * doc/invoke.texi (Debugging Options): Fix description of
3326         -fno-merge-debug-strings.
3327
3328 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
3329
3330         * config/cris/libgcc.ver: New version-script.
3331         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
3332
3333         * configure.ac <GAS features, nop mnemonic>: Add pattern
3334         crisv32-*-* for "nop".
3335         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
3336         * configure: Regenerate.
3337
3338 2009-03-24  Ira Rosen  <irar@il.ibm.com>
3339
3340         PR tree-optimization/39529
3341         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3342         mark_sym_for_renaming for the tag copied to the new vector
3343         pointer.
3344
3345 2009-03-24  Arthur Loiret  <aloiret@debian.org>
3346
3347         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
3348         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
3349         EXTRA_SPEC_FUNCTIONS.
3350         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
3351         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
3352         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
3353         -march and -mtune options.
3354
3355 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
3356
3357         * config/m68k/t-rtems: Add m5329 multilib.
3358
3359 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
3360             Jakub Jelinek  <jakub@redhat.com>
3361
3362         PR debug/39524
3363         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
3364         nodes.
3365
3366 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR c/39495
3369         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
3370         instead of c_parser_expression_conv, if original_code isn't one of the
3371         4 allowed comparison codes, fail.
3372
3373 2009-03-23  Richard Guenther  <rguenther@suse.de>
3374
3375         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
3376         * tree.h (struct tree_type): Likewise.
3377         * reload.h (struct insn_chain): Likewise.
3378         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
3379         * function.h (struct function): Likewise.
3380         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
3381
3382 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR tree-optimization/39516
3385         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
3386
3387 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
3388
3389         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
3390         should be set true if BITS_PER_WORD of target is bigger than 32
3391
3392 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
3393
3394         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
3395         Translate -B-options to -rpath-link.  Correct existing
3396         rpath-link and conditionalize on !nostdlib.
3397
3398 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3399
3400         * doc/extend.texi (Function Attributes, Variable Attributes):
3401         Fix typos.
3402         * doc/invoke.texi (Debugging Options, Optimize Options)
3403         (i386 and x86-64 Options, MCore Options): Likewise.
3404
3405 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
3406
3407         PR debug/37890
3408         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
3409         it for block local namespace aliases.
3410         (gen_decl_die): Pass context_die to gen_namespace_die.
3411
3412 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR c/39495
3415         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
3416         minimum or maximum value.
3417
3418 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
3419
3420         * reginfo.c (globalize_reg): Recompute derived reg sets.
3421
3422 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
3423
3424         PR target/39063
3425         * libgcc2.c (mprotect): Do not use signed arguments for
3426         VirtualProtect, use DWORD arguments.  Also fix the 'may
3427         be used uninitialized' warning for the np variable.
3428
3429 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3430
3431         PR target/39496
3432         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
3433         functions using regparm calling conventions when not optimizing.
3434         (ix86_function_sseregparm): Similarly for sseregparm calling
3435         conventions.
3436
3437 2009-03-19  Li Feng  <nemokingdom@gmail.com>
3438
3439         PR middle-end/39500
3440         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
3441         dependence if the first conflict is after niter iterations.
3442
3443 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
3444
3445         PR middle-end/38609
3446         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
3447         functions with dynamic stack-pointer adjustments.
3448
3449 2009-03-19  Ben Elliston  <bje@au.ibm.com>
3450
3451         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
3452         option; change to -msdata=data.
3453
3454 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3455
3456         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
3457         and -fopenmp.
3458
3459 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3460
3461         PR target/35180
3462         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
3463
3464 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
3465
3466         * doc/invoke.texi (Code Gen Options): Expand discussion of
3467         -fno-common.
3468
3469 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
3470
3471         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
3472         * matrix-reorg.c (struct matrix_info): Likewise.
3473         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
3474         * rtl.h (struct mem_attrs): Likewise.
3475         * df.h (struct df): Likewise.
3476         * tree-data-ref.h (struct data_dependence_relation): Likewise.
3477         * ira-int.h (struct ira_allocno): Likewise.
3478         * df-scan.c (struct df_collection_rec): Likewise.
3479         * ira.c (struct equivalence): Likewise.
3480         * function.c (struct temp_slot): Likewise.
3481         * cfgloop.h (struct loop): Likewise.
3482
3483         PR debug/39485
3484         * function.c (use_register_for_decl): When not optimizing, disregard
3485         register keyword for variables with types containing methods.
3486
3487 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
3488
3489         PR middle-end/39447
3490         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
3491         (is_simple_operand): Call contains_component_ref_p before calling data
3492         reference analysis that would fail on COMPONENT_REFs.
3493
3494         * tree-vrp.c (search_for_addr_array): Fix formatting.
3495
3496 2009-03-18  Richard Guenther  <rguenther@suse.de>
3497
3498         * tree-vect-transform.c (vect_loop_versioning): Fold the
3499         generated comparisons.
3500         * tree-vectorizer.c (set_prologue_iterations): Likewise.
3501         (slpeel_tree_peel_loop_to_edge): Likewise.
3502
3503 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3504
3505         PR middle-end/37805
3506         * opts.c (print_specific_help): In addition to `undocumented',
3507         accept `separate' and `joined' flags if passed alone.  Describe
3508         output by the first matched one of those.
3509         (common_handle_option): Skip over empty strings.
3510         * gcc.c (display_help): Fix help string for `--help='.
3511         * doc/invoke.texi (Option Summary, Overall Options): With
3512         `--help=', classes and qualifiers can both be repeated, but
3513         only the latter can be negated.  One should not pass only
3514         negated qualifiers.  Fix markup and examples.
3515
3516         Revert
3517         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3518         PR middle-end/37805
3519         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3520         and -fhelp=separate.
3521
3522 2009-03-17  Jing Yu  <jingyu@google.com>
3523
3524         PR middle-end/39378
3525         * function.h (struct rtl_data): Move is_thunk from here...
3526         (struct function): ...to here.
3527         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3528         * varasm.c (assemble_start_function): Change is_thunk from crtl to
3529         cfun.
3530         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
3531         cfun.
3532         (alpha_does_function_need_gp, alpha_start_function): Likewise.
3533         (alpha_output_function_end_prologue): Likewise.
3534         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
3535         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
3536         (rs6000_output_function_epilogue): Likewise.
3537         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3538
3539 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
3540
3541         PR target/39482
3542         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
3543         from different units in a single alternative.
3544         (*truncdfsf_i387): Ditto.
3545         (*truncxfsf2_mixed): Ditto.
3546         (*truncxfdf2_mixed): Ditto.
3547
3548 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
3549
3550         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
3551         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
3552
3553         PR debug/39474
3554         * tree-ssa-live.c (remove_unused_locals): Don't remove local
3555         unused non-artificial variables when not optimizing.
3556
3557         PR debug/39471
3558         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
3559         DW_TAG_imported_module even if decl is IMPORTED_DECL with
3560         NAMESPACE_DECL in its DECL_INITIAL.
3561
3562         PR middle-end/39443
3563         * optabs.c (set_user_assembler_libfunc): New function.
3564         * expr.h (set_user_assembler_libfunc): New prototype.
3565         * c-common.c: Include libfuncs.h.
3566         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3567         for memcmp, memset, memcpy, memmove and abort.
3568         * Makefile.in (c-common.o): Depend on libfuncs.h.
3569
3570         PR debug/39412
3571         * dwarf2out.c (gen_inlined_enumeration_type_die,
3572         gen_inlined_structure_type_die, gen_inlined_union_type_die,
3573         gen_tagged_type_instantiation_die): Removed.
3574         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3575         do nothing.
3576
3577 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
3578
3579         PR testsuite/38526
3580         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3581         its use.
3582         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3583         (check-parallel-%): Ditto.
3584         (check-consistency): Ditto.
3585
3586 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
3587
3588         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3589         local variable rhs by NULL_TREE.
3590
3591 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3592
3593         PR target/39477
3594         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
3595
3596 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3597
3598         PR target/39476
3599         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
3600
3601 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3602
3603         PR target/39473
3604         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3605         for ms->sysv ABI calls only in 64bit mode.
3606
3607         * config/i386/i386.md (untyped_call): Support 32bit.
3608
3609 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3610
3611         * doc/extend.texi: Replace x86_65 with x86_64.
3612
3613 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
3614
3615         PR tree-optimization/39455
3616         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3617         mismatches for POINTER_TYPE_P (type).
3618         (number_of_iterations_le): Likewise.
3619
3620 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
3621
3622         * config/picochip/picochip.c: Removed profiling support.
3623         * config/picochip/picochip.md: Removed profiling instruction.
3624         * config/picochip/picochip.h: Removed profiling builtin.
3625
3626 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
3627
3628         * doc/install.texi (--with-host-libstdcxx): Document.
3629
3630 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
3631
3632         PR target/34299
3633         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3634         generate a warning if the function name does not begin with
3635         "__vector" and the function has either the 'signal' or 'interrupt'
3636         attribute, from here to ...
3637         (avr_declare_function_name): ...here. New function.
3638         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3639         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3640
3641 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
3642
3643         PR bootstrap/39454
3644         * cse.c (fold_rtx): Don't modify original const_arg1 when
3645         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3646         separate variable instead.
3647         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3648         from out of range shift counts.
3649         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3650
3651 2008-03-13  Catherine Moore  <clm@codesourcery.com>
3652
3653         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
3654         diagnostic.h with $(DIAGNOSTIC_H).
3655
3656 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3657
3658         PR target/39431
3659         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3660         predicate.
3661         * config/i386/sync.md (sync_compare_and_swap<mode>,
3662         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3663         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3664         into a register.
3665         (sync_double_compare_and_swapdi_pic,
3666         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3667         cmpxchg8b_pic_memory_operand instead of just memory_operand.
3668
3669 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3670
3671         PR target/39445
3672         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
3673
3674 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3675
3676         PR target/39327
3677         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3678         (avx_addsubv4df3): Likewise.
3679         (*avx_addsubv4sf3): Likewise.
3680         (sse3_addsubv4sf3): Likewise.
3681
3682 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3683
3684         PR target/38824
3685         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
3686
3687 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3688
3689         PR debug/39432
3690         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3691         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3692         registers for allocnos created from user-defined variables.
3693
3694 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3695
3696         PR target/39181
3697         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
3698         of non-integer mode as well.
3699
3700 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
3701
3702         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
3703         for functions for which the parameter types are unknown.
3704
3705 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
3706
3707         PR target/39137
3708         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
3709         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
3710         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
3711         * config/i386/i386.c (ix86_local_alignment): For
3712         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
3713         long long variables on the stack to avoid dynamic realignment.
3714         Allow the first argument to be a decl rather than type.
3715         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
3716
3717 2009-03-11  Nick Clifton  <nickc@redhat.com>
3718
3719         PR target/5362
3720         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
3721         options.
3722         Add description to mno-lsim option.
3723         * config/mcore/mcore.h: Remove comment about deprecated m4align
3724         option.
3725         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
3726         * doc/invoke.texi: Add description of mno-lsim and
3727         mstack-increment options.
3728
3729         * config/fr30/fr30.opt: Document the -mno-lsim option.
3730         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
3731         and -mno-lsim options.
3732
3733 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3734
3735         * fold-const.c (fold_comparison): Only call fold_inf_compare
3736         if the mode supports infinities.
3737
3738 2009-03-11  Jason Merrill  <jason@redhat.com>
3739
3740         PR debug/39086
3741         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3742         end already did.  Notice GIMPLE_CALL modifications of the result.
3743         Don't copy debug information from an ignored decl or a decl from
3744         another function.
3745
3746 2009-03-10  Richard Guenther  <rguenther@suse.de>
3747             Nathan Froyd  <froydnj@codesourcery.com>
3748
3749         PR middle-end/37850
3750         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
3751         (__divMODE3): Likewise.
3752
3753 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
3754
3755         PR tree-optimization/39394
3756         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3757         DECL_SIZE_UNIT of variable length FIELD_DECLs.
3758
3759 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3760
3761         * recog.c (verfiy_changes): Disallow renaming of hard regs in
3762         inline asms for register asm ("") declarations.
3763
3764 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3765
3766         * fold-const.c (fold_unary): Fix comment.
3767
3768 2009-03-07  Jan Hubicka  <jh@suse.cz>
3769
3770         PR target/39361
3771         * tree-inline.c (setup_one_parameter): Do replacement of const
3772         argument by constant in SSA form.
3773
3774 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3775
3776         PR middle-end/38028
3777         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3778         determine alignment passed to assign_stack_local.
3779         (assign_parms_unsplit_complex): Likewise.
3780         * except.c (sjlj_build_landing_pads): Likewise.
3781
3782 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3783
3784         PR middle-end/39360
3785         * tree-flow.h (add_referenced_var): Return bool instead of void.
3786         * tree-dfa.c (add_referenced_var): Return result of
3787         referenced_var_check_and_insert call.
3788         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3789         of referenced_var_check_and_insert.
3790
3791         PR debug/39372
3792         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
3793         (gen_variable_die): Emit DW_AT_location on abstract static variable's
3794         DIE, don't emit it if abstract origin already has it.
3795         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
3796         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
3797
3798 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3799
3800         * genpreds.c (needs_variable): Fix parentheses at variable name
3801         detection.
3802         (write_tm_constrs_h): Indent generated code.
3803
3804 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3805
3806         * doc/extend.texi (Function Attributes): Add documentation
3807         for isr attributes.
3808
3809 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3810
3811         PR debug/39387
3812         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
3813         take locus from its DECL_SOURCE_LOCATION instead of input_location.
3814
3815 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3816
3817         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
3818         the loop as bad.
3819
3820 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
3821
3822         PR debug/39379
3823         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
3824         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
3825
3826 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
3827
3828         * config/i386/i386.md (R8_REG, R9_REG): New constants.
3829         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
3830         constants instead of magic numbers.
3831         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3832         (QI_REG_P): Ditto.
3833         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
3834         (x86_64_ms_abi_int_parameter_registers): Ditto.
3835         (x86_64_int_return_registers): Ditto.
3836         (ix86_maybe_switch_abi): Ditto.
3837         (ix86_expand_call): Ditto for clobbered_registers array.
3838         (ix86_hard_regno_mode_ok): Ditto.
3839         (x86_extended_QIreg_mentioned_p): Ditto.
3840
3841 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
3842
3843         PR tree-optimization/39349
3844         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
3845
3846         * combine.c (gen_lowpart_for_combine): Use omode when generating
3847         clobber.
3848
3849 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
3850
3851         PR rtl-optimization/39235
3852         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
3853
3854 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3855
3856         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
3857
3858 2009-03-04  Richard Guenther  <rguenther@suse.de>
3859
3860         PR tree-optimization/39362
3861         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
3862         that occur in abnormal PHIs should be varying.
3863
3864 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3865
3866         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
3867         Extend comments.
3868         (simple_iv):  Take loop as an argument instead of statement.
3869         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3870         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
3871         to simple_iv.
3872         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
3873         Ditto.
3874         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
3875         * matrix-reorg.c (analyze_transpose): Ditto.
3876         * tree-data-ref.c (dr_analyze_innermost): Ditto.
3877         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3878         * tree-predcom.c (ref_at_iteration): Ditto.
3879         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
3880
3881 2009-03-04  Richard Guenther  <rguenther@suse.de>
3882
3883         PR tree-optimization/39358
3884         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
3885         escaped_id and callused_id.
3886         (solve_graph): Likewise.
3887
3888 2009-03-04  Richard Guenther  <rguenther@suse.de>
3889
3890         PR tree-optimization/39339
3891         * tree-sra.c (try_instantiate_multiple_fields): Make it
3892         no longer ICE on the above.
3893
3894 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
3895
3896         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
3897         that fits within Pmode.
3898
3899 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3900
3901         PR middle-end/10109
3902         * tm.texi (LIBCALL_VALUE): Update description.
3903
3904 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3905
3906         PR middle-end/34443
3907         * doc/extend.texi (section): Update description.
3908
3909 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
3910
3911         PR middle-end/39345
3912         * tree-inline.c (remapped_type): New.
3913         (can_be_nonlocal): Call remapped_type instead of remap_type.
3914
3915 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3916
3917         PR fortran/39354
3918         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
3919         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
3920
3921 2009-03-03  Richard Guenther  <rguenther@suse.de>
3922
3923         PR middle-end/39272
3924         * tree.c (tree_nonartificial_location): New function.
3925         * tree.h (tree_nonartificial_location): Declare.
3926         * builtins.c (expand_builtin_memory_chk): Provide location
3927         of the call location for artificial function pieces.
3928         (maybe_emit_chk_warning): Likewise.
3929         (maybe_emit_sprintf_chk_warning): Likewise.
3930         (maybe_emit_free_warning): Likewise.
3931         * expr.c (expand_expr_real_1): Likewise.
3932
3933 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3934
3935         PR tree-optimization/39343
3936         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
3937         COMPONENT_REF t has ARRAY_TYPE.
3938
3939 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3940
3941         PR middle-end/39335
3942         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
3943         when the type precision of the induction variable should be
3944         larger than the type precision of nit.
3945         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
3946         * graphite.c (graphite_loop_normal_form): Same.
3947         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
3948
3949 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
3950
3951         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
3952         (*call_1_rex64_ms_sysv): Use named constants instead of magic
3953         numbers to describe clobbered registers.
3954         (*call_value_0_rex64_ms_sysv): Ditto.
3955         * config/i386/mmx.md (mmx_emms): Ditto.
3956         (mmx_femms): Ditto.
3957
3958 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
3959
3960         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
3961         of ABI_64.
3962
3963 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3964
3965         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
3966         (spu_section_type_flags): New function.
3967
3968 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
3969
3970         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
3971         reg_class_contents of FLOAT_REGS into a temporary.
3972
3973 2009-03-02  Richard Guenther  <rguenther@suse.de>
3974             Ira Rosen  <irar@il.ibm.com>
3975
3976         PR tree-optimization/39318
3977         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
3978         information to the vectorized statement.
3979
3980 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
3981
3982         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
3983         variable.  Use defined names instead of magic constants for REX SSE
3984         registers.
3985
3986 2009-03-01  Richard Guenther  <rguenther@suse.de>
3987
3988         PR tree-optimization/39331
3989         * omp-low.c (lower_send_shared_vars): Do not receive new
3990         values for the reference of DECL_BY_REFERENCE parms or results.
3991
3992 2009-03-01  Jan Hubicka  <jh@suse.cz>
3993
3994         PR debug/39267
3995         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
3996         BLOCK_NONLOCALIZED_VAR): New macros.
3997         (tree_block): Add nonlocalized_vars.
3998         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
3999         gen_decl_die): Add origin argument.  Allow generation of die with
4000         origin at hand only.
4001         (gen_member_die, gen_type_die_with_usage, force_decl_die,
4002         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
4003         of gen_*.
4004         (gen_block_die): Fix checking for unused blocks.
4005         (process_scope_var): Break out from .... ; work with origins only.
4006         (decls_for_scope) ... here; process nonlocalized list.
4007         (dwarf2out_ignore_block): Look for nonlocalized vars.
4008         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
4009         vars.
4010         (dump_scope_block): Dump them.
4011         * tree-inline.c (remap_decls): Handle nonlocalized vars.
4012         (remap_block): Likewise.
4013         (can_be_nonlocal): New predicate.
4014         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
4015
4016 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4017
4018         * configure: Regenerate.
4019
4020 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4021
4022         * optc-gen.awk: No need to duplicate option flags twice.
4023         Reuse help texts for duplicate options which do not have any.
4024
4025         * gcc.c (display_help): Document --version.
4026
4027         * gcc.c (main): If print_help_list and verbose_flag, ensure
4028         driver output comes before subprocess output.
4029
4030         * optc-gen.awk: Assign all remaining fields to help string,
4031         space-separated, for multi-line help in *.opt.
4032
4033         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
4034         -Wno-pedantic-ms-format is for MinGW targets only.
4035
4036         * doc/options.texi (Option file format): Fix bad indentation,
4037         restoring dropped sentence.
4038
4039 2009-02-28  Jan Hubicka  <jh@suse.cz>
4040
4041         * tree-inline.c (tree_function_versioning): Output debug info.
4042
4043 2009-02-28  Jan Hubicka  <jh@suse.cz>
4044
4045         PR debug/39267
4046         * tree-inline.c (setup_one_parameter): Do not copy propagate
4047         arguments when not optimizing.
4048
4049 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4050
4051         PR target/39327
4052         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4053         (avx_addsubv4df3): Likewise.
4054         (*avx_addsubv4sf3): Likewise.
4055         (sse3_addsubv4sf3): Likewise.
4056         (*avx_addsubv2df3): Likewise.
4057         (sse3_addsubv2df3): Likewise.
4058         (avx_unpckhps256): Correct item selectors.
4059         (avx_unpcklps256): Likewise.
4060         (avx_unpckhpd256): Likewise.
4061         (avx_unpcklpd256): Likewise.
4062
4063 2009-02-28  Jan Hubicka  <jh@suse.cz>
4064
4065         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
4066         static vars.
4067         (copy_arguments_for_versioning): If var is declared don't declare it.
4068         (tree_function_versioning): First setup substitutions and then copy
4069         args.
4070
4071 2009-02-27  Jan Hubicka  <jh@suse.cz>
4072
4073         PR debug/39267
4074         * cgraph.h (varpool_output_debug_info): Remove.
4075         * cgraphunit.c (varpool_output_debug_info): Remove.
4076         * dwarf2out.c (deferred_locations_struct): New struct
4077         (deferred_locations): New type.
4078         (deferred_locations_list): New static var.
4079         (deffer_location): New function.
4080         (gen_variable_die): Use it.
4081         (decls_for_scope): Output info on local static vars.
4082         (dwarf2out_finish): Process deferred locations.
4083         * varpool.c (varpool_output_debug_info): Remove.
4084
4085 2009-02-27  Jan Hubicka  <jh@suse.cz>
4086
4087         PR debug/39267
4088         * tree.h (TREE_PROTECTED): Fix comment.
4089         (BLOCK_HANDLER_BLOCK): Remove.
4090         (struct tree_block): Remove handler_block add body_block.
4091         (inlined_function_outer_scope_p): New.
4092         (is_body_block): Remove.
4093         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
4094         * dwarf2out.c (is_inlined_entry_point): Remove.
4095         (add_high_low_attributes): Use inlined_function_outer_scope_p.
4096         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
4097         code.
4098         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
4099         * gimplify.c (gimplify_expr): Gimplify body blocks.
4100         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
4101         block with multiple subblocks.
4102         (dump_scope_block): Prettier output; dump more flags and info.
4103         (dump_scope_blocks): New.
4104         (remove_unused_locals): Use dump_scope_blocks.
4105         * tree-flow.h (dump_scope_blocks): Declare.
4106         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
4107         * stmt.c (is_body_block): Remove.
4108         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
4109         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
4110
4111 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
4112
4113         PR middle-end/39308
4114         * graphite.c (graphite_loop_normal_form): Do not call 
4115         number_of_iterations_exit from a gcc_assert.
4116
4117 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4118
4119         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
4120         jumps if COND is NULL.
4121         (find_cond_jump): New function.
4122         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
4123         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
4124
4125 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
4126
4127         * config/alpha/alpha.h (alpha_expand_mov): Return false if
4128         force_const_mem returns NULL_RTX.
4129
4130 2009-02-26  Jan Hubicka  <jh@suse.cz>
4131
4132         PR debug/39267
4133         * cgraph.h (varpool_output_debug_info): Remove.
4134         * cgraphunit.c (varpool_output_debug_info): Remove.
4135         * dwarf2out.c (deferred_locations_struct): New struct
4136         (deferred_locations): New type.
4137         (deferred_locations_list): New static var.
4138         (deffer_location): New function.
4139         (gen_variable_die): Use it.
4140         (decls_for_scope): Output info on local static vars.
4141         (dwarf2out_finish): Process deferred locations.
4142         * varpool.c (varpool_output_debug_info): Remove.
4143
4144 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
4145
4146         PR rtl-optimization/39241
4147         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
4148         to subreg_offset_representable_p.
4149
4150 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4151
4152         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
4153         execute function prototype.  Get f and nregs from max_reg_num
4154         and get_insns.  Remove the first backward pass as it's dead,
4155         guard the forward pass by flag_expensive_optimizations.
4156         (rest_of_handle_regmove): Delete.
4157         (pass_regmove): Replace it with regmove_optimize.
4158
4159 2009-02-25  Martin Jambor  <mjambor@suse.cz>
4160
4161         PR tree-optimization/39259
4162         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
4163         calls_alloca function flags.
4164         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
4165         calls are detected.
4166
4167 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4168
4169         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
4170         flags_set_1_rtx, flags_set_1_set): Delete.
4171         (regmove_optimize): Do not call mark_flags_life_zones.
4172
4173 2009-02-24  Julian Brown  <julian@codesourcery.com>
4174
4175         PR target/35965
4176         * config/arm/arm.c (require_pic_register): Only set
4177         cfun->machine->pic_reg once per function.
4178
4179 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
4180
4181         * doc/invoke.texi (Link Options): Document an easier way to pass
4182         options that take arguments to the GNU linker using -Xlinker and -Wl.
4183
4184 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
4185
4186         PR target/33785
4187         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
4188
4189 2009-02-24  Richard Guenther  <rguenther@suse.de>
4190
4191         PR debug/39285
4192         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
4193
4194 2009-02-24  Richard Guenther  <rguenther@suse.de>
4195             Zdenek Dvorak  <ook@ucw.cz>
4196
4197         PR tree-optimization/39233
4198         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
4199         from converting them to a generic type.
4200
4201 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
4202
4203         PR tree-optimization/39260
4204         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
4205         contains a condition with a real type.
4206         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
4207
4208 2009-02-23  Jason Merrill  <jason@redhat.com>
4209
4210         PR c++/38880
4211         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
4212         narrowing_initializer_constant_valid_p.
4213         (narrowing_initializer_constant_valid_p): Don't return 
4214         null_pointer_node for adding a pointer to itself.
4215
4216 2009-02-23  Jan Hubicka  <jh@suse.cz>
4217
4218         PR c/12245
4219         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
4220         resizing.
4221
4222 2009-02-23  Jan Hubicka  <jh@suse.cz>
4223
4224         PR tree-optimization/37709
4225         * tree.c (block_ultimate_origin): Move here from dwarf2out.
4226         * tree.h (block_ultimate_origin): Declare.
4227         * dwarf2out.c (block_ultimate_origin): Move to tree.c
4228         * tree-ssa-live.c (remove_unused_scope_block_p):
4229         Eliminate blocks containig no instructions nor live variables nor
4230         nested blocks.
4231         (dump_scope_block): New function.
4232         (remove_unused_locals): Enable removal of dead blocks by default;
4233         enable dumping at TDF_DETAILS.
4234
4235 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4236
4237         * config/i386/i386.c (classify_argument): Don't allow COImode
4238         and OImode.
4239         (function_arg_advance_32): Don't allow OImode.
4240         (function_arg_32): Likewise.
4241         (function_value_32): Likewise.
4242         (return_in_memory_32): Likewise.
4243         (function_arg_64): Remove OImode comment.
4244
4245 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4246
4247         PR target/39261
4248         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4249         ix86_expand_vector_set for V4DImode in 64bit mode only.
4250         (ix86_expand_vector_init_one_var): Likewise.
4251
4252 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
4253
4254         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
4255
4256 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4257
4258         PR bootstrap/39257
4259         * loop-iv.c: Revert last change.
4260         * emit-rtl.c: Likewise.
4261
4262 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4263
4264         PR target/39256
4265         * config/i386/i386.c (type_natural_mode): Remove an extra
4266         space in the warning message.
4267         (function_value_32): Handle 32-byte vector modes.
4268         (return_in_memory_32): Likewise.
4269
4270 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4271
4272         * loop-iv.c (truncate_value): New function.
4273         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
4274         of lowpart_subreg.
4275         (lowpart_subreg): Move to...
4276         * emit-rtl.c: ...here.
4277
4278 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
4279
4280         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
4281         accidental and undocumented change at revision 140860.
4282
4283 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
4284
4285         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
4286         take gimple_seq * arguments.
4287         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
4288         types_compatible_p langhook.
4289
4290 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
4291             Joseph Myers  <joseph@codesourcery.com>
4292
4293         * config/arm/arm.c (arm_builtin_va_list): New function.
4294         (arm_expand_builtin_va_start): Likewise.
4295         (arm_gimplify_va_arg_expr): Likewise.
4296         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
4297         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
4298         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
4299         (va_list_type): New variable.
4300         (arm_mangle_type): Mangle va_list_type appropriately.
4301
4302 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4303
4304         PR middle-end/39157
4305         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
4306         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
4307         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
4308         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
4309         parameter to 1000 for -O1 by default.
4310         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
4311         parameter.
4312         * loop-invariant.c: Include params.h.
4313         (move_loop_invariants): Don't call move_single_loop_invariants on
4314         very large loops.
4315
4316 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
4317
4318         * calls.c (emit_library_call_value_1): Use slot_offset instead of
4319         offset when calculating bounds for indexing stack_usage_map.  Fixes
4320         a buffer overflow with certain target setups.
4321
4322 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4323
4324         PR target/39240
4325         * calls.c (expand_call): Clear try_tail_call if caller and callee
4326         disagree in promotion of function return value.
4327
4328 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
4329
4330         PR target/39175
4331         * c-common.c (c_determine_visibility): If visibility changed and
4332         DECL_RTL has been already set, call make_decl_rtl to update symbol
4333         flags.
4334
4335 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4336
4337         PR c++/39188
4338         * varasm.c (assemble_variable): Don't check DECL_NAME when
4339         globalizing a variable.
4340
4341 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
4342
4343         PR c/38483
4344         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
4345         expression before any __builtin_trap call.
4346         * c-typeck.c (build_function_call): Convert and check function
4347         arguments before generating a call to a trap.  Evaluate the
4348         function arguments before the trap.
4349
4350 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
4351
4352         PR target/39228
4353         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
4354         (UNSPEC_FXAM_MEM): New unspec.
4355         (fxam<mode>2_i387_with_temp): New insn and split pattern.
4356         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
4357         memory using fxam<mode>2_i387_with_temp to remove excess precision.
4358
4359 2009-02-19  Richard Guenther  <rguenther@suse.de>
4360
4361         PR tree-optimization/39207
4362         PR tree-optimization/39074
4363         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
4364         storedanything_tree): New.
4365         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
4366         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
4367         (build_succ_graph): Add edges from STOREDANYTHING to all
4368         non-direct nodes.
4369         (init_base_vars): Initialize STOREDANYTHING.
4370         (compute_points_to_sets): Free substitution info after
4371         building the succ graph.
4372         (ipa_pta_execute): Likewise.
4373
4374         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
4375         field.
4376         (do_ds_constraint): Do not add to special var or non-pointer
4377         field solutions.
4378         (type_could_have_pointers): Split out from ...
4379         (could_have_pointers): ... here.  For arrays use the element type.
4380         (create_variable_info_for): Initialize may_have_pointers.
4381         (new_var_info): Likewise.
4382         (handle_lhs_call): Make the HEAP variable unknown-sized.
4383         (intra_create_variable_infos): Use a type with pointers for
4384         PARM_NOALIAS, make it unknown-sized.
4385
4386 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
4387
4388         PR target/39224
4389         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
4390
4391 2009-02-18  Jason Merrill  <jason@redhat.com>
4392
4393         PR target/39179
4394         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
4395         value if DECL_EXTERNAL.
4396         * tree-sra.c (sra_walk_gimple_assign): Likewise.
4397         * target.h (gcc_target::binds_local_p): Clarify "module".
4398         * tree.h (TREE_PUBLIC): Clarify "module".
4399
4400 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
4401
4402         PR target/38891
4403         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
4404         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
4405
4406 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
4407
4408         PR target/39082
4409         * c.opt (Wabi): Support C and ObjC.
4410         (Wpsabi): New.
4411
4412         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
4413
4414         * config/i386/i386.c (classify_argument): Warn once about the ABI
4415         change when passing union with long double.
4416
4417         * doc/invoke.texi: Update -Wabi for warning psABI changes.
4418
4419 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
4420
4421         PR c/35447
4422         * c-parser.c (c_parser_compound_statement): Always enter and leave
4423         a scope.
4424
4425 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4426
4427         PR target/34587
4428         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
4429
4430 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
4431
4432         PR tree-optimization/36922
4433         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
4434         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
4435         Likewise.
4436
4437 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4438
4439         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
4440         to 0 for EABI64.
4441
4442 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4443
4444         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
4445
4446 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4447
4448         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
4449         tree sharing.
4450
4451 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
4452             Richard Sandiford  <rdsandiford@googlemail.com>
4453
4454         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
4455         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
4456         (loongson_biadd): ...this.
4457
4458 2009-02-17  Richard Guenther  <rguenther@suse.de>
4459
4460         PR tree-optimization/39202
4461         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
4462         a var make sure to follow existing collapses.
4463
4464 2009-02-17  Richard Guenther  <rguenther@suse.de>
4465
4466         PR middle-end/39214
4467         * langhooks.c (lhd_print_error_function): Check for NULL block.
4468
4469 2009-02-17  Richard Guenther  <rguenther@suse.de>
4470
4471         PR tree-optimization/39204
4472         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
4473         of the PHI arg.
4474
4475 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
4476
4477         * config/soft-fp/double.h: Update from glibc CVS.
4478
4479 2009-02-17  Richard Guenther  <rguenther@suse.de>
4480
4481         PR tree-optimization/39207
4482         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
4483         strict-aliasing warnings for pointers pointing to NULL.
4484
4485 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
4486
4487         PR c/35446
4488         * c-parser.c (c_parser_braced_init): Call pop_init_level when
4489         skipping until next close brace.
4490
4491 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
4492
4493         PR target/37049
4494         * config/i386/i386.c (ix86_expand_push): Set memory alignment
4495         to function argument boundary.
4496
4497 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
4498
4499         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
4500         in the lea_add. Reload eventually constraints it properly.
4501         * config/picochip/constraints.md : Remove the target constraint
4502         "b", since it is not needed anymore.
4503
4504 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
4505
4506         * gthr-dce.h: Uglify function parameter and local variable names.
4507         * gthr-gnat.h: Likewise.
4508         * gthr-mipssde.h: Likewise.
4509         * gthr-nks.h: Likewise.
4510         * gthr-posix95.h: Likewise.
4511         * gthr-posix.h: Likewise.
4512         * gthr-rtems.h: Likewise.
4513         * gthr-single.h: Likewise.
4514         * gthr-solaris.h: Likewise.
4515         * gthr-tpf.h: Likewise.
4516         * gthr-vxworks.h: Likewise.
4517         * gthr-win32.h: Likewise.
4518
4519 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4520
4521         PR target/39196
4522         * config/i386/i386.md: Restrict the new peephole2 to move
4523         between MMX/SSE registers.
4524
4525 2009-02-15  Richard Guenther  <rguenther@suse.de>
4526
4527         Revert
4528         2009-02-13  Richard Guenther  <rguenther@suse.de>
4529
4530         * configure.ac: Enable LFS.
4531         * configure: Re-generate.
4532         * config.in: Likewise.
4533
4534 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4535
4536         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
4537         spu_srqwbyte, spu_srqwbytebc): Define.
4538         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
4539         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
4540         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
4541         "shrqby_<mode>"): New insn-and-split patterns.
4542         * config/spu/spu.c (expand_builtin_args): Determine and return
4543         number of operands using spu_builtin_description data.
4544         (spu_expand_builtin_1): Use it.
4545
4546 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
4547
4548         PR target/38056
4549         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
4550         TARGET_CONST_GP.
4551
4552 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4553
4554         PR target/39149
4555         * config/i386/i386.c (override_options): Correct warning
4556         messages for -malign-loops, -malign-jumps and -malign-functions.
4557
4558 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4559
4560         PR target/39152
4561         * config/i386/i386.md: Restrict the new peephole2 to move
4562         between the general purpose registers.
4563
4564 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4565
4566         PR target/39162
4567         * config/i386/i386.c (type_natural_mode): Add a new argument.
4568         Return the original mode and warn ABI change if vector size is 32byte.
4569         (function_arg_advance): Updated.
4570         (function_arg): Likewise.
4571         (ix86_function_value): Likewise.
4572         (ix86_return_in_memory): Likewise.
4573         (ix86_sol10_return_in_memory): Likewise.
4574         (ix86_gimplify_va_arg): Likewise.
4575         (function_arg_32): Don't warn ABX ABI change here.
4576         (function_arg_64): Likewise.
4577
4578 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4579
4580         * loop-iv.c (implies_p): In the final case, test that operands 0
4581         of the two comparisons match.
4582
4583         * config/bfin/bfin.c (find_prev_insn_start): New function.
4584         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
4585         (find_next_insn_start): Move.
4586
4587 2009-02-13  Richard Guenther  <rguenther@suse.de>
4588
4589         * configure.ac: Enable LFS.
4590         * configure: Re-generate.
4591         * config.in: Likewise.
4592
4593 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
4594
4595         PR c/35444
4596         * c-parser.c (c_parser_parms_list_declarator): Discard pending
4597         sizes on syntax error after some arguments have been parsed.
4598
4599 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4600
4601         * doc/invoke.texi (-fira): Remove.
4602
4603 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4604
4605         * caller-save.c: Replace regclass.c with reginfo.c in comments.
4606         * recog.c: Likewise.
4607         * rtl.h: Likewise.
4608
4609 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
4610
4611         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
4612         (umul_ppmm): Likewise.
4613         (count_leading_zeros): Likewise.
4614         (count_trailing_zeros): Likewise.
4615         (UMUL_TIME): Likewise.
4616
4617 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4618
4619         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
4620         soft-fp/t-softfp to tmake_file.
4621
4622         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
4623         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
4624         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
4625         IA64_BUILTIN_INFQ]: New.
4626         (ia64_init_builtins): Initialize __builtin_infq,
4627         __builtin_fabsq and __builtin_copysignq if not HPUX.
4628         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
4629         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
4630
4631         * config/ia64/lib1funcs.asm (__divtf3): Define only if
4632         SHARED is defined.
4633         (__fixtfti): Likewise.
4634         (__fixunstfti): Likewise.
4635         (__floattitf): Likewise.
4636
4637         * config/ia64/libgcc-glibc.ver: New.
4638         * config/ia64/t-fprules-softfp: Likewise.
4639         * config/ia64/sfp-machine.h: Likewise.
4640
4641         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
4642         (LIBGCC2_TF_CEXT): Likewise.
4643         (TF_SIZE): Likewise.
4644         (TARGET_INIT_LIBFUNCS): Likewise.
4645
4646         * config/ia64/t-glibc (SHLINB_MAPFILES):
4647         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
4648
4649 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4650
4651         * config/i386/i386.c (construct_container): Rewrite processing
4652         BLKmode with X86_64_SSE_CLASS.
4653
4654 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
4655
4656         PR target/39152
4657         * config/i386/i386.md: Replace simplify_replace_rtx with
4658         replace_rtx in the new peephole2.
4659
4660 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4661
4662         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
4663         loop unrolling do not happen at -O2.
4664
4665 2009-02-12  Michael Matz  <matz@suse.de>
4666
4667         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
4668
4669 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4670
4671         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
4672         for -g3.
4673
4674 2009-02-12  Ben Elliston  <bje@au.ibm.com>
4675
4676         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
4677         patterns when updating the back chain.  Missed in the 2009-02-10
4678         change.
4679
4680 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
4681
4682         * doc/extend.texi (Decimal Floating Types): Update identifier of
4683         draft TR and list of missing support.
4684
4685 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
4686
4687         PR middle-end/39154
4688         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
4689         bit to variable length decl's flags, add it also to its
4690         pointer replacement variable.
4691
4692 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
4693             Jakub Jelinek  <jakub@redhat.com>
4694
4695         PR target/39118
4696         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
4697         (memory_blockage): New expander.
4698         (*memory_blockage): New insn pattern.
4699         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
4700         instead of general blockage at the end of function prologue when
4701         frame pointer is used to access red zone area.  Do not emit blockage
4702         when profiling, it is emitted in generic code.
4703         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
4704         function epilogue when frame pointer is used to access red zone area.
4705
4706 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
4707
4708         PR target/38824
4709         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
4710         by arithmetic with memory operands.
4711         * config/i386/predicates.md (commutative_operator): New.
4712
4713 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
4714
4715         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
4716         bulleted lists.
4717
4718 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
4719
4720         * alias.h (record_alias_subset): Declare.
4721         * alias.c (record_alias_subset): Make global.
4722
4723 2009-02-10  Nick Clifton  <nickc@redhat.com>
4724
4725         * tree-parloops.c: Change license to GPLv3.
4726         * ipa-struct-reorg.c: Change license to GPLv3.
4727         * ipa-struct-reorg.h: Change license to GPLv3.
4728
4729 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
4730
4731         PR c/39084
4732         * c-decl.c (start_struct): Return NULL on error.
4733
4734 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
4735
4736         PR middle-end/39124
4737         * cfgloopmanip.c (remove_path): Call remove_bbs after
4738         cancel_loop_tree, not before it.
4739
4740         PR target/39139
4741         * function.h (struct function): Add has_local_explicit_reg_vars bit.
4742         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
4743         VAR_DECLs were seen.
4744         * tree-ssa-live.c (remove_unused_locals): Recompute
4745         cfun->has_local_explicit_reg_vars.
4746         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
4747         copies or clearings if cfun->has_local_explicit_reg_vars.
4748
4749 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
4750
4751         PR target/39118
4752         * config/i386/i386.c (expand_prologue): Emit blockage at the end
4753         of function prologue when frame pointer is used to access
4754         red zone area.
4755
4756 2009-02-10  Richard Guenther  <rguenther@suse.de>
4757
4758         PR middle-end/39127
4759         * gimplify.c (gimple_regimplify_operands): Always look if
4760         we need to create a temporary.
4761
4762 2009-02-10  Richard Guenther  <rguenther@suse.de>
4763
4764         PR tree-optimization/39132
4765         * tree-loop-distribution.c (todo): New global var.
4766         (generate_memset_zero): Trigger TODO_rebuild_alias.
4767         (tree_loop_distribution): Return todo.
4768
4769 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
4770
4771         PR target/39119
4772         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
4773         (x86_64_reg_class_name): Removed.
4774         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
4775         first one isn't X86_64_SSE_CLASS or any other ones aren't
4776         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
4777         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
4778         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
4779         and 3 X86_64_SSEUP_CLASS.
4780         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
4781         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
4782
4783 2009-02-10  Ben Elliston  <bje@au.ibm.com>
4784
4785         * config/rs6000/rs6000.md (allocate_stack): Always use an update
4786         form instruction to update the stack back chain word, even if the
4787         user has disabled the generation of update instructions.
4788         (movdi_<mode>_update_stack): New.
4789         (movsi_update_stack): Likewise.
4790         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
4791         always use an update form instruction to update the stack back
4792         chain word.
4793
4794 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
4795
4796         PR middle-end/38953
4797         * graphite.c (if_region_set_false_region): After moving a region in
4798         the false branch of a condition, remove the empty dummy basic block.
4799         (gloog): Remove wrong fix for PR38953.
4800
4801 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4802
4803         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
4804         generation due to implicit sign extension.
4805
4806 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
4807
4808         PR middle-end/38981
4809         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
4810         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
4811
4812 2009-02-09  Richard Guenther  <rguenther@suse.de>
4813
4814         PR middle-end/35202
4815         * convert.c (convert_to_real): Disable (float)fn((double)x)
4816         to fnf(x) conversion if errno differences may occur and
4817         -fmath-errno is set.
4818
4819 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
4820
4821         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
4822         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4823         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4824
4825 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
4826
4827         PR c/35434
4828         * c-common.c (handle_alias_attribute): Disallow attribute for
4829         anything not a FUNCTION_DECL or VAR_DECL.
4830
4831 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
4832
4833         PR c/39035
4834         * real.c (do_compare): Special-case compare of zero against
4835         decimal float value.
4836
4837 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
4838
4839         PR c/36432
4840         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
4841         as indicating flexible array members unless the field itself is
4842         being declarared as the incomplete array.
4843
4844 2009-02-06  Jan Hubicka  <jh@suse.cz>
4845
4846         PR tree-optimization/38844
4847         * ipa-inline.c (try_inline): Stop inlining recursion when edge
4848         is already inlined.
4849
4850 2009-02-06  Richard Guenther  <rguenther@suse.de>
4851
4852         PR middle-end/38977
4853         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
4854         fork because we may expand it as __gcov_fork.
4855
4856 2009-02-06  Nick Clifton  <nickc@redhat.com>
4857
4858         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
4859
4860 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
4861
4862         PR tree-optimization/35659
4863         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
4864         vn_phi_eq): Shortcut if hashcode does not match.
4865         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
4866         NULL operands.
4867         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
4868         and avoid iterative_hash_expr.
4869         (FOR_EACH_VALUE_ID_IN_SET): New.
4870         (value_id_compare): Remove.
4871         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
4872         sort expressions by value id.
4873
4874 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4875
4876         PR target/38991
4877         * config/sh/predicates.md (general_movsrc_operand): Don't check
4878         the subreg of system registers here.
4879
4880 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
4881
4882         PR c++/39106
4883         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
4884         on the copied decl.
4885
4886 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
4887
4888         PR rtl-optimization/39110
4889         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
4890         addresses, not aligned ones.
4891
4892 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
4893             Richard Guenther  <rguenther@suse.de>
4894
4895         PR tree-optimization/39100
4896         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
4897         comment says and add edges.
4898
4899 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
4900
4901         PR c/35435
4902         * c-common.c (handle_tls_model_attribute): Ignore attribute for
4903         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
4904
4905 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
4906
4907         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
4908         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
4909         register_bb_in_sese, new_sese, free_sese): Moved.
4910         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
4911         outermost_loop_in_scop, build_scop_iteration_domain,
4912         expand_scalar_variables_ssa_name, get_vdef_before_scop,
4913         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
4914         Use loop_in_sese_p instead of loop_in_scop_p.
4915         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
4916         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
4917         (scopdet_basic_block_info): Fix bug in scop detection.
4918         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
4919         eq_loop_to_cloog_loop): Remove.
4920         (nb_loops_around_loop_in_scop, nb_loop
4921         ref_nb_loops): Moved here...
4922         * graphite.h (ref_nb_loops): ... from here.
4923         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
4924         (loop_domain_dim, loop_iteration_vector_dim): Remove.
4925         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
4926         * testsuite/gcc.dg/graphite/scop-19.c: New
4927
4928 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
4929             Hans-Peter Nilsson  <hp@axis.com>
4930
4931         PR rtl-optimization/37889
4932         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
4933         Move offset handling from PLUS to before the switch.  Use new
4934         arguments when considering SYMBOL_REFs too.
4935         (rtx_addr_can_trap_p): Pass dummy offset and size.
4936         (enum may_trap_p_flags): Remove.
4937         (may_trap_p_1): Pass size from MEM_SIZE.
4938
4939         PR rtl-optimization/38921
4940         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
4941         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
4942         * rtlanal.c (may_trap_after_code_motion_p): Delete.
4943         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
4944
4945 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
4946
4947         AVX Programming Reference (January, 2009)
4948         * config/i386/sse.md (*vpclmulqdq): New.
4949
4950 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
4951
4952         PR tree-optimization/38977
4953         PR gcov-profile/38292
4954         * calls.c (special_function_p): Disregard __builtin_ prefix.
4955
4956 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
4957
4958         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
4959         non-indexable addresses even before reload.
4960
4961 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
4962
4963         PR c/29129
4964         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
4965         as having variable size.  Do not give an error for unnamed
4966         parameters with [*] declarators.  Give a warning for type names
4967         with [*] declarators and mark them as variable size.
4968         * c-parser.c (c_parser_sizeof_expression): Do not give an error
4969         for sizeof applied to [*] type names.
4970
4971 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4972
4973         PR C++/36607
4974         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
4975
4976 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
4977
4978         * gcc.c (process_command): Update copyright notice dates.
4979         * gcov.c (print_version): Likewise.
4980         * gcov-dump.c (print_version): Likewise.
4981         * mips-tfile.c (main): Likewise.
4982         * mips-tdump.c (main): Likewise.
4983
4984 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
4985
4986         PR c/35433
4987         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
4988         for composite type involving a zero-length array type.
4989
4990 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
4991
4992         PR target/35318
4993         * function.c (match_asm_constraints_1): Skip over
4994         initial optional % in the constraint.
4995
4996         PR inline-asm/39059
4997         * c-parser.c (c_parser_postfix_expression): If fixed point is not
4998         supported, don't accept FIXED_CSTs.
4999         * c-decl.c (finish_declspecs): Error if fixed point is not supported
5000         and _Sat is used without _Fract/_Accum.  Set specs->type to
5001         integer_type_node for cts_fract/cts_accum if fixed point is not
5002         supported.
5003
5004 2009-02-02  Catherine Moore  <clm@codesourcery.com>
5005
5006         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
5007
5008 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5009
5010         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
5011         (ABI_HAS_64BIT_SYMBOLS): Use it.
5012         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
5013
5014 2009-02-02  Paul Brook  <paul@codesourcery.com>
5015
5016         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
5017
5018 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
5019
5020         PR inline-asm/39058
5021         * recog.h (asm_operand_ok): Add constraints argument.
5022         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
5023         recurse on matching constraint.
5024         (check_asm_operands): Pass constraints as 3rd argument to
5025         asm_operand_ok.  Don't look up matching constraint here.
5026         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
5027         to asm_operand_ok.
5028
5029 2009-02-02  Ben Elliston  <bje@au.ibm.com>
5030
5031         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
5032         TARGET_NARROW_VOLATILE_BITFIELD macro names.
5033
5034 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5035
5036         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
5037         information.  Remove some obsolete information.  Reorganize.
5038
5039         * config/pa/fptr.c: Revert license to GPL 2.
5040         * config/pa/milli64.S: Likewise.
5041
5042 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5043
5044         PR target/38904
5045         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
5046         LIBRARY name in, instead of hard-coding it.
5047         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
5048         extra target make frag to tmake_files according to EH model.
5049         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
5050         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
5051         frags that define makefile variable EH_MODEL appropriately.
5052         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
5053         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
5054         to "-sjlj" according to type of EH configured.
5055         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5056         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
5057         to "_sjlj" according to type of EH configured.
5058         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5059         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
5060         (SHLIB_LINK):  Add missing semicolon to if-else construct.
5061         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5062         string value of "pe_dll" command-line option.
5063         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
5064         (SHLIB_SONAME):  Use it when overriding t-cygming default.
5065         (SHLIB_IMPLIB):  Override t-cygming default.
5066         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5067         string value of "pe_dll" command-line option.
5068
5069 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5070
5071         PR target/38952
5072         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
5073         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
5074
5075 2009-01-31  Richard Guenther  <rguenther@suse.de>
5076
5077         PR tree-optimization/38937
5078         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
5079         computing the transitive closure.
5080
5081 2009-01-30  Richard Guenther  <rguenther@suse.de>
5082
5083         PR tree-optimization/39041
5084         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
5085         Propagate variable indices only if the types match for this stmt.
5086
5087 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
5088
5089         PR target/39013
5090         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
5091         inline but never defined.
5092
5093 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
5094
5095         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
5096         (*insv_h_di_reg_extimm): New insn.
5097         (*insv_l<mode>_reg_extimm): New insn.
5098
5099 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5100
5101         * config/picochip/picochip.c (flag_conserve_stack): set
5102         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
5103         fconserve-stack. Reduce call-overhead used by inliner.
5104
5105 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5106
5107         PR/38157
5108         * common.opt (flag_conserve_stack): Initialised to zero.
5109
5110 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
5111
5112         PR/39002
5113         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
5114         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
5115         method.
5116
5117 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
5118
5119         * ira-color.c (allocno_reload_assign): Update comments.
5120         * regmove.c (regmove_optimize): Likewise.
5121
5122         * ra.h: Removed.
5123
5124 2009-01-29  Robert Millan  <rmh@aybabtu.com>
5125
5126         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
5127         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
5128         `MD_UNWIND_SUPPORT'.
5129         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
5130
5131 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
5132
5133         PR tree-optimization/39007
5134         * tree-loop-distribution.c (generate_builtin): Use
5135         recompute_dominator to compute the immediate dominator of the
5136         basic block just after the loop.
5137
5138 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5139
5140         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
5141         (ASM_OUTPUT_DWARF_PCREL): Define.
5142
5143 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
5144
5145         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
5146         * doc/passes.texi: Remove entries about regclass, local-alloc, and
5147         global.  Modify entries about regmove and IRA.
5148
5149         * ra-conflict.c: Remove the file.
5150
5151         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
5152
5153         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
5154         (pass_regclass_init): Rename to pass_reginfo_init.
5155
5156         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
5157
5158         * toplev.h (flag_ira): Remove.
5159
5160         * caller-save.c (setup_save_areas): Remove flag_ira.
5161
5162         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
5163
5164         * global.c: Remove the file.
5165
5166         * opts.c (decode_options): Remove flag_ira.
5167
5168         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
5169
5170         * regmove.c: Modify file description.
5171         (find_use_as_address, try_auto_increment): Define them only if
5172         AUTO_INC_DEC is defined.
5173         (replacement_quality, replace_in_call_usage, fixup_match_1,
5174         stable_and_no_regs_but_for_p): Remove.
5175         (reg_set_in_bb): Make it static.
5176         (regmove_optimize): Remove flag_ira and code which worked for
5177         !flag_ira.
5178
5179         * local-alloc.c: Remove the file.
5180
5181         * common.opt (fira): Remove.
5182
5183         * ira.c: Include except.h.
5184         (eliminable_regset): Move from global.c.
5185         (mark_elimination): Ditto.  Remove flag_ira.
5186         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
5187         equiv_mem_modified, validate_equiv_mem_from_store,
5188         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
5189         contains_replace_regs, memref_referenced_p, memref_used_between_p,
5190         no_equiv, recorded_label_ref): Move from local-alloc.c.
5191         (update_equiv_regs): Ditto.  Make it static.
5192         (print_insn_chain, print_insn_chains): Move it from global.c.
5193         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
5194         (build_insn_chain): Ditto.  Make it static.
5195         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
5196         Rename to init_live_subregs.
5197         (gate_ira): Remove flag_ira.
5198
5199         * regclass.c: Rename reginfo.c.  Change file description.
5200         (FORBIDDEN_INC_DEC_CLASSES): Remove.
5201         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
5202         (init_reg_sets_1): Remove code for evaluation of
5203         reg_class_superclasses and losing_caller_save_reg_set.
5204         (init_regs): Remove init_reg_autoinc.
5205         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
5206         ok_for_base_p_nonstrict): Remove.
5207         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
5208         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
5209         corresponding entries.
5210         (dump_regclass, record_operand_costs, scan_one_insn,
5211         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
5212         record_address_regs, auto_inc_dec_reg_p): Remove.
5213         (gt-regclass.h): Rename to gt-reginfo.h.
5214
5215         * rtl.h (dump_global_regs, retry_global_alloc,
5216         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
5217
5218         * Makefile.in (RA_H): Remove.
5219         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
5220         Rename regclass.o to reginfo.o.
5221         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
5222         gt-reginfo.h.
5223         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
5224         (GTFILES): Rename regclass.c to reginfo.c.
5225
5226         * passes.c (init_optimization_passes): Remove pass_local_alloc and
5227         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
5228
5229         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5230         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
5231         Remove flag_ira.
5232         (finish_spills): Ditto.  Remove code for !flag_ira.
5233         
5234 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
5235
5236         PR middle-end/35854
5237         * doc/invoke.texi (rtl debug options): Complete rewrite.
5238         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
5239         to auto_inc_dec".
5240         * mode-switching.c (pass_mode_switching): Rename pass from
5241         "mode-sw" to "mode_sw".
5242         * except.c (pass_convert_to_eh_ranges): Rename pass from
5243         "eh-ranges" to "eh_ranges".
5244         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
5245         to "subreg1".
5246                 
5247         
5248 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
5249             Alexander Monakov  <amonakov@ispras.ru>
5250
5251         PR middle-end/38857
5252         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
5253         register.
5254         (move_exprs_to_boundary): Change return type and pass through
5255         should_move from move_op.  Relax assert.  Update usage ...
5256         (schedule_expr_on_boundary): ... here.  Use should_move instead of
5257         cant_move.
5258         (move_op_orig_expr_found): Indicate that insn was disconnected from
5259         stream.
5260         (code_motion_process_successors): Do not call after_merge_succs
5261         callback if original expression was not found when traversing any of
5262         the branches.
5263         (code_motion_path_driver): Change return type.  Update prototype.
5264         (move_op): Update comment.  Add a new parameter (should_move).  Update
5265         prototype.  Set *should_move based on indication provided by
5266         move_op_orig_expr_found.
5267
5268 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
5269
5270         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
5271         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
5272         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
5273         * config/rs6000/rs6000.c (rs6000_override_options): Default
5274         avoid-indexed-addresses on for Power6, off for everything else.
5275         (avoiding_indexed_address_p): New function.
5276         (rs6000_legitimize_address): Use it.
5277         (rs6000_legitimate_address): Likewise.
5278         * config/rs6000/rs6000.md (movXX_updateX): Likewise
5279
5280 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
5281
5282         PR tree-optimization/38997
5283         * tree-loop-distribution.c (generate_memset_zero): Use
5284         POINTER_PLUS_EXPR for a pointer addition.
5285
5286 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5287
5288         * config/s390/s390.md (bswap<mode>2): New pattern added.
5289
5290 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5291
5292         * config/s390/s390.md (*tls_load_31): Added type attribute.
5293
5294 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5295
5296         * config/s390/s390.md: Fix a few comments.
5297
5298 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5299
5300         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
5301         (*tm<mode>_full): Fixed z10prop attribute.
5302         (*tst<mode>_extimm): Fixed z10prop attribute.
5303         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
5304         (*tstqiCCT_cconly): Fixed z10prop attribute.
5305         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
5306         (*movsi_larl): Fixed z10prop attribute.
5307         (*movsi_zarch): Fixed z10prop attribute.
5308         (*movsi_eas): Fixed z10prop attribute.
5309         (*movhi): Fixed z10prop attribute.
5310         (*movqi): Fixed z10prop attribute.
5311         (*movstrictqi): Fixed z10prop attribute.
5312         (*mov<mode>): Fixed z10prop attribute.
5313         (*movcc): Fixed z10prop attribute.
5314         (*sethighpartdi_64): Fixed z10prop attribute.
5315         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
5316         (*negdi2_sign_cc): Fixed z10prop attribute.
5317         (*negdi2_sign): Fixed z10prop attribute.
5318         (*absdi2_sign_cc): Fixed z10prop attribute.
5319         (*absdi2_sign): Fixed z10prop attribute.
5320         (*negabsdi2_sign_cc): Fixed z10prop attribute.
5321         (*negabsdi2_sign): Fixed z10prop attribute.
5322         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
5323         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
5324         (doloop_si64): Fixed z10prop attribute.
5325         (doloop_si31): Fixed z10prop attribute.
5326         (doloop_long): Fixed z10prop attribute.
5327         (indirect_jump): Fixed z10prop attribute.
5328         (nop): Fixed z10prop attribute.
5329         (main_base_64): Fixed z10prop attribute.
5330         (reload_base_64): Fixed z10prop attribute.
5331
5332 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5333
5334         PR rtl-optimization/38740
5335         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
5336         if !optimize.
5337         * config/mips/mips.c (mips_reorg): Likewise.
5338
5339 2009-01-28  Richard Guenther  <rguenther@suse.de>
5340
5341         PR tree-optimization/38926
5342         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
5343         with the correct value id to a value.
5344         (do_regular_insertion): Use the value number of edoubleprime
5345         for the value number of the expr.
5346
5347         Revert
5348         2008-08-21  Richard Guenther  <rguenther@suse.de>
5349
5350         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
5351         a PHI ask VN if it is already available.
5352         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
5353         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
5354
5355 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5356
5357         PR middle-end/38934
5358         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
5359         set to varying whenever max has TREE_OVERFLOW set, similarly
5360         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
5361
5362 2009-01-28  Richard Guenther  <rguenther@suse.de>
5363
5364         PR middle-end/38908
5365         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
5366         uninitialized aggregate uses in call arguments.
5367
5368 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
5369
5370         PR tree-optimization/38984
5371         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
5372         the nothing_id variable if -fno-delete-null-pointer-checks.
5373
5374 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
5375
5376         PR target/38988
5377         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
5378         (set_got_offset_rex64): Ditto.
5379
5380 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
5381
5382         PR target/38941
5383         * doc/extend.texi: Improve local variable with asm reg.
5384
5385 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
5386
5387         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
5388         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
5389         was not supplied then set warn_packed_bitfield_compat to the
5390         default value of 1.
5391         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
5392         against 1.
5393
5394 2009-01-27  Richard Guenther  <rguenther@suse.de>
5395
5396         PR tree-optimization/38503
5397         * cfgexpand.c (expand_gimple_basic_block): Ignore
5398         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
5399         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
5400         variables that cannot have TBAA applied.
5401         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
5402         statements.
5403
5404 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
5405
5406         PR middle-end/38969
5407         * calls.c (initialize_argument_information): Do not wrap complex
5408         arguments in SAVE_EXPR.
5409
5410 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
5411
5412         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5413         (INSTALL_LIBGCC): Revert typo commit.
5414
5415 2009-01-26  Richard Guenther  <rguenther@suse.de>
5416
5417         PR tree-optimization/38745
5418         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
5419         from special handling.
5420
5421 2009-01-26  Richard Guenther  <rguenther@suse.de>
5422
5423         PR tree-optimization/38745
5424         * tree-ssa.c (execute_update_addresses_taken): Do not include
5425         variables that cannot possibly be a register in not_reg_needs.
5426         Do not clear TREE_ADDRESSABLE on vars that may not become
5427         registers.
5428         * tree-ssa.c (update_alias_info_1): Include those in the set
5429         of addressable vars.
5430
5431 2009-01-26  Richard Guenther  <rguenther@suse.de>
5432
5433         PR middle-end/38851
5434         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
5435         * tree-ssa-dse.c: Include langhooks.h
5436         (execute_simple_dse): Remove stores with zero size.
5437
5438 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
5439
5440         PR c/38957
5441         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
5442         as PLUS_EXPR.
5443
5444 2009-01-24  Julian Brown  <julian@codesourcery.com>
5445
5446         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
5447         config/arm/linux-atomic.c.
5448         * config/arm/linux-atomic.c: New.
5449
5450 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
5451
5452         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
5453         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
5454         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5455
5456 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
5457
5458         PR c/38938
5459         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
5460         properly.
5461
5462 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
5463
5464         PR tree-optimization/38953
5465         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
5466         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
5467         (gloog): Split the exit of the scop when the scop exit is a loop exit.
5468         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
5469         changed the CFG.
5470
5471 2009-01-24  Paul Brook  <paul@codesourcery.com>
5472
5473         * config/arm/neon.md (neon_type): Move to arm.md.
5474         (neon_mov<VSTRUCT>): Add neon_type attribute.
5475         * config/arm/arm.md (neon_type): Move to here.
5476         (conds): Add "unconditioal" and use as default for NEON insns.
5477
5478 2009-01-24  Ben Elliston  <bje@au.ibm.com>
5479
5480         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
5481         void *' warning from -Wc++-compat.
5482         * Makefile.in (dominance.o-warn): Remove.
5483
5484 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
5485
5486         PR tree-optimization/38932
5487         * fold-const.c (fold_unary_ignore_overflow): New.
5488         * tree.h (fold_unary_ignore_overflow): Declare.
5489         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
5490         * tree-ssa-sccvn.c (visit_reference_op_load,
5491         simplify_unary_expression): Likewise.
5492
5493 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
5494
5495         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
5496         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
5497         regardless of their type.
5498         * c-common.c (handle_packed_attribute): Don't ignore packed on
5499         bitfields.
5500         * c.opt (Wpacked-bitfield-compat): New warning option.
5501         * stor-layout.c (place_field): Warn if offset of a field changed.
5502         * doc/extend.texi (packed): Mention the ABI change.
5503         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
5504         (Warning Options): Add it to the list.
5505
5506 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
5507
5508         * c-opts.c (c_common_post_options): Fix a typo in comments.
5509
5510 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
5511
5512         PR middle-end/38615
5513         * gimplify.c (gimplify_init_constructor): Fix promotion of const
5514         variables to static.
5515         * doc/invoke.texi (-fmerge-all-constants): Update description.
5516
5517 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
5518
5519         PR target/38931
5520         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
5521         (*movdi_1_rex64): Use type "mmx" for alternative 5.
5522
5523 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
5524
5525         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
5526         a word boundary.
5527         (LOCAL_ALIGNMENT): Similarly.
5528
5529 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5530             Joseph Myers  <joseph@codesourcery.com>
5531
5532         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
5533         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
5534         * config/arm/arm-tune.md: Regenerate.
5535         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
5536         -march=iwmmxt2.
5537
5538 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5539
5540         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
5541         version number to five.
5542
5543 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
5544
5545         PR c++/38930
5546         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
5547         * c-common.c (set_underlying_type): Likewise.
5548         (is_typedef_decl ): Likewise
5549         * tree.h: Likewise
5550         (set_underlying_type): Likewise.
5551         (is_typedef_type): Likewise.
5552
5553 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
5554
5555         PR middle-end/38587
5556         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
5557         crossing setjmps.
5558
5559 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
5560
5561         PR bootstrap/37660
5562         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
5563         (LIBGCC_SPEC):  Don't define.
5564         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
5565
5566 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
5567
5568         PR rtl-optimization/38879
5569         * alias.c (base_alias_check): Unaligned access via AND address can
5570         alias all surrounding object types except those with sizes equal
5571         or wider than the size of unaligned access.
5572
5573 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
5574
5575         PR c++/26693
5576         * c-decl.c (clone_underlying_type): Move this ...
5577         * c-common.c (set_underlying_type): ... here.
5578         Also, make sure the function properly sets TYPE_STUB_DECL() on
5579         the newly created typedef variant type.
5580         (is_typedef_decl ): New entry point.
5581         * tree.h: Added a new member member_types_needing_access_check to
5582         struct tree_decl_non_common.
5583         (set_underlying_type): New entry point.
5584         (is_typedef_type): Likewise.
5585
5586 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
5587
5588         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
5589         Check whether two instructions have memory references that
5590         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
5591         are helper functions for traversing.
5592         * alias.h (insn_alias_sets_confilict_p): New prototypes.
5593         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
5594         not to draw dependency edge for instructions with non-conflicting
5595         alias sets.
5596
5597 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
5598
5599         PR other/38758
5600         * longlong.h: Update copyright years.  Use soft-fp license notice.
5601         Sync __clz_tab declaration with glibc.
5602
5603 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
5604
5605         PR target/30687
5606         * doc/extend.texi (syscall_linkage): New.
5607         (version_id): Modify.
5608
5609 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5610             Richard Guenther  <rguenther@suse.de>
5611
5612         PR tree-optimization/38747
5613         PR tree-optimization/38748
5614         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
5615         conversion if the base address is an indirect reference and the
5616         aliasing sets could cause issues.
5617
5618 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5619
5620         * common.opt (fgraphite, fgraphite-identity): Add comment for 
5621         explaining why these options are not documented.
5622
5623 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5624
5625         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
5626         gimple_call_lhs is NULL.
5627
5628 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
5629
5630         PR target/38868
5631         * emit-rtl.c (adjust_address_1): Make sure memref is never
5632         overwritten.
5633
5634 2009-01-20  Ben Elliston  <bje@au.ibm.com>
5635
5636         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5637         const qualifier from arg parameter. Remove unnecessary cast to char *.
5638         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5639         const qualifier from arg 2.
5640
5641 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
5642
5643         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
5644
5645 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
5646
5647         PR c/38869
5648         * rtl.h (reinit_regs): New prototype.
5649         * regclass.c: Include ira.h.
5650         (reinit_regs): New.
5651         * Makefile.in (regclass.o): Add ira.h.
5652         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
5653
5654 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
5655
5656         PR target/38736
5657         * c-common.c (handle_aligned_attribute): Use
5658         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
5659         default alignment value.
5660
5661         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
5662
5663         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
5664         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
5665
5666         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
5667         __BIGGEST_ALIGNMENT__.
5668
5669         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
5670
5671 2009-01-18  Richard Guenther  <rguenther@suse.de>
5672
5673         PR tree-optimization/38819
5674         * tree-flow.h (operation_could_trap_helper_p): Declare.
5675         * tree-eh.c (operation_could_trap_helper_p): Export.
5676         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
5677         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
5678         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
5679         are about to insert a possibly trapping instruction and fail
5680         in this case.
5681
5682 2009-01-18  Andreas Schwab  <schwab@suse.de>
5683
5684         * doc/install.texi (Configuration): Remove obsolete paragraph
5685         about use of --with-gnu-ld with --with-gnu-as.
5686
5687 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
5688
5689         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
5690         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
5691         Follow spelling conventions.
5692
5693 2009-01-18  Ben Elliston  <bje@au.ibm.com>
5694
5695         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
5696         C++ warning about implicit conversion from void * to struct
5697         bitmap_head_def *.
5698         (bitmap_obstack_free): Likewise for bitmap_element *.
5699         * Makefile.in (bitmap.o-warn): Remove.
5700
5701 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
5702
5703         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
5704
5705 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
5706             Tobias Grosser  <tobi.grosser@amd.com>
5707
5708         * graphite.c (graphite_trans_scop_block): Do not block single
5709         nested loops.
5710
5711 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
5712
5713         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
5714         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
5715         test with assertion.
5716
5717 2009-01-16  Richard Guenther  <rguenther@suse.de>
5718
5719         PR tree-optimization/38835
5720         PR middle-end/36227
5721         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
5722         and INT + PTR -> (INT)(PTR p+ INT) folding.
5723         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
5724
5725 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
5726
5727         PR target/38554
5728         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
5729         the subreg from a lowpart subreg if it is also casting the value.
5730
5731 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5732             Tobias Grosser  <tobi.grosser@amd.com>
5733
5734         * graphite.c (compare_prefix_loops): New.
5735         (build_scop_canonical_schedules): Rewritten.
5736         (graphite_transform_loops): Move build_scop_canonical_schedules
5737         after build_scop_iteration_domain.
5738
5739 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5740             Tobias Grosser  <tobi.grosser@amd.com>
5741
5742         * graphite.c (add_conditions_to_domain): Add the loops to 
5743         the dimension of the iteration domain.  Do copy the domain
5744         only when it exists.
5745         (build_scop_conditions_1): Do not call add_conditions_to_domain.
5746         (add_conditions_to_constraints): New.
5747         (can_generate_code_stmt, can_generate_code): Removed.
5748         (gloog): Do not call can_generate_code.
5749         (graphite_transform_loops): Call add_conditions_to_constraints
5750         after building the iteration domain.
5751
5752 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
5753
5754         PR tree-optimization/38789
5755         * tree-ssa-threadedge.c
5756         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5757         __builtin_constant_p.
5758
5759 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
5760
5761         * dce.c (delete_unmarked_insns): Reversed the order that insns are
5762         examined before deleting them.
5763         
5764 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
5765
5766         * function.c (aggregate_value_p): Correctly extract the function
5767         type from CALL_EXPR_FN lookup.
5768
5769 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5770
5771         * config/picochip/picochip.c (picochip_override_options): Revert
5772         CFI asm flag disable commited previously.
5773
5774 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
5775             Tobias Grosser  <tobi.grosser@amd.com>
5776             Jan Sjodin  <jan.sjodin@amd.com>
5777
5778         * graphite.c (scan_tree_for_params): On substractions negate
5779         all the coefficients of the term.
5780         (clast_to_gcc_expression_red): New.  Handle reduction expressions
5781         of more than two operands.
5782         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
5783         (get_vdef_before_scop): Handle also the case of default definitions.
5784
5785 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
5786
5787         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
5788         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
5789         Also use them when walking CALL_INSN_FUNCTION_USAGE.
5790
5791 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
5792             Joey Ye  <joey.ye@intel.com>
5793
5794         PR middle-end/37843
5795         * cfgexpand.c (expand_stack_alignment): Don't update stack
5796         boundary nor check incoming stack boundary here.
5797         (gimple_expand_cfg): Update stack boundary and check incoming
5798         stack boundary here.
5799
5800 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
5801
5802         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
5803         
5804 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
5805
5806         PR rtl-optimization/38245
5807         * calls.c (expand_call): Add stack arguments to
5808         CALL_INSN_FUNCTION_USAGE even for pure calls (when
5809         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
5810         in regs and partially in memory or BLKmode arguments.
5811         (emit_library_call_value_1): Add stack arguments to
5812         CALL_INSN_FUNCTION_USAGE even for pure calls (when
5813         ACCUMULATE_OUTGOING_ARGS).
5814         * dce.c: Include tm_p.h.
5815         (find_call_stack_args): New function.
5816         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
5817         argument.
5818         (mark_insn): Call find_call_stack_args for CALL_Ps.
5819         (prescan_insns_for_dce): Walk insns backwards in bb rather than
5820         forwards.  Allocate and free arg_stores bitmap if needed, pass it
5821         down to deletable_insn_p, don't mark stores set in arg_stores
5822         bitmap, clear the bitmap at the beginning of each bb.
5823         * Makefile.in (dce.o): Depend on $(TM_P_H).
5824
5825 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
5826
5827         PR target/22599
5828         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
5829         to make sure the insn is a conditional test (bug 22599).  Reformat a
5830         few long lines.
5831
5832 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
5833
5834         PR middle-end/38431
5835         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
5836         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
5837         (gloog): Do not call cleanup_tree_cfg.
5838         (graphite_transform_loops): Call cleanup_tree_cfg after all 
5839         scops have been code generated.
5840
5841 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
5842         * doc/gty.texi (Invoking the garbage collector): Added new node
5843         and section documenting ggc_collect.
5844
5845 2009-01-14  Richard Guenther  <rguenther@suse.de>
5846
5847         PR tree-optimization/38826
5848         PR middle-end/38477
5849         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
5850         initialization notes only if we actually emitted a warning.
5851         (intra_create_variable_infos): Add constraints for a result decl
5852         that is passed by hidden reference.
5853         (build_pred_graph): Mark all related variables non-direct on
5854         address-taking.
5855
5856 2009-01-14  Nick Clifton  <nickc@redhat.com>
5857
5858         * ira-conflicts.c: Include addresses.h for the definition of
5859         base_reg_class.
5860         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
5861         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
5862
5863 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
5864
5865         PR target/38811
5866         * Makefile.in (ira-lives.o): Add except.h.
5867
5868         * ira-lives.c: Include except.h.
5869         (process_bb_node_lives): Process can_throw_internal.
5870
5871 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
5872
5873         PR rtl-optimization/38774
5874         * combine.c (simplify_set): When undoing cc_use change, don't do
5875         PUT_CODE on the newly created comparison, but instead put back the
5876         old comparison.
5877
5878 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
5879
5880         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
5881         values.  Remove duplicate arm8 entry.
5882
5883 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
5884
5885         PR tree-optimization/38786
5886         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
5887         the SSA_NAME case of expand_scalar_variables_expr.
5888         Set the type of an expression to the type of its assign statement.
5889         (expand_scalar_variables_expr): Also gather the scalar computation
5890         used to index the memory access.  Do not pass loop_p.
5891         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
5892         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
5893         the gimple_stmt_iterator where it inserts new code.
5894         Do not pass loop_p.
5895         (copy_bb_and_scalar_dependences): Do not pass loop_p.
5896         (translate_clast): Update call to copy_bb_and_scalar_dependences.
5897
5898 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
5899
5900         * graphite.h (debug_value): Removed.
5901         * graphite.c (debug_value): Removed.
5902
5903 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
5904
5905         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
5906         ldrd/strd with two 32-bit instructions.
5907
5908 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
5909
5910         * config/arm/arm.c (struct processors): Pass for speed down into
5911         cost helper functions.
5912         (const_ok_for_op): Handle COMPARE and inequality nodes.
5913         (arm_rtx_costs_1): Rewrite.
5914         (arm_size_rtx_costs): Update prototype.
5915         (arm_rtx_costs): Pass speed down to helper functions.
5916         (arm_slowmul_rtx_costs): Rework cost calculations.
5917         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
5918         (arm_9e_rtx_costs): Likewise.
5919
5920 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
5921
5922         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
5923         relocations of local symbols wider than UNITS_PER_WORD are not valid.
5924         (alpha_legitimize_address): Do not split local symbols wider than
5925         UNITS_PER_WORD into HIGH/LO_SUM parts.
5926
5927 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
5928
5929         PR bootstrap/38580
5930         * gcc.c (process_command): Replace call to execvp with calls
5931         to pex_one and exit.
5932
5933 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
5934
5935         PR target/29141
5936         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
5937         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
5938         variant for devices with 3-byte PC.
5939         (__tablejump_elpm__): New.
5940
5941 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
5942
5943         PR c/32041
5944         * c-parser.c (c_parser_postfix_expression): Allow `->' in
5945         offsetof member-designator, handle it as `[0].'.
5946
5947 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5948
5949         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
5950         function when not using named sections on targets with named sections
5951         if branch distance is less than 262132.
5952
5953 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
5954
5955         * combine.c (combine_instructions):  Recompute
5956         optimize_this_for_speed_p  for each BB in the main combine loop.
5957
5958 2009-01-12  Tomas Bily  <tbily@suse.cz>
5959
5960         PR middlend/38385
5961         * tree-loop-distribution.c (prop_phis): New function.
5962         (generate_builtin): Call prop_phis.
5963         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
5964
5965 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
5966
5967         PR tree-optimization/38807
5968         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
5969         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
5970
5971 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
5972
5973         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
5974         subreg of op0 to the original op0.
5975
5976 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
5977
5978         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
5979         
5980 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
5981
5982         PR debug/7055
5983         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
5984         starting with digits.
5985
5986 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
5987
5988         PR target/38695
5989         * config/arm/arm.c (arm_is_long_call_p): Don't call
5990         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
5991
5992 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
5993
5994         * regrename.c (regrename_optimize): Fix dumping.
5995         (find_oldest_value_reg): Preserve REG_POINTER.
5996         (copy_hardreg_forward_1): Likewise.
5997
5998 2009-01-09  Diego Novillo  <dnovillo@google.com>
5999
6000         * gimple.h (struct gimple_statement_base) <uid>: Document
6001         the restrictions on its use.
6002         (gimple_uid): Tidy.
6003         (gimple_set_uid): Tidy.
6004
6005 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6006
6007         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
6008         zero guard even if align_bytes != 0 and count is smaller than
6009         size_needed.
6010
6011 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
6012
6013         PR rtl-optimization/38495
6014         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
6015         (add_range_and_copies_from_move_list): Print all added ranges.
6016         Add ranges to memory optimized destination.
6017
6018 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6019
6020         PR target/38686
6021         PR target/38708
6022         * config/i386/i386.c (override_options): Reject
6023         -mstringop-strategy=rep_8byte with -m32.
6024         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
6025         to 1.  Do count comparison against epilogue_size_needed at compile
6026         time even when count_exp was constant forced into register.  For
6027         size_needed don't jump to epilogue, instead just avoid aligning
6028         and invoke the body algorithm.  If need_zero_guard, add zero guard
6029         even if count is non-zero, but smaller than size_needed + number of
6030         bytes that could be stored for alignment.
6031         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
6032         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
6033         but smaller than size_needed + number of bytes that could be stored
6034         for alignment.  Compare size_needed with epilogue_size_needed instead
6035         of desired_align - align, don't adjust size_needed, pass
6036         epilogue_size_needed to the epilogue expanders.
6037
6038         PR c/35742
6039         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
6040
6041 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6042
6043         * pa.c (last_address): Change to unsigned.
6044         (update_total_code_bytes): Change argument to unsigned.  Don't
6045         check if insn addresses are set.
6046         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
6047         addresses are not set.
6048         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
6049
6050 2009-01-09  Nick Clifton  <nickc@redhat.com>
6051
6052         * config/sh/symbian.c: Replace uses of DECL_INLINE with
6053         DECL_DECLARED_INLINE_P.
6054
6055 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6056
6057         PR middle-end/38347
6058         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
6059         GET_MODE (op0) in operand_subword_force calls.
6060
6061         PR middle-end/38771
6062         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
6063         fold_convert arg0 operands to TREE_TYPE (op0) first.
6064
6065 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
6066
6067         * params.def (ira-max-conflict-table-size): Decrease default value
6068         to 1000.
6069
6070 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
6071
6072         PR tree-optimization/37031
6073         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
6074         on parameter_set.
6075         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
6076         allocate it using gc instead of heap, use VEC_quick_push instead of
6077         VEC_safe_push.
6078         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
6079         instead of heap, use VEC_quick_push instead of VEC_safe_push.
6080         * tree-data-ref.h (struct access_matrix): Change matrix to gc
6081         allocated vector from heap allocated.
6082         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
6083         * tree-loop-linear.c (linear_transform_loops): Allocate nest
6084         vector only after perfect_loop_nest_depth call.
6085
6086 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
6087             Jan Sjodin  <jan.sjodin@amd.com>
6088
6089         PR tree-optimization/38559
6090         * graphite.c (debug_value, copy_constraint,
6091         swap_constraint_variables, scale_constraint_variable, ): New.
6092         (get_lower_bound, get_upper_bound): Removed.
6093         (graphite_trans_bb_strip_mine): Clean up this code that works
6094         only for constant number of iterations.  Fully copy upper and
6095         lower bound constraints, not only the constant part of them.
6096         * graphite.h (debug_value): Declared.
6097
6098 2009-01-08  Ira Rosen  <irar@il.ibm.com>
6099
6100         PR tree-optimization/37194
6101         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
6102         Don't add the cost of cost model guard in prologue to scalar 
6103         outside cost in case of known number of iterations.
6104
6105 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6106             Alan Modra  <amodra@bigpond.net.au>
6107
6108         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
6109         non-word-aligned REG+CONST addressing.
6110
6111 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6112
6113         PR target/38706
6114         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
6115         free_after_compilation when outputting a thunk.
6116         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
6117         Do not call free_after_compilation here.
6118
6119 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6120
6121         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
6122         (ix86_valid_target_attribute_inner_p): Ditto.
6123
6124 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
6125
6126         PR tree-optimization/38492
6127         PR tree-optimization/38498
6128         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
6129         * tree-chrec.h (scev_is_linear_expression): Declared.
6130         * graphite.c (graphite_cannot_represent_loop_niter): New.
6131         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
6132         (graphite_loop_normal_form): Use gcc_assert.
6133         (scan_tree_for_params): Use CASE_CONVERT.
6134         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
6135         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
6136         Use gcc_assert.  Discard scops that contain unhandled cases.
6137         (build_scop_conditions): Return a boolean status for unhandled cases.
6138         (strip_mine_profitable_p): Print the loop number, not its depth.
6139         (is_interchange_valid): Pass the depth of the loop nest, don't
6140         recompute it wrongly.
6141         (graphite_trans_bb_block): Same.
6142         (graphite_trans_bb_block): Print tentative of loop blocking.
6143         (graphite_trans_scop_block): Do not print that the loop has been
6144         blocked.
6145         (graphite_transform_loops): Do not handle scops that contain condition
6146         scalar phi nodes.
6147
6148 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
6149
6150         AVX Programming Reference (December, 2008)
6151         * config/i386/avxintrin.h (_mm256_stream_si256): New.
6152         (_mm256_stream_pd): Likewise.
6153         (_mm256_stream_ps): Likewise.
6154
6155         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
6156         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
6157         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
6158         (bdesc_special_args): Add __builtin_ia32_movntdq256,
6159         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
6160         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
6161         (ix86_expand_special_args_builtin): Likewise.
6162
6163         * config/i386/sse.md (AVXMODEDI): New.
6164         (avx_movnt<mode>): Likewise.
6165         (avx_movnt<mode>): Likewise.
6166         (<sse>_movnt<mode>): Remove AVX support.
6167         (sse2_movntv2di): Likewise.
6168
6169 2009-01-07  Richard Guenther  <rguenther@suse.de>
6170
6171         PR middle-end/38751
6172         * fold-const.c (extract_muldiv): Remove obsolete comment.
6173         (fold_plusminus_mult_expr): Undo MINUS_EXPR
6174         to PLUS_EXPR canonicalization for the canonicalization.
6175
6176 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
6177
6178         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
6179         hosted cross-compilers generating less efficient code.
6180
6181 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6182
6183         * function.h (rtl_data): Add a dbr_scheduled_p field.
6184         * reorg.c (dbr_schedule): Set it.
6185         (gate_handle_delay_slots): Check it.
6186         * config/mips/mips.c (mips_base_delayed_branch): Delete.
6187         (mips_reorg): Check flag_delayed_branch instead of
6188         mips_base_delayed_branch.
6189         (mips_override_options): Don't set mips_base_delayed_branch
6190         or flag_delayed_branch.
6191
6192 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6193
6194         PR rtl-optimization/38426.
6195         * ira.c (ira): Set current_function_is_leaf earlier.
6196
6197 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
6198
6199         PR rtl-optimization/38722
6200         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
6201         too early, only set a flag and modify after last possible
6202         undo_all point.
6203
6204 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
6205
6206         PR c/34252
6207         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
6208         * real.c (decimal_single_format): Correct values of emin and emax.
6209         (decimal_double_format): Ditto.
6210         (decimal_quad_format): Ditto.
6211         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
6212         computation of DECnn_MIN and DECnn_MAX for corrected values of
6213         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
6214         __DECnn_MIN__, and adjust its computation for the corrected value
6215         of emin.
6216
6217 2009-01-06  Jan Hubicka  <jh@suse.cz>
6218
6219         PR target/38744
6220         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
6221
6222 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
6223
6224         * doc/contrib.texi (Contributors): Slightly adjust the end note.
6225         Add Robert Clark to the list of testers.
6226
6227 2009-01-06  Jan Hubicka  <jh@suse.cz>
6228             Kai Tietz  <kai.tietz@onevision.com>
6229
6230         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
6231         * config/i386/i386.c (ix86_expand_call): Add clobbers.
6232
6233 2009-01-06  Jan Hubicka  <jh@suse.cz>
6234             Kai Tietz  <kai.tietz@onevision.com>
6235
6236         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
6237         for w64 ABI.
6238         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
6239         (ix86_nsaved_regs): Count only general purpose regs.
6240         (ix86_nsaved_sseregs): New.
6241         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
6242         to 16 for w64; compute padding and size of sse reg save area.
6243         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
6244         general purpose regs.
6245         (ix86_emit_save_sse_regs_using_mov): New.
6246         (ix86_expand_prologue): Save SSE regs if needed.
6247         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
6248         (ix86_emit_restore_sse_regs_using_mov): New.
6249         (ix86_expand_epilogue): Save SSE regs if needed.
6250
6251 2009-01-06  Jan Hubicka  <jh@suse.cz>
6252             Kai Tietz  <kai.tietz@onevision.com>
6253
6254         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
6255         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
6256         functions when accumulate outgoing args is off.
6257
6258 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6259
6260         PR bootstrap/38742
6261         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
6262         before using pseudos_have_intersected_live_ranges_p.
6263
6264         * ira-int.h (ira_assert): Always define.
6265
6266 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6267
6268         AVX Programming Reference (December, 2008)
6269         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
6270         (_mm256_permute2_pd): Likewise.
6271         (_mm_permute2_ps): Likewise.
6272         (_mm256_permute2_ps): Likewise.
6273         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
6274         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
6275
6276         * config/i386/i386.c (ix86_builtins): Remove
6277         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6278         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
6279         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
6280         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
6281         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6282         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
6283         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
6284         __builtin_ia32_vpermil2ps256.
6285         (ix86_init_mmx_sse_builtins): Updated.
6286         (ix86_expand_args_builtin): Likewise.
6287
6288 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6289
6290         * pa.c (output_call): Relocate non-jump insns in the delay slot of
6291         long absolute calls when generating PA 2.0 code.
6292
6293 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
6294
6295         PR rtl-optimization/38583
6296         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
6297
6298         * params.def (ira-max-conflict-table-size): New.
6299
6300         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
6301         
6302         * ira.h (ira_conflicts_p): New external definition.
6303         
6304         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
6305         table.  Report this.  Return result of building.
6306         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
6307         building conflict table.
6308
6309         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
6310         (ira_color): Use ira_conflicts_p.
6311         
6312         * global.c: Include ira.h.
6313         (pseudo_for_reload_consideration_p, build_insn_chain): Use
6314         ira_conflicts_p.
6315
6316         * Makefile.in (global.o): Add ira.h.
6317         
6318         * ira-build.c (mark_all_loops_for_removal,
6319         propagate_some_info_from_allocno): New.
6320         (remove_unnecessary_allocnos): Call
6321         propagate_some_info_from_allocno.
6322         (remove_low_level_allocnos): New.
6323         (remove_unnecessary_regions): Add parameter.  Call
6324         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
6325         parameter to remove_unnecessary_regions.
6326         (ira_build): Remove all regions but root if the conflict table was
6327         not built.  Update conflict hard regs for allocnos crossing calls.
6328
6329         * ira.c (ira_conflicts_p): New global.
6330         (ira): Define and use ira_conflicts_p.
6331
6332         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
6333         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
6334         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
6335         
6336 2009-01-06  Ben Elliston  <bje@au.ibm.com>
6337
6338         * gengtype-lex.l (YY_NO_INPUT): Define.
6339
6340 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6341
6342         PR c/34911
6343         * c-common.c (handle_vector_size_attribute): Also reject
6344         BOOLEAN_TYPE types.
6345
6346 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
6347
6348         PR tree-optimization/38492
6349         * graphite.c (rename_map_elt, debug_rename_elt,
6350         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
6351         rename_map_elt_info, eq_rename_map_elts,
6352         get_new_name_from_old_name, bb_in_sese_p): Moved around.
6353         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
6354         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
6355         (sese_build_livein_liveouts): New.
6356         (new_sese, free_sese): New.
6357         (new_scop): Call new_sese.
6358         (free_scop): Call free_sese.
6359         (rename_variables_from_edge, rename_phis_end_scop): Removed.
6360         (register_old_new_names): Renamed register_old_and_new_names.
6361         (register_scop_liveout_renames, add_loop_exit_phis,
6362         insert_loop_close_phis, struct igp,
6363         default_liveout_before_guard, add_guard_exit_phis,
6364         insert_guard_phis, copy_renames): New.
6365         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
6366         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
6367         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
6368         (scop_adjust_phis_for_liveouts): New.
6369         (gloog): Call scop_adjust_phis_for_liveouts.
6370
6371         * graphite.h (struct sese): Documented.  Added fields liveout,
6372         num_ver and livein.
6373         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
6374         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
6375         (struct scop): Added field liveout_renames.
6376         (SCOP_LIVEOUT_RENAMES): New.
6377
6378 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6379
6380         PR tree-optimization/38510
6381         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
6382         (translate_clast): Call recompute_all_dominators before
6383         graphite_verify.
6384         (gloog): Call recompute_all_dominators before graphite_verify.
6385
6386 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6387             Jan Sjodin  <jan.sjodin@amd.com>
6388
6389         PR tree-optimization/38500
6390         * graphite.c (create_sese_edges): Call fix_loop_structure after
6391         splitting blocks.
6392
6393 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
6394
6395         * config.gcc: Add m32r*-*-rtems*.
6396         * config/m32r/rtems.h: New file.
6397
6398 2009-01-05  Ben Elliston  <bje@au.ibm.com>
6399
6400         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
6401         (.po.pox): Likewise.
6402         (po/gcc.pot): Likewise.
6403
6404 2009-01-04  David S. Miller  <davem@davemloft.net>
6405
6406         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
6407         (STARTING_FRAME_OFFSET): Always set to zero.
6408
6409 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
6410
6411         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
6412         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
6413         fixed-point types, and vectors of the same.
6414
6415 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
6416
6417         * config/mips/sync.md (*mb_barrier): Rename to...
6418         (*memory_barrier): ...this.
6419
6420 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
6421
6422         * doc/extend.texi (Function Attributes): Move @cindex after @item
6423         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
6424         and put in alphabetical order. Fix 'target' name and put in order.
6425         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
6426         typos.
6427
6428 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
6429
6430         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
6431         (memory_barrier): Expand as unspec instead of unspec_volatile.
6432         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6433         (*memory_barrier): Define as unspec instead of unspec_volatile.
6434         Use (match_dup 0) as input operand.
6435
6436         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
6437         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
6438         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
6439         scratch register.  Remove operand 1.
6440         (*stbar): Define as unspec instead of unspec_volatile.
6441         Use (match_dup 0) as input operand, remove (const_int 8).
6442         (*membar): Define as unspec instead of unspec_volatile.
6443         Use (match_dup 0) as input operand, remove input operand 2.
6444
6445         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
6446         (memory_barrier): Expand as unspec instead of unspec_volatile.
6447         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6448         (*memory_barrier): Define as unspec instead of unspec_volatile.
6449         Use (match_dup 0) as input operand.
6450
6451         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
6452         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6453         Set volatile flag on operand 0.
6454         (*memory_barrier): New insn pattern.
6455
6456         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
6457         insn operands.
6458         (*memory_barrier): Use (match_dup 0) as input operand.
6459
6460         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
6461         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6462         Set volatile flag on operand 0.
6463         (*mb_internal): New insn pattern.
6464
6465         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
6466
6467 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6468
6469         PR middle-end/38586
6470         * function.c (struct temp_slot): Move to the section of the file
6471         that deals with temp slots.  Remove field 'address'.
6472         (temp_slot_address_table): New hash table of address -> temp slot.
6473         (struct temp_slot_address_entry): New struct, items for the table.
6474         (temp_slot_address_compute_hash, temp_slot_address_hash,
6475         temp_slot_address_eq, insert_temp_slot_address): Support functions
6476         for the new table.
6477         (find_temp_slot_from_address): Rewrite to use the new hash table.
6478         (remove_unused_temp_slot_addresses): Remove addresses of temp
6479         slots that have been made available.
6480         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
6481         worker function for remove_unused_temp_slot_addresses.
6482         (assign_stack_temp_for_type): Don't clear the temp slot address list.
6483         Add the temp slot address to the address -> temp slot map.
6484         (update_temp_slot_address): Update via insert_temp_slot_address.
6485         (free_temp_slots): Call remove_unused_temp_slot_addresses.
6486         (pop_temp_slots): Likewise.
6487         (init_temp_slots): Allocate the address -> temp slot map, or empty
6488         the map if it is already allocated.
6489         (prepare_function_start): Initialize temp slot processing.
6490
6491 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6492
6493         PR middle-end/38584
6494         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
6495         Calculate the size of all stack vars assuming no packing of stack
6496         vars will happen, replacing a quadratic algorithm with a linear one.
6497
6498 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6499
6500         PR target/38707
6501         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
6502         can't be used.
6503
6504 2009-01-03  Diego Novillo  <dnovillo@google.com>
6505
6506         * doc/contrib.texi: Update contributions.
6507
6508 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6509
6510         PR c++/38705
6511         * builtins.c (fold_builtin_memory_op): Give up if either operand
6512         is volatile.  Set srctype or desttype to non-qualified version
6513         of the other type.
6514
6515         PR c/38700
6516         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
6517         and FUNCTION_DECLs.
6518
6519 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
6520
6521         PR rtl-optimization/35805
6522         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
6523         problem if fast dce is able to remove any instructions.
6524         * dce.c (dce_process_block): Fix dump message.
6525         
6526 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
6527
6528         PR 33649
6529         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
6530
6531 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
6532
6533         PR middle-end/38690
6534         * tree-flow.h (op_code_prio, op_prio): New prototypes.
6535         * tree-pretty-print.c (op_code_prio): New function.
6536         (op_prio): No longer static.  Use op_code_prio.
6537         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
6538         Use op_prio and op_code_prio to determine if () should be
6539         printed around operand(s) or not.
6540
6541         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
6542         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
6543         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
6544         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
6545         pp_character instead of pp_string for single letter printing.
6546
6547 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6548
6549         * doc/extend.texi: Fix '#pragma GCC option' typo.
6550
6551 2009-01-02  Richard Guenther  <rguenther@suse.de>
6552
6553         * doc/install.texi (--enable-checking): Mention different
6554         default for stage1.
6555         (--enable-stage1-checking): Document.
6556
6557 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
6558
6559         PR middle-end/30142
6560         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
6561         case to be an error.
6562
6563 2009-01-02  Ben Elliston  <bje@au.ibm.com>
6564
6565         * config/fp-bit.h (pack_d): Constify argument.
6566         * config/fp-bit.c (makenan): Constify return type. Remove casts.
6567         (isnan): Constify argument.
6568         (isinf): Likewise.
6569         (iszero): Likewise.
6570         (pack_d): Likewise.
6571         (_fpadd_parts): Constify return type.
6572         (_fpmul_parts): Likewise.
6573         (_fpdiv_parts): Likewise.
6574
6575 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
6576
6577         PR c/36489
6578         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
6579         warn about overwriting initializer with side-effects or
6580         -Woverride-init if !IMPLICIT.
6581         (output_init_element): Likewise.  Pass IMPLICIT down to
6582         add_pending_init.
6583         (process_init_element): Add IMPLICIT argument.  Pass it down
6584         to output_init_element.
6585         (push_init_element, pop_init_level, set_designator): Adjust
6586         process_init_element callers.
6587         (set_nonincremental_init, set_nonincremental_init_from_string):
6588         Adjust add_pending_init callers.
6589         (output_pending_init_elements): Adjust output_init_element callers.
6590         * c-tree.h (process_init_element): Adjust prototype.
6591         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
6592         process_init_element callers.