OSDN Git Service

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