OSDN Git Service

2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR middle-end/39701
4         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5
6         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7         here.
8
9         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10
11 2009-04-10  Chao-ying Fu  <fu@mips.com>
12
13         * doc/tm.texi (Instruction Output): Document
14         TARGET_ASM_FINAL_POSTSCAN_INSN.
15         * target.h (final_postscan_insn): New field in asm_out.
16         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
17         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
18         * final.c (final_scan_insn): Call
19         targetm.asm_out.final_postscan_insn after outputting
20         an asm macro and a normal instruction.
21
22         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
23         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
24         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
25         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
26         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
27
28 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
29
30         PR middle-end/39701
31         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
32         variables as non-NULL even with -fdelete-null-pointer-checks.
33
34 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
35
36         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
37
38 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
39
40         PR target/39678
41         * config/i386/i386.c (classify_argument): Handle SCmode with
42         (bit_offset % 64) != 0.
43
44 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
45
46         * doc/invoke.texi (Optimize Options): Add cross-reference to
47         -Q --help=optimizers examples.
48
49 2009-04-10  Ben Elliston  <bje@au.ibm.com>
50
51         PR target/36800
52         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
53         regalign for the reg == fpr and TDmode case.
54
55 2009-04-09  David Ayers  <ayers@fsfe.org>
56
57         PR objc/29200
58         * objc/objc-act.c (warn_with_method): Remove helper function.
59         (check_duplicates): Call warning and inform directly.
60         (really_start_method): Likewise.
61
62 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
63
64         * expmed.c (expand_divmod): Always use a comparison for a division
65         by a large unsigned integer.
66
67         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
68         for things others than variables or functions as nonzero.
69
70 2009-04-09  Nick Clifton  <nickc@redhat.com>
71
72         * unwind-compat.c: Change copyright header to refer to version
73         3 of the GNU General Public License with version 3.1 of the
74         GCC Runtime Library Exception and to point readers at the
75         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
76         * config/alpha/crtfastmath.c: Likewise.
77         * config/alpha/linux-unwind.h: Likewise.
78         * config/alpha/qrnnd.asm: Likewise.
79         * config/alpha/vms-crt0-64.c: Likewise.
80         * config/alpha/vms-crt0.c: Likewise.
81         * config/alpha/vms-dwarf2.asm: Likewise.
82         * config/alpha/vms-dwarf2eh.asm: Likewise.
83         * config/alpha/vms-psxcrt0-64.c: Likewise.
84         * config/alpha/vms-psxcrt0.c: Likewise.
85         * config/alpha/vms_tramp.asm: Likewise.
86         * config/arc/initfini.c: Likewise.
87         * config/arc/lib1funcs.asm: Likewise.
88         * config/arm/bpabi-v6m.S: Likewise.
89         * config/arm/bpabi.S: Likewise.
90         * config/arm/bpabi.c: Likewise.
91         * config/arm/crti.asm: Likewise.
92         * config/arm/crtn.asm: Likewise.
93         * config/arm/ieee754-df.S: Likewise.
94         * config/arm/ieee754-sf.S: Likewise.
95         * config/arm/lib1funcs.asm: Likewise.
96         * config/arm/libunwind.S: Likewise.
97         * config/arm/linux-atomic.c: Likewise.
98         * config/arm/mmintrin.h: Likewise.
99         * config/arm/pr-support.c: Likewise.
100         * config/arm/unaligned-funcs.c: Likewise.
101         * config/arm/unwind-arm.c: Likewise.
102         * config/arm/unwind-arm.h: Likewise.
103         * config/avr/libgcc.S: Likewise.
104         * config/bfin/crti.s: Likewise.
105         * config/bfin/crtlibid.s: Likewise.
106         * config/bfin/crtn.s: Likewise.
107         * config/bfin/lib1funcs.asm: Likewise.
108         * config/bfin/linux-unwind.h: Likewise.
109         * config/cris/arit.c: Likewise.
110         * config/cris/cris_abi_symbol.c: Likewise.
111         * config/darwin-64.c: Likewise.
112         * config/darwin-crt2.c: Likewise.
113         * config/darwin-crt3.c: Likewise.
114         * config/darwin.h: Likewise.
115         * config/dbxelf.h: Likewise.
116         * config/dfp-bit.c: Likewise.
117         * config/dfp-bit.h: Likewise.
118         * config/elfos.h: Likewise.
119         * config/fixed-bit.c: Likewise.
120         * config/fixed-bit.h: Likewise.
121         * config/fp-bit.c: Likewise.
122         * config/fp-bit.h: Likewise.
123         * config/fr30/crti.asm: Likewise.
124         * config/fr30/crtn.asm: Likewise.
125         * config/fr30/lib1funcs.asm: Likewise.
126         * config/freebsd-spec.h: Likewise.
127         * config/frv/cmovd.c: Likewise.
128         * config/frv/cmovh.c: Likewise.
129         * config/frv/cmovw.c: Likewise.
130         * config/frv/frvbegin.c: Likewise.
131         * config/frv/frvend.c: Likewise.
132         * config/frv/lib1funcs.asm: Likewise.
133         * config/glibc-stdint.h: Likewise.
134         * config/h8300/clzhi2.c: Likewise.
135         * config/h8300/crti.asm: Likewise.
136         * config/h8300/crtn.asm: Likewise.
137         * config/h8300/ctzhi2.c: Likewise.
138         * config/h8300/fixunssfsi.c: Likewise.
139         * config/h8300/lib1funcs.asm: Likewise.
140         * config/h8300/parityhi2.c: Likewise.
141         * config/h8300/popcounthi2.c: Likewise.
142         * config/i386/ammintrin.h: Likewise.
143         * config/i386/att.h: Likewise.
144         * config/i386/avxintrin.h: Likewise.
145         * config/i386/biarch64.h: Likewise.
146         * config/i386/bmmintrin.h: Likewise.
147         * config/i386/cpuid.h: Likewise.
148         * config/i386/cross-stdarg.h: Likewise.
149         * config/i386/crtfastmath.c: Likewise.
150         * config/i386/crtprec.c: Likewise.
151         * config/i386/cygming-crtbegin.c: Likewise.
152         * config/i386/cygming-crtend.c: Likewise.
153         * config/i386/cygwin.asm: Likewise.
154         * config/i386/emmintrin.h: Likewise.
155         * config/i386/gmm_malloc.h: Likewise.
156         * config/i386/gthr-win32.c: Likewise.
157         * config/i386/i386.h: Likewise.
158         * config/i386/immintrin.h: Likewise.
159         * config/i386/linux-unwind.h: Likewise.
160         * config/i386/linux64.h: Likewise.
161         * config/i386/mm3dnow.h: Likewise.
162         * config/i386/mmintrin-common.h: Likewise.
163         * config/i386/mmintrin.h: Likewise.
164         * config/i386/nmmintrin.h: Likewise.
165         * config/i386/pmm_malloc.h: Likewise.
166         * config/i386/pmmintrin.h: Likewise.
167         * config/i386/smmintrin.h: Likewise.
168         * config/i386/sol2-c1.asm: Likewise.
169         * config/i386/sol2-ci.asm: Likewise.
170         * config/i386/sol2-cn.asm: Likewise.
171         * config/i386/sol2-gc1.asm: Likewise.
172         * config/i386/tmmintrin.h: Likewise.
173         * config/i386/unix.h: Likewise.
174         * config/i386/w32-unwind.h: Likewise.
175         * config/i386/wmmintrin.h: Likewise.
176         * config/i386/x86-64.h: Likewise.
177         * config/i386/x86intrin.h: Likewise.
178         * config/i386/xmmintrin.h: Likewise.
179         * config/ia64/crtbegin.asm: Likewise.
180         * config/ia64/crtend.asm: Likewise.
181         * config/ia64/crtfastmath.c: Likewise.
182         * config/ia64/crti.asm: Likewise.
183         * config/ia64/crtn.asm: Likewise.
184         * config/ia64/fde-glibc.c: Likewise.
185         * config/ia64/lib1funcs.asm: Likewise.
186         * config/ia64/linux-unwind.h: Likewise.
187         * config/ia64/quadlib.c: Likewise.
188         * config/ia64/unwind-ia64.c: Likewise.
189         * config/linux.h: Likewise.
190         * config/m32c/m32c-lib1.S: Likewise.
191         * config/m32c/m32c-lib2-trapv.c: Likewise.
192         * config/m32c/m32c-lib2.c: Likewise.
193         * config/m32r/initfini.c: Likewise.
194         * config/m68hc11/larith.asm: Likewise.
195         * config/m68hc11/m68hc11-crt0.S: Likewise.
196         * config/m68k/cf.md: Likewise.
197         * config/m68k/crti.s: Likewise.
198         * config/m68k/crtn.s: Likewise.
199         * config/m68k/lb1sf68.asm: Likewise.
200         * config/m68k/linux-unwind.h: Likewise.
201         * config/mcore/crti.asm: Likewise.
202         * config/mcore/crtn.asm: Likewise.
203         * config/mcore/lib1.asm: Likewise.
204         * config/mips/linux-unwind.h: Likewise.
205         * config/mips/loongson.h: Likewise.
206         * config/mips/mips16.S: Likewise.
207         * config/mmix/crti.asm: Likewise.
208         * config/mmix/crtn.asm: Likewise.
209         * config/pa/fptr.c: Likewise.
210         * config/pa/hpux-unwind.h: Likewise.
211         * config/pa/lib2funcs.asm: Likewise.
212         * config/pa/linux-atomic.c: Likewise.
213         * config/pa/linux-unwind.h: Likewise.
214         * config/pa/milli64.S: Likewise.
215         * config/pa/quadlib.c: Likewise.
216         * config/pa/stublib.c: Likewise.
217         * config/picochip/libgccExtras/adddi3.asm: Likewise.
218         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
219         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
220         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
221         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
222         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
223         * config/picochip/libgccExtras/divmod15.asm: Likewise.
224         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
225         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
226         * config/picochip/libgccExtras/longjmp.asm: Likewise.
227         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
228         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
229         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
230         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
231         * config/picochip/libgccExtras/setjmp.asm: Likewise.
232         * config/picochip/libgccExtras/subdi3.asm: Likewise.
233         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
234         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
235         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
236         * config/rs6000/750cl.h: Likewise.
237         * config/rs6000/altivec.h: Likewise.
238         * config/rs6000/biarch64.h: Likewise.
239         * config/rs6000/crtresfpr.asm: Likewise.
240         * config/rs6000/crtresgpr.asm: Likewise.
241         * config/rs6000/crtresxfpr.asm: Likewise.
242         * config/rs6000/crtresxgpr.asm: Likewise.
243         * config/rs6000/crtsavfpr.asm: Likewise.
244         * config/rs6000/crtsavgpr.asm: Likewise.
245         * config/rs6000/darwin-asm.h: Likewise.
246         * config/rs6000/darwin-fallback.c: Likewise.
247         * config/rs6000/darwin-fpsave.asm: Likewise.
248         * config/rs6000/darwin-ldouble.c: Likewise.
249         * config/rs6000/darwin-tramp.asm: Likewise.
250         * config/rs6000/darwin-unwind.h: Likewise.
251         * config/rs6000/darwin-vecsave.asm: Likewise.
252         * config/rs6000/darwin-world.asm: Likewise.
253         * config/rs6000/e500crtres32gpr.asm: Likewise.
254         * config/rs6000/e500crtres64gpr.asm: Likewise.
255         * config/rs6000/e500crtres64gprctr.asm: Likewise.
256         * config/rs6000/e500crtrest32gpr.asm: Likewise.
257         * config/rs6000/e500crtrest64gpr.asm: Likewise.
258         * config/rs6000/e500crtresx32gpr.asm: Likewise.
259         * config/rs6000/e500crtresx64gpr.asm: Likewise.
260         * config/rs6000/e500crtsav32gpr.asm: Likewise.
261         * config/rs6000/e500crtsav64gpr.asm: Likewise.
262         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
263         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
264         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
265         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
266         * config/rs6000/eabi-ci.asm: Likewise.
267         * config/rs6000/eabi-cn.asm: Likewise.
268         * config/rs6000/eabi.asm: Likewise.
269         * config/rs6000/linux-unwind.h: Likewise.
270         * config/rs6000/linux64.h: Likewise.
271         * config/rs6000/paired.h: Likewise.
272         * config/rs6000/paired.md: Likewise.
273         * config/rs6000/ppc64-fp.c: Likewise.
274         * config/rs6000/ppu_intrinsics.h: Likewise.
275         * config/rs6000/rs6000.h: Likewise.
276         * config/rs6000/si2vmx.h: Likewise.
277         * config/rs6000/sol-ci.asm: Likewise.
278         * config/rs6000/sol-cn.asm: Likewise.
279         * config/rs6000/spe.h: Likewise.
280         * config/rs6000/spu2vmx.h: Likewise.
281         * config/rs6000/sysv4.h: Likewise.
282         * config/rs6000/tramp.asm: Likewise.
283         * config/rs6000/vec_types.h: Likewise.
284         * config/s390/linux-unwind.h: Likewise.
285         * config/s390/tpf-unwind.h: Likewise.
286         * config/score/crti.asm: Likewise.
287         * config/score/crtn.asm: Likewise.
288         * config/sh/crt1.asm: Likewise.
289         * config/sh/crti.asm: Likewise.
290         * config/sh/crtn.asm: Likewise.
291         * config/sh/divtab-sh4-300.c: Likewise.
292         * config/sh/divtab-sh4.c: Likewise.
293         * config/sh/divtab.c: Likewise.
294         * config/sh/lib1funcs-4-300.asm: Likewise.
295         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
296         * config/sh/lib1funcs.asm: Likewise.
297         * config/sh/lib1funcs.h: Likewise.
298         * config/sh/linux-atomic.asm: Likewise.
299         * config/sh/linux-unwind.h: Likewise.
300         * config/sh/shmedia.h: Likewise.
301         * config/sh/sshmedia.h: Likewise.
302         * config/sh/ushmedia.h: Likewise.
303         * config/sparc/crtfastmath.c: Likewise.
304         * config/sparc/linux-unwind.h: Likewise.
305         * config/sparc/sol2-c1.asm: Likewise.
306         * config/sparc/sol2-ci.asm: Likewise.
307         * config/sparc/sol2-cn.asm: Likewise.
308         * config/spu/divmodti4.c: Likewise.
309         * config/spu/divv2df3.c: Likewise.
310         * config/spu/float_disf.c: Likewise.
311         * config/spu/float_unsdidf.c: Likewise.
312         * config/spu/float_unsdisf.c: Likewise.
313         * config/spu/float_unssidf.c: Likewise.
314         * config/spu/mfc_multi_tag_release.c: Likewise.
315         * config/spu/mfc_multi_tag_reserve.c: Likewise.
316         * config/spu/mfc_tag_release.c: Likewise.
317         * config/spu/mfc_tag_reserve.c: Likewise.
318         * config/spu/mfc_tag_table.c: Likewise.
319         * config/spu/multi3.c: Likewise.
320         * config/spu/spu_internals.h: Likewise.
321         * config/spu/spu_intrinsics.h: Likewise.
322         * config/spu/spu_mfcio.h: Likewise.
323         * config/spu/vec_types.h: Likewise.
324         * config/spu/vmx2spu.h: Likewise.
325         * config/stormy16/stormy16-lib2.c: Likewise.
326         * config/svr4.h: Likewise.
327         * config/sync.c: Likewise.
328         * config/v850/lib1funcs.asm: Likewise.
329         * config/vxlib-tls.c: Likewise.
330         * config/vxlib.c: Likewise.
331         * config/vxworks-dummy.h: Likewise.
332         * config/xtensa/crti.asm: Likewise.
333         * config/xtensa/crtn.asm: Likewise.
334         * config/xtensa/ieee754-df.S: Likewise.
335         * config/xtensa/ieee754-sf.S: Likewise.
336         * config/xtensa/lib1funcs.asm: Likewise.
337         * config/xtensa/lib2funcs.S: Likewise.
338         * config/xtensa/linux-unwind.h: Likewise.
339         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
340         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
341         * coretypes.h: Likewise.
342         * crtstuff.c: Likewise.
343         * defaults.h: Likewise.
344         * dwarf2.h: Likewise.
345         * emutls.c: Likewise.
346         * gbl-ctors.h: Likewise.
347         * gcov-io.h: Likewise.
348         * ginclude/float.h: Likewise.
349         * ginclude/iso646.h: Likewise.
350         * ginclude/stdarg.h: Likewise.
351         * ginclude/stdbool.h: Likewise.
352         * ginclude/stddef.h: Likewise.
353         * ginclude/stdfix.h: Likewise.
354         * ginclude/stdint-gcc.h: Likewise.
355         * ginclude/tgmath.h: Likewise.
356         * gthr-aix.h: Likewise.
357         * gthr-dce.h: Likewise.
358         * gthr-gnat.c: Likewise.
359         * gthr-gnat.h: Likewise.
360         * gthr-lynx.h: Likewise.
361         * gthr-mipssde.h: Likewise.
362         * gthr-nks.h: Likewise.
363         * gthr-posix.c: Likewise.
364         * gthr-posix.h: Likewise.
365         * gthr-posix95.h: Likewise.
366         * gthr-rtems.h: Likewise.
367         * gthr-single.h: Likewise.
368         * gthr-solaris.h: Likewise.
369         * gthr-tpf.h: Likewise.
370         * gthr-vxworks.h: Likewise.
371         * gthr-win32.h: Likewise.
372         * gthr.h: Likewise.
373         * libgcc2.c: Likewise.
374         * libgcc2.h: Likewise.
375         * libgcov.c: Likewise.
376         * tsystem.h: Likewise.
377         * typeclass.h: Likewise.
378         * unwind-c.c: Likewise.
379         * unwind-compat.h: Likewise.
380         * unwind-dw2-fde-compat.c: Likewise.
381         * unwind-dw2-fde-darwin.c: Likewise.
382         * unwind-dw2-fde-glibc.c: Likewise.
383         * unwind-dw2-fde.c: Likewise.
384         * unwind-dw2-fde.h: Likewise.
385         * unwind-dw2.c: Likewise.
386         * unwind-dw2.h: Likewise.
387         * unwind-generic.h: Likewise.
388         * unwind-pe.h: Likewise.
389         * unwind-sjlj.c: Likewise.
390         * unwind.inc: Likewise.
391         * config/arm/neon-gen.ml: Change generated copyright header to
392         refer to version 3 of the GNU General Public License with
393         version 3.1 of the GCC Runtime Library Exception and to point
394         readers at the COPYING3 and COPYING3.RUNTIME files and the
395         FSF's license web page.
396         * config/arm/arm_neon.h: Regenerate.
397
398 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
399
400         * config/cris/cris.md: Change copyright header to refer to version
401         3 of the GNU General Public License.
402         * doc/install.texi2html: Change copyright header to refer to version
403         3 of the GNU General Public License and to point readers at the
404         COPYING3 file and the FSF's license web page.
405         * config/vax/linux.h: Likewise.
406
407 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
408
409         * config/i386/i386.md (cmpcc): New.
410         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
411         (sync_compare_and_swap_cc*): Delete.
412
413         * config/s390/s390.c (s390_compare_emitted): Remove.
414         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
415         s390_compare_emitted used to be handled.  Assert that modes match.
416         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
417         refer to sync_compare_and_swap_ccsi.
418         * config/s390/s390.h (s390_compare_emitted): Remove.
419         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
420         instead of s390_compare_emitted.
421         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
422         instead of s390_compare_emitted.
423         * config/s390/s390.md (cmpcc): New.
424         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
425         CC_REGNUM, do not pretend it's set.
426         (sync_compare_and_swap_cc*): Delete.
427         * config/s390/predicates.md (cc_reg_operand): New.
428
429         * expr.c (sync_compare_and_swap_cc): Delete.
430         * optabs.h (sync_compare_and_swap_cc): Delete.
431         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
432         is being used with can_compare_p.
433         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
434         (find_cc_set): New.
435         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
436         look for a MODE_CC set instead.  Use emit_store_flag.
437         (expand_compare_and_swap_loop): Likewise, with some additional
438         complication to avoid a force_reg when useless.  Use
439         emit_cmp_and_jump_insns.
440         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
441         * doc/md.texi (sync_compare_and_swap_cc): Merge with
442         sync_compare_and_swap documentation.
443
444 2009-04-09  Jan Hubicka  <jh@suse.cz>
445
446         * except.c (find_prev_try): Break out from ....
447         (duplicate_eh_regions): ... here; properly update prev_try pointers
448         when duplication part of tree.
449         (dump_eh_tree): Improve dumping.
450         (verify_eh_region): New.
451         (verify_eh_tree): Use it.
452
453 2009-04-06  Richard Guenther  <rguenther@suse.de>
454
455         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
456         &ARRAY addresses by adjusting their types and prepending
457         a conversion.
458         * tree-cfg.c (verify_gimple_assign_single): Verify that
459         addresses are correct.
460
461 2009-04-09  Richard Guenther  <rguenther@suse.de>
462
463         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
464         indices into an array reference if possible.
465         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
466         Fold POINTER_PLUS_EXPR statements with invariant address.
467
468 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
469
470         PR target/39634
471         * config.gcc (powerpc64-*-linux*): Always build biarch.
472
473 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
474
475         PR c/39613
476         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
477         it and pedwarn if this results in an INTEGER_CST.
478
479 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
480
481         * doc/install.texi: Update minimum GMP version.  Remove obsolete
482         text in MPFR section.
483
484 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
485
486         * dwarf2out.c (class_scope_p): New static inline.
487         (class_or_namespace_scope_p): Use it.
488         (gen_variable_die): Use DW_TAG_member tag for static data member
489         declarations instead of DW_TAG_variable.
490
491         PR middle-end/39573
492         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
493         variables.
494
495 2009-04-08  Richard Guenther  <rguenther@suse.de>
496
497         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
498         valueize random data.
499
500 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
501
502         * config.gcc (aix tm_file):  Add aix-stdint.h.
503         (aix tm clause use_gcc_stdint):  Set to wrap.
504         * config/rs6000/aix-stdint.h:  New file.
505         
506 2009-04-08  Richard Guenther  <rguenther@suse.de>
507
508         PR middle-end/36291
509         * tree-dfa.c (add_referenced_var): Do not recurse into
510         global initializers.
511         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
512         exposed variables.
513         (fold_const_aggregate_ref): Likewise.
514
515 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
516
517         * recog.c (ordered_comparison_operator): New.
518         * gensupport.c (std_preds): Add it.
519         * doc/md.texi (Machine-Independent Predicates): Document it.
520
521 2009-04-08  Jan Hubicka  <jh@suse.cz>
522
523         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
524         * function.h (rtl_eh): Remove exception_handler_label_map.
525         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
526         remove_exception_handler_label, for_each_eh_label_1): Remove.
527         (rtl_remove_unreachable_regions): Remove.
528         (convert_from_eh_region_ranges): Do not remove unreachable regions.
529         (find_exception_handler_labels): Don't build the hashtable.
530         (maybe_remove_eh_handler): Remove.
531         (for_each_eh_label): Rewrite to walk the tree.
532         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
533         * except.h (maybe_remove_eh_handler): Remove.
534         * passes.c (init_optimization_passes): Schedule second EH cleanup
535         before out-of-ssa.
536         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
537         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
538
539 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
540
541         * genoutput.c (validate_optab_operands): New.
542         (gen_insn, gen_expand): Call it.
543
544         * genflags.c (gen_insn): Detect misused iterators.
545         (main): Pass line_no to gen_insn, exit with status 1 on error.
546
547         * genextract.c (line_no): Make global.
548         (VEC_safe_set_locstr): Change assertion to error message.
549         (main): Exit with status 1 on error.
550
551 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
552
553         PR c/39614
554         PR c/39673
555         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
556         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
557         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
558         * c-convert.c (convert): Do not call fold on results of conversion
559         functions when the result is a C_MAYBE_CONST_EXPR.
560         * c-parser.c (c_parser_postfix_expression): Do not fold condition
561         of __builtin_choose_expr.
562         * c-typeck.c (remove_c_maybe_const_expr): New.
563         (build_unary_op, build_conditional_expr, build_compound_expr,
564         build_binary_op, c_objc_common_truthvalue_conversion): Call
565         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
566         integer operands.
567
568 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
569
570         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
571         CODE to produce a new one. Add a prototype to use fold_convert_const
572
573 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
574
575         PR bootstrap/39660
576         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
577         mix declarations and code.
578
579 2009-04-08  Ben Elliston  <bje@au.ibm.com>
580
581         * gcc.c: Replace `CC' with `GCC' throughout.
582
583 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
584
585         * doc/invoke.texi: Document Atom support.
586
587 2009-04-07  Jason Merrill  <jason@redhat.com>
588
589         PR c++/25185
590         * c-common.h, c-common.c: Add flag_pretty_templates.
591         * c-opts.c (c_common_handle_option): Set it.
592         * c.opt: Add -fno-pretty-templates.
593         * doc/invoke.texi (C++ Dialect Options): Likewise.
594
595 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
596
597         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
598         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
599         (ia64_expand_builtin): Likewise.
600
601 2009-04-07  Martin Jambor  <mjambor@suse.cz>
602
603         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
604         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
605         ADDR_EXPRS are include too.
606
607 2009-04-07  Richard Guenther  <rguenther@suse.de>
608
609         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
610         decls are only used if passes as parameters or if they are
611         local statics and the call is not to a builtin.
612         (call_may_clobber_ref_p_1): Likewise.
613
614 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
615
616         * expr.c (do_store_flag): Remove last argument.  Simplify code
617         to avoid duplication of tests already done by can_compare_p.
618         (expand_expr_real_1): Adjust caller.
619
620 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
621
622         * optabs.c (can_compare_p): Test the predicate of a
623         cbranch and cstore pattern.
624
625 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
626
627         * expr.c (convert_move): Use emit_store_flag instead of
628         "emulating" it.
629
630 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
631
632         * config/i386/i386.c (ix86_compare_emitted): Remove.
633         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
634         ix86_compare_op0 like ix86_compare_emitted used to be handled.
635         * config/i386/i386.h (ix86_compare_emitted): Remove.
636         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
637         instead of ix86_compare_emitted.
638         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
639
640 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
641
642         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
643         Add t-sysroot-suffix to tmake_file.
644         * config/print-sysroot-suffix.sh: New file.
645         * config/t-sysroot-suffix: New file.
646
647 2009-04-07  Ben Elliston  <bje@au.ibm.com>
648
649         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
650         as the latter produces a warning when the target does not support
651         infinity.
652
653 2009-04-07  Ben Elliston  <bje@au.ibm.com>
654
655         * dfp.c: Replace type punning assignments with memcpy throughout.
656         * Makefile.in (dfp.o-warn): Remove.
657         
658 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
659
660         PR target/39634
661         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
662         Include soft-fp/t-softfp after rs6000/t-linux64.
663
664 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
665
666         * stor-layout.c (set_sizetype): Use the full precision of their
667         machine mode for bitsize types.
668
669 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
670
671         * config/i386/i386.md: Revert 2 accidental checkins.
672
673 2009-04-06  Joey Ye  <joey.ye@intel.com>
674             Xuepeng Guo <xuepeng.guo@intel.com>
675             H.J. Lu  <hongjiu.lu@intel.com>
676
677         Atom pipeline model, tuning and insn selection.
678         * config.gcc (atom): Add atom config options and target.
679
680         * config/i386/atom.md: New.
681
682         * config/i386/i386.c (atom_cost): New cost.
683         (m_ATOM): New macro flag.
684         (initial_ix86_tune_features): Set m_ATOM.
685         (x86_accumulate_outgoing_args): Likewise.
686         (x86_arch_always_fancy_math_387): Likewise.
687         (processor_target): Add Atom cost.
688         (cpu_names): Add Atom cpu name.
689         (override_options): Set Atom ISA.
690         (ix86_issue_rate): New case PROCESSOR_ATOM.
691         (ix86_adjust_cost): Likewise.
692
693         * config/i386/i386.h (TARGET_ATOM): New target macro.
694         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
695         (TARGET_OPT_AGU): New target option.
696         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
697         (processor_type): Add PROCESSOR_ATOM.
698
699         * config/i386/i386.md (cpu): Add new value "atom".
700         (use_carry, movu): New attr.
701         (atom.md): Include atom.md.
702         (adddi3_carry_rex64): Set attr "use_carry".
703         (addqi3_carry): Likewise.
704         (addhi3_carry): Likewise.
705         (addsi3_carry): Likewise.
706         (*addsi3_carry_zext): Likewise.
707         (subdi3_carry_rex64): Likewise.
708         (subqi3_carry): Likewise.
709         (subhi3_carry): Likewise.
710         (subsi3_carry): Likewise.
711         (x86_movdicc_0_m1_rex64): Likewise.
712         (*x86_movdicc_0_m1_se): Likewise.
713         (x86_movsicc_0_m1): Likewise.
714         (*x86_movsicc_0_m1_se): Likewise.
715         (*adddi_1_rex64): Emit add insn as much as possible.
716         (*addsi_1): Likewise.
717         (return_internal): Set atom_unit.
718         (return_internal_long): Likewise.
719         (return_pop_internal): Likewise.
720         (*rcpsf2_sse): Set atom_sse_attr attr.
721         (*qrt<mode>2_sse): Likewise.
722         (*prefetch_sse): Likewise.
723
724         * config/i386/i386-c.c (ix86_target_macros_internal): New case
725         PROCESSOR_ATOM.
726         (ix86_target_macros_internal): Likewise.
727
728         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
729         (*prefetch_sse_rex): Likewise.
730         (sse_rcpv4sf2): Likewise.
731         (sse_vmrcpv4sf2): Likewise.
732         (sse_sqrtv4sf2): Likewise.
733         (<sse>_vmsqrt<mode>2): Likewise.
734         (sse_ldmxcsr): Likewise.
735         (sse_stmxcsr): Likewise.
736         (*sse_sfence): Likewise.
737         (sse2_clflush): Likewise.
738         (*sse2_mfence): Likewise.
739         (*sse2_lfence): Likewise.
740         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
741         (<sse>_movup<ssemodesuffixf2c>): Likewise.
742         (avx_movdqu<avxmodesuffix>): Likewise.
743         (avx_lddqu<avxmodesuffix>): Likewise.
744         (sse2_movntv2di): Change attr "type" to "ssemov".
745         (sse2_movntsi): Likewise.
746         (rsqrtv8sf2): Change attr "type" to "sseadd".
747         (sse3_addsubv2df3): Set attr "atom_unit".
748         (sse3_h<plusminus_insn>v4sf3): Likewise.
749         (*sse2_pmaddwd): Likewise.
750         (*vec_extractv2di_1_rex64): Likewise.
751         (*vec_extractv2di_1_avx): Likewise.
752         (sse2_psadbw): Likewise.
753         (ssse3_phaddwv8hi3): Likewise.
754         (ssse3_phaddwv4hi3): Likewise.
755         (ssse3_phadddv4si3): Likewise.
756         (ssse3_phadddv2si3): Likewise.
757         (ssse3_phaddswv8hi3): Likewise.
758         (ssse3_phaddswv4hi3): Likewise.
759         (ssse3_phsubwv8hi3): Likewise.
760         (ssse3_phsubwv4hi3): Likewise.
761         (ssse3_phsubdv4si3): Likewise.
762         (ssse3_phsubdv2si3): Likewise.
763         (ssse3_phsubswv8hi3): Likewise.
764         (ssse3_phsubswv4hi3): Likewise.
765         (ssse3_pmaddubsw128): Likewise.
766         (sse3_pmaddubsw: Likewise.
767         (ssse3_palignrti): Likewise.
768         (ssse3_palignrdi): Likewise.
769
770 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
771
772         * doc/install.texi (Specific): Fix two cross-references to MinGW.
773
774 2009-04-06  Richard Guenther  <rguenther@suse.de>
775
776         PR tree-optimization/28868
777         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
778         of which PHI results we inserted.
779         (insert_into_preds_of_block): Record inserted PHIs.
780         (eliminate): Eliminate redundant PHI nodes.
781         (init_pre): Init inserted_phi_names.
782
783 2009-04-06  Richard Guenther  <rguenther@suse.de>
784
785         PR tree-optimization/39643
786         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
787         IMAGPART_EXPRs of complex constants.
788         (execute_fold_all_builtins): If we folded a call queue
789         TODO_update_address_taken.
790
791 2009-04-06  Jan Hubicka  <jh@suse.cz>
792
793         PR middle-end/39659
794         * except.c (remove_unreachable_regions): Propagate may_contain_throw
795         flag.
796
797 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
798
799         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
800         delay slot.
801         (ic_invalidate_array): Likewise.
802
803 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
804
805         * calls.c (emit_library_call_value_1): Fix a problem with parameter
806         alignment for library calls.
807
808 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
809
810         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
811         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
812         * config/i386/mingw-stdint.h:  New file.
813
814 2009-04-05  Richard Guenther  <rguenther@suse.de>
815
816         PR tree-optimization/39648
817         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
818         our &A vs. &A[0] IL deficiencies.
819
820 2009-04-04  Jan Hubicka  <jh@suse.cz>
821
822         * except.c (sjlj_find_directly_reachable_regions): Be ready for
823         removed toplevel regions.
824         (sjlj_mark_call_sites): Likewise.
825
826 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
827
828         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
829         (cygwin tm clause use_gcc_stdint):  Set to wrap.
830         * config/i386/cygwin-stdint.h:  New file.
831
832 2009-04-04  Richard Guenther  <rguenther@suse.de>
833
834         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
835         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
836         single-argument PHIs if we are in loop-closed SSA form.
837         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
838         for the pre-condition.
839         (slpeel_tree_peel_loop_to_edge): Likewise.
840         (vect_build_loop_niters): Take an optional sequence to append stmts.
841         (vect_generate_tmps_on_preheader): Likewise.
842         (vect_do_peeling_for_loop_bound): Take extra guards for the
843         pre-condition.
844         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
845         the cost model check.
846         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
847         guards if we are going to peel.  Do not apply versioning in that case.
848         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
849         (vect_do_peeling_for_loop_bound): Likewise.
850         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
851         loop bound only record extra pre-conditions, do not apply loop
852         versioning.
853
854 2009-04-04  Richard Guenther  <rguenther@suse.de>
855
856         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
857         renaming code.
858
859 2009-04-04  Jan Hubicka  <jh@suse.cz>
860
861         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
862         last_basic_block for size of bb->index indexed array.
863         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
864         compute_out, link_btr_uses, build_btr_def_use_webs,
865         build_btr_def_use_webs, migrate_btr_defs): Likewise.
866
867 2009-04-04  Jan Hubicka  <jh@suse.cz>
868
869         * except.c (remove_eh_handler_and_replace): Break out from ...
870         (remove_eh_handler): ... here.
871         (bring_to_root): New function.
872         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
873         handled ones, bring others to root of tree.
874
875 2009-04-04  Jan Hubicka  <jh@suse.cz>
876
877         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
878         (all_phis_safe_to_merge): New function.
879         (update_info): New structure.
880         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
881         (cleanup_empty_eh): Update SSA if possible.
882
883 2009-04-04  Richard Guenther  <rguenther@suse.de>
884
885         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
886         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
887         (append_vuse): Likewise.
888
889 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
890
891         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
892         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
893         instead of REG_UNSAVED for DW_CFA_undefined.
894         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
895         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
896         outermost frame.
897
898 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
899
900         PR target/39501
901         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
902         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
903         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
904
905 2009-04-04  Richard Guenther  <rguenther@suse.de>
906
907         PR tree-optimization/8781
908         PR tree-optimization/37892
909         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
910         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
911         (valueize_refs): Call it for *& valueizations.
912         (shared_reference_ops_from_ref): Rename to ...
913         (valueize_shared_reference_ops_from_ref): ... this and valueize.
914         (shared_reference_ops_from_call): Rename to ...
915         (valueize_shared_reference_ops_from_call): ... this and valueize.
916         (vn_reference_lookup): Update.
917         (visit_reference_op_call): Likewise.
918         * tree-ssa-pre.c (phi_translate_1): Fold *&.
919         (eliminate): Value-replace the call address in call statements.
920
921 2009-04-04  Richard Guenther  <rguenther@suse.de>
922
923         PR tree-optimization/39636
924         * tree-ssa-forwprop.c
925         (forward_propagate_addr_into_variable_array_index): Check for
926         GIMPLE_ASSIGN before accessing the rhs code.
927
928 2009-04-03  Jason Merrill  <jason@redhat.com>
929
930         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
931
932 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
933
934         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
935         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
936         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
937         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
938         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
939         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
940         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
941         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
942         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
943         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
944         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
945         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
946         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
947         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
948         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
949         Use fr_reg_or_fp01_operand instead of fr_register_operand
950
951         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
952         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
953         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
954
955 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
956
957         PR rtl-optimization/39607
958         PR rtl-optimization/39631
959
960         Revert:
961         
962         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
963         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
964         instead of DF_LR_OUT.
965         * ira-lives.c (process_bb_node_lives): Ditto.
966         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
967         instead of DF_LR_{OUT,IN}.
968         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
969         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
970
971 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
972
973         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
974         (execute_lower_omp): Always run but take the short way out if -fopenmp
975         is not given.
976         (gate_lower_omp): Remove, forcing the pass manager to always run the
977         pass and always set PROP_gimple_lomp.
978         (pass_lower_omp): Remove gate function.
979         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
980         PROP_trees.  Instead, require it.
981         * ipa-cp.c (pass_ipa_cp): Likewise.
982         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
983         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
984         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
985         and PROP_gimple_leh.
986
987 2009-04-03  Richard Guenther  <rguenther@suse.de>
988
989         PR middle-end/13146
990         PR tree-optimization/23940
991         PR tree-optimization/33237
992         PR middle-end/33974
993         PR middle-end/34093
994         PR tree-optimization/36201
995         PR tree-optimization/36230
996         PR tree-optimization/38049
997         PR tree-optimization/38207
998         PR tree-optimization/38230
999         PR tree-optimization/38301
1000         PR tree-optimization/38585
1001         PR middle-end/38895
1002         PR tree-optimization/38985
1003         PR tree-optimization/39299
1004         * tree-ssa-structalias.h: Remove.
1005         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
1006         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
1007         (struct vuse_element_d): Remove.
1008         (struct vuse_vec_d): Likewise.
1009         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
1010         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
1011         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
1012         VUSE_ELEMENT_VAR): Likewise.
1013         (struct voptype_d): Likewise.
1014         (NUM_VOP_FREE_BUCKETS): Likewise.
1015         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
1016         (struct stmt_operands_d): Remove.
1017         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
1018         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
1019         VDEF_NUM, VDEF_VECT): Likewise.
1020         (copy_virtual_operands): Remove.
1021         (operand_build_cmp): Likewise.
1022         (create_ssa_artificial_load_stmt): Likewise.
1023         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
1024         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
1025         vuse_index and mayuse_index members.  Pack and move done and iter_type
1026         members to the front.
1027         (SSA_OP_VMAYUSE): Remove.
1028         (SSA_OP_VIRTUAL_USES): Adjust.
1029         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
1030         (unlink_stmt_vdef): Declare.
1031         (add_to_addressable_set): Remove.
1032         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
1033         (vrp_visit_stmt): Likewise.
1034         * doc/tree-ssa.texi (Alias analysis): Update.
1035         * doc/invoke.texi (max-aliased-vops): Remove docs.
1036         (avg-aliased-vops): Likewise.
1037         * tree-into-ssa.c (syms_to_rename): Remove.
1038         (need_to_update_vops_p): Likewise.
1039         (need_to_initialize_update_ssa_p): Rename to ...
1040         (update_ssa_initialized_fn): ... this.  Track function we are
1041         initialized for.
1042         (symbol_marked_for_renaming): Simplify.
1043         (add_new_name_mapping): Do not set need_to_update_vops_p.
1044         (dump_currdefs): Use SYMS_TO_RENAME.
1045         (rewrite_update_stmt): Always walk all uses/defs.
1046         (dump_update_ssa): Adjust.
1047         (init_update_ssa): Take function argument.  Track what we are
1048         initialized for.
1049         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1050         (create_new_def_for): Initialize for cfun, assert we are initialized
1051         for cfun.
1052         (mark_sym_for_renaming): Simplify.
1053         (mark_set_for_renaming): Do not initialize update-ssa.
1054         (need_ssa_update_p): Simplify.  Take function argument.
1055         (name_mappings_registered_p): Assert we ask for the correct function.
1056         (name_registered_for_update_p): Likewise.
1057         (ssa_names_to_replace): Likewise.
1058         (release_ssa_name_after_update_ssa): Likewise.
1059         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1060         (dump_decl_set): Do not print a newline.
1061         (debug_decl_set): Do it here.
1062         (dump_update_ssa): And here.
1063         * tree-ssa-loop-im.c (move_computations): Adjust.
1064         (movement_possibility): Likewise.
1065         (determine_max_movement): Likewise.
1066         (gather_mem_refs_stmt): Likewise.
1067         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1068         or NAME_MEMORY_TAG.
1069         * tree-complex.c (update_all_vops): Remove.
1070         (expand_complex_move): Adjust.
1071         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1072         Simplify test for memory referencing statement.  Exclude
1073         non-invariant ADDR_EXPRs.
1074         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1075         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1076         (rdg_flag_uses): Likewise.
1077         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1078         related code.
1079         (tree_optimize_tail_calls_1): Also split the
1080         edge from the entry block if we have degenerate PHI nodes in
1081         the first basic block.
1082         * tree.c (init_ttree): Remove memory-tag related code.
1083         (tree_code_size): Likewise.
1084         (tree_node_structure): Likewise.
1085         (build7_stat): Re-write to be build6_stat.
1086         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1087         (SSA_VAR_P): Adjust.
1088         (struct tree_memory_tag): Remove.
1089         (struct tree_memory_partition_tag): Likewise.
1090         (union tree_node): Adjust.
1091         (build7): Re-write to be build6.
1092         * tree-pass.h (pass_reset_cc_flags): Remove.
1093         (TODO_update_address_taken): New flag.
1094         (pass_simple_dse): Remove.
1095         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1096         * params.h (MAX_ALIASED_VOPS): Remove.
1097         (AVG_ALIASED_VOPS): Likewise.
1098         * omp-low.c (expand_omp_taskreg): Update SSA form.
1099         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1100         aliases the lhs in a copy stmt.
1101         * tree-ssa-dse.c (struct address_walk_data): Remove.
1102         (memory_ssa_name_same): Likewise.
1103         (memory_address_same): Likewise.
1104         (get_kill_of_stmt_lhs): Likewise.
1105         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1106         unused stores.  Look through PHI nodes into post-dominated regions.
1107         (dse_optimize_stmt): Simplify.  Properly remove stores.
1108         (tree_ssa_dse): Compute dominators.
1109         (execute_simple_dse): Remove.
1110         (pass_simple_dse): Likewise.
1111         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1112         gimple_loaded_syms and gimple_stored_syms computation.
1113         * toplev.c (dump_memory_report): Dump alias and pta stats.
1114         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1115         (vn_reference_eq): Likewise.
1116         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1117         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1118         valueize_vuses): Remove.
1119         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1120         (get_def_ref_stmt_vuse): ... this.
1121         (vn_reference_lookup_2): New function.
1122         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1123         walking equivalent vuses.  Simplify.
1124         (vn_reference_lookup): Likewise.
1125         (vn_reference_insert): Likewise.
1126         (vn_reference_insert_pieces): Likewise.
1127         (visit_reference_op_call): Simplify.
1128         (visit_reference_op_load): Likewise.
1129         (visit_reference_op_store): Likewise.
1130         (init_scc_vn): Remove shared_lookup_vuses initialization.
1131         (free_scc_vn): Remove shared_lookup_vuses freeing.
1132         (sort_vuses, sort_vuses_heap): Remove.
1133         (get_ref_from_reference_ops): Export.
1134         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1135         vector with single vuse pointer.
1136         (vn_reference_lookup_pieces, vn_reference_lookup,
1137         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1138         (shared_vuses_from_stmt): Remove.
1139         (get_ref_from_reference_ops): Declare.
1140         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1141         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1142         memory-tag related code.
1143         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1144         (likely_value): Add comment, skip static-chain of call statements.
1145         (surely_varying_stmt_p): Adjust.
1146         (gimplify_and_update_call_from_tree): Likewise.
1147         (execute_fold_all_builtins): Do not rebuild alias info.
1148         (gimplify_and_update_call_from_tree): Properly update VOPs.
1149         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1150         (copy_ref_info): Remove memory-tag related code.
1151         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1152         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1153         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1154         computation.
1155         * tree-ssa-dom.c (gimple_p): Remove typedef.
1156         (eliminate_redundant_computations): Adjust.
1157         (record_equivalences_from_stmt): Likewise.
1158         (avail_expr_hash): Likewise.
1159         (avail_expr_eq): Likewise.
1160         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1161         (stmt_makes_single_load): Likewise.
1162         (stmt_makes_single_store): Likewise.
1163         * tree-ssa-alias.c: Rewrite completely.
1164         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1165         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1166         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1167         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1168         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1169         Remove public functions.
1170         (pass_reset_cc_flags): Remove.
1171         (pass_build_alias): Move ...
1172         * tree-ssa-structalias.c (pass_build_alias): ... here.
1173         * tree-ssa-alias.c (may_be_aliased): Move ...
1174         * tree-flow-inline.h (may_be_aliased): ... here.
1175         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1176         count_uses_and_derefs): Move ...
1177         * gimple.c: ... here.
1178         * gimple.h (count_uses_and_derefs): Declare.
1179         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1180         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1181         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1182         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1183         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1184         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1185         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1186         New functions.
1187         * tree-dfa.c (refs_may_alias_p): Move ...
1188         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1189         * tree-ssa-alias.h: New file.
1190         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1191         (statement_sink_location): Likewise.
1192         * opts.c (decode_options): Do not adjust max-aliased-vops or
1193         avg-aliased-vops values.
1194         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
1195         (TV_CALL_CLOBBER): Likewise.
1196         (TV_FLOW_SENSITIVE): Likewise.
1197         (TV_FLOW_INSENSITIVE): Likewise.
1198         (TV_MEMORY_PARTITIONING): Likewise.
1199         (TV_ALIAS_STMT_WALK): New timevar.
1200         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
1201         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
1202         (get_address_description): Remove memory-tag related code.
1203         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
1204         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
1205         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
1206         and immediate uses in statements.  Document.
1207         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
1208         (dump_symbols): Remove.
1209         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
1210         * alias.c (get_deref_alias_set): New function split out from ...
1211         (get_alias_set): ... here.
1212         * alias.h (get_deref_alias_set): Declare.
1213         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
1214         type parameter.  Remove restrict pointer handling.  Create a
1215         ref-all pointer in case type-based alias sets do not conflict.
1216         (vect_analyze_data_refs): Remove SMT related code.
1217         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
1218         (vectorizable_load): Likewise.
1219         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
1220         (DR_SYMBOL_TAG, DR_VOPS): Remove.
1221         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
1222         Ignore vops and SMTs.
1223         (dr_analyze_alias): Likewise..
1224         (free_data_ref): Likewise.
1225         (create_data_ref): Likewise.
1226         (analyze_all_data_dependences): Likewise.
1227         (get_references_in_stmt): Adjust.
1228         * tree-flow-inline.h (gimple_aliases_computed_p,
1229         gimple_addressable_vars, gimple_call_clobbered_vars,
1230         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
1231         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
1232         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
1233         gimple_mem_ref_stats): Remove.
1234         (gimple_vop): New function.
1235         (op_iter_next_use): Remove vuses and mayuses cases.
1236         (op_iter_next_def): Remove vdefs case.
1237         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
1238         (clear_and_done_ssa_iter): Do not set removed fields.
1239         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
1240         Assert we are not iterating over vuses or vdefs if not also
1241         iterating over uses or defs.
1242         (op_iter_init_use): Likewise.
1243         (op_iter_init_def): Likewise.
1244         (op_iter_next_vdef): Remove.
1245         (op_iter_next_mustdef): Likewise.
1246         (op_iter_init_vdef): Likewise.
1247         (compare_ssa_operands_equal): Likewise.
1248         (link_use_stmts_after): Handle vuse operand.
1249         (is_call_used): Use is_call_clobbered.
1250         (is_call_clobbered): Global variables are always call clobbered,
1251         query the call-clobbers bitmap.
1252         (mark_call_clobbered): Ignore global variables.
1253         (clear_call_clobbered): Likewise.
1254         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
1255         virtual operands sanity check.
1256         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
1257         Remove.
1258         (TARGET_MEM_REF): Remove TMR_TAG operand.
1259         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
1260         Remove call-clobber related code.
1261         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
1262         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
1263         partitions or escape reason.
1264         (get_single_def_stmt, get_single_def_stmt_from_phi,
1265         get_single_def_stmt_with_phi): Remove.
1266         (dump_referenced_vars): Tidy.
1267         (get_ref_base_and_extent): Allow bare decls.
1268         (collect_dfa_stats): Adjust.
1269         * graphite.c (rename_variables_in_stmt): Adjust.
1270         (graphite_copy_stmts_from_block): Likewise.
1271         (translate_clast): Likewise.
1272         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
1273         (EXPR_DIES): New.
1274         (translate_vuse_through_block): Use the oracle.
1275         (phi_translate_1): Adjust.
1276         (value_dies_in_block_x): Use the oracle.  Cache the outcome
1277         in EXPR_DIES.
1278         (valid_in_sets): Check if the VUSE for
1279         a REFERENCE is available.
1280         (eliminate): Do not remove stmts during elimination,
1281         instead queue and remove them afterwards.
1282         (do_pre): Do not rebuild alias info.
1283         (pass_pre): Run TODO_rebuild_alias before PRE.
1284         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
1285         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
1286         (mark_all_v_defs_stmt): Remove.
1287         (mark_all_v_defs_seq): Adjust.
1288         (sra_replace): Likewise.
1289         (scalarize_use): Likewise.
1290         (scalarize_copy): Likewise.
1291         (scalarize_init): Likewise.
1292         (scalarize_ldst): Likewise.
1293         (todoflags): Remove.
1294         (tree_sra): Do not rebuild alias info.
1295         (tree_sra_early): Adjust.
1296         (pass_sra): Run TODO_update_address_taken before SRA.
1297         * tree-predcom.c (set_alias_info): Remove.
1298         (prepare_initializers_chain): Do not call it.
1299         (mark_virtual_ops_for_renaming): Adjust.
1300         (mark_virtual_ops_for_renaming_list): Remove.
1301         (initialize_root_vars): Adjust.
1302         (initialize_root_vars_lm): Likewise.
1303         (prepare_initializers_chain): Likewise.
1304         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
1305         (may_propagate_copy_into_stmt): Likewise.
1306         (merge_alias_info): Do nothing for now.
1307         (propagate_tree_value_into_stmt): Adjust.
1308         (stmt_may_generate_copy): Likewise.
1309         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
1310         not mark symbols for renaming.
1311         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
1312         with the same statement, make sure to update the new pointed-to one.
1313         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
1314         call statements, do not mark symbols for renaming.
1315         (mark_operand_necessary): Dump something.
1316         (ref_may_be_aliased): New function.
1317         (mark_aliased_reaching_defs_necessary_1): New helper function.
1318         (mark_aliased_reaching_defs_necessary): Likewise.
1319         (mark_all_reaching_defs_necessary_1): Likewise.
1320         (mark_all_reaching_defs_necessary): Likewise.
1321         (propagate_necessity): Do not process virtual PHIs.  For
1322         non-aliased loads mark all reaching definitions as necessary.
1323         For aliased loads and stores mark the immediate dominating
1324         aliased clobbers as necessary.
1325         (visited): New global static.
1326         (perform_tree_ssa_dce): Free visited bitmap after propagating
1327         necessity.
1328         (remove_dead_phis): Perform simple dead virtual PHI removal.
1329         (remove_dead_stmt): Properly unlink virtual operands when
1330         removing stores.
1331         (eliminate_unnecessary_stmts): Schedule PHI removal after
1332         stmt removal.
1333         * tree-ssa-ter.c (is_replaceable_p): Adjust.
1334         (process_replaceable): Likewise.
1335         (find_replaceable_in_bb): Likewise.
1336         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
1337         based on the single gimple vop.
1338         (verify_flow_insensitive_alias_info): Remove.
1339         (verify_flow_sensitive_alias_info): Likewise.
1340         (verify_call_clobbering): Likewise.
1341         (verify_memory_partitions): Likewise.
1342         (verify_alias_info): Likewise.
1343         (verify_ssa): Adjust..
1344         (execute_update_addresses_taken): Export.  Update SSA
1345         manually.  Optimize only when optimizing.  Use a local bitmap.
1346         (pass_update_address_taken): Remove TODO_update_ssa, add
1347         TODO_dump_func.
1348         (pass_update_address_taken): Just use TODO_update_address_taken.
1349         (init_tree_ssa): Do not initialize addressable_vars.
1350         (verify_ssa): Verify new VUSE / VDEF properties.
1351         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
1352         Do not call verify_alias_info.
1353         (delete_tree_ssa): Clear the VUSE, VDEF operands.
1354         Do not free the loaded and stored syms bitmaps.  Reset the escaped
1355         and callused solutions.  Do not free addressable_vars.
1356         Remove memory-tag related code.
1357         (warn_uninitialized_var): Aliases are always available.
1358         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
1359         * lambda-code.c (can_put_in_inner_loop): Adjust.
1360         (can_put_after_inner_loop): Likewise.
1361         (perfect_nestify): Likewise.
1362         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
1363         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
1364         (vectorizable_conversion): Do not mark symbols for renaming.
1365         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
1366         (expand_call_inline): Unlink the calls virtual operands before
1367         replacing it.
1368         (tree_function_versioning): Do not call update_ssa if we are not
1369         updating clones.  Simplify.
1370         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
1371         (propagate_with_phi): Likewise..
1372         * tree-outof-ssa.c (create_temp): Remove memory tag and call
1373         clobber code.  Assert we are not aliased or global.
1374         * tree-flow.h: Include tree-ssa-alias.h
1375         (enum escape_type): Remove.
1376         (struct mem_sym_stats_d): Likewise.
1377         (struct mem_ref_stats_d): Likewise.
1378         (struct gimple_df): Add vop member.  Remove global_var,
1379         call_clobbered_vars, call_used_vars, addressable_vars,
1380         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
1381         escaped and callused members.
1382         (struct ptr_info_def): Remove all members, add points-to solution
1383         member pt.
1384         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
1385         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
1386         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
1387         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
1388         (tree-ssa-alias.o): Likewise.
1389         (toplev.o): Add tree-ssa-alias.h
1390         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
1391         * gimple.c (gimple_set_bb): Fix off-by-one error.
1392         (is_gimple_reg): Do not handle memory tags.
1393         (gimple_copy): Also copy virtual operands.
1394         Delay updating the statement.  Do not reset loaded and stored syms.
1395         (gimple_set_stored_syms): Remove.
1396         (gimple_set_loaded_syms): Likewise.
1397         (gimple_call_copy_skip_args): Copy the virtual operands
1398         and mark the new statement modified.
1399         * tree-ssa-structalias.c (may_alias_p): Remove.
1400         (set_uids_in_ptset): Take the alias set to prune with as
1401         parameter.  Fold in the alias test of may_alias_p.
1402         (compute_points_to_sets): Compute whether a ptr is dereferenced
1403         in a local sbitmap.
1404         (process_constraint): Deal with &ANYTHING on the lhs, reject all
1405         other ADDRESSOF constraints on the lhs.
1406         (get_constraint_for_component_ref): Assert that we don't get
1407         ADDRESSOF constraints from the base of the reference.
1408         Properly generate UNKNOWN_OFFSET for DEREF if needed.
1409         (struct variable_info): Remove collapsed_to member.
1410         (get_varinfo_fc): Remove.
1411         (new_var_info): Do not set collapsed_to.
1412         (dump_constraint): Do not follow cycles.
1413         (dump_constraint_graph): Likewise.
1414         (build_pred_graph): Likewise.
1415         (build_succ_graph): Likewise.
1416         (rewrite_constraints): Likewise.
1417         (do_simple_structure_copy): Remove.
1418         (do_rhs_deref_structure_copy): Remove.
1419         (do_lhs_deref_structure_copy): Remove.
1420         (collapse_rest_of_var): Remove.
1421         (do_structure_copy): Re-implement.
1422         (pta_stats): New global variable.
1423         (dump_pta_stats): New function.
1424         (struct constraint_expr): Make offset signed.
1425         (UNKNOWN_OFFSET): Define special value.
1426         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
1427         (solution_set_expand): New helper function split out from ...
1428         (do_sd_constraint): ... here.
1429         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
1430         (do_ds_constraint): Likewise.
1431         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
1432         and CALLUSED = *CALLUSED.
1433         (set_union_with_increment): Make inc argument signed.
1434         (type_safe): Remove.
1435         (get_constraint_for_ptr_offset): Handle unknown and negative
1436         constant offsets.
1437         (first_vi_for_offset): Handle offsets before start.  Bail
1438         out early for offsets beyond the variable extent.
1439         (first_or_preceding_vi_for_offset): New function.
1440         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
1441         Together with ESCAPED = *ESCAPED this properly computes reachability.
1442         (find_what_var_points_to): New function.
1443         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
1444         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
1445         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
1446         pt_solutions_intersect): New functions.
1447         (compute_call_used_vars): Remove.
1448         (compute_may_aliases): New main entry into PTA computation.
1449         * gimple.h (gimple_p): New typedef.
1450         (struct gimple_statement_base): Remove references_memory_p.
1451         (struct gimple_statement_with_memory_ops_base): Remove
1452         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
1453         members.
1454         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
1455         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
1456         gimple_set_references_memory): Remove.
1457         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
1458         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
1459         New functions.
1460         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
1461         (verify_expr): Allow RESULT_DECL.
1462         (gimple_duplicate_bb): Do not copy virtual operands.
1463         (gimple_duplicate_sese_region): Adjust.
1464         (gimple_duplicate_sese_tail): Likewise.
1465         (mark_virtual_ops_in_region): Remove.
1466         (move_sese_region_to_fn): Do not call it.
1467         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
1468         and pass_simple_dse.
1469         (execute_function_todo): Handle TODO_update_address_taken,
1470         call execute_update_addresses_taken for TODO_rebuild_alias.
1471         (execute_todo): Adjust.
1472         (execute_one_pass): Init dump files early.
1473         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
1474         call-clobbered.
1475         (create_general_new_stmt): Clear vops.
1476         * tree-ssa-reassoc.c (get_rank): Adjust.
1477         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
1478         symbols for renaming.
1479         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
1480         (PARAM_AVG_ALIASED_VOPS): Likewise.
1481         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
1482         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
1483         * tree-ssa-operands.c: Simplify for new virtual operand representation.
1484         (operand_build_cmp, copy_virtual_operands,
1485         create_ssa_artificial_load_stmt, add_to_addressable_set,
1486         gimple_add_to_addresses_taken): Remove public functions.
1487         (unlink_stmt_vdef): New function.
1488
1489 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1490
1491         * config.gcc (powerpc-*-linux*): Merge variants.
1492
1493 2009-04-02  Chao-ying Fu  <fu@mips.com>
1494             James Grosbach <james.grosbach@microchip.com>
1495
1496         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
1497         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
1498         cop0_sp_offset.
1499         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
1500         keep_interrupts_masked_p, use_debug_exception_return_p.
1501         (mips_attribute_table): Add interrupt, use_shadow_register_set,
1502         keep_interrupts_masked, use_debug_exception_return.
1503         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
1504         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
1505         New functions.
1506         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
1507         (mips_print_operand): Process COP0 registers to print $0 .. $31
1508         correctly for GAS to process.
1509         (mips_interrupt_extra_call_saved_reg_p): New function.
1510         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
1511         extra registers.
1512         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1513         (mips_compute_frame_info): Add supports for interrupt context that
1514         includes doubleword accumulators and COP0 registers.
1515         (mips_for_each_saved_acc): New function.
1516         (mips_for_each_saved_gpr_and_fpr): Change the function name from
1517         mips_for_each_saved_reg.
1518         (mips_save_reg): Save accumulators.
1519         (mips_kernel_reg_p): A new for_each_rtx callback.
1520         (mips_expand_prologue): Support interrupt handlers.
1521         (mips_restore_reg): Restore accumulators.
1522         (mips_expand_epilogue): Support interrupt handlers.
1523         (mips_can_use_return_insn): Return false for interrupt handlers.
1524         (mips_epilogue_uses): New function.
1525         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
1526         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
1527         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
1528         cop0_move): New instructions.
1529         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
1530         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
1531         defines.
1532         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
1533         New defines.
1534         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
1535         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
1536         interrupt handlers, we use K0 as the temporary register.
1537         (EPILOGUE_USES): Change to a function call.
1538         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
1539         handlers, we use K0 as the temporary register.
1540         
1541         * doc/extend.texi (Function Attributes): Document interrupt,
1542         use_shadow_register_set, keep_interrupts_masked,
1543         use_debug_exception_return for MIPS attributes.
1544
1545 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1546
1547         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
1548         Remove a number of t-files from tmake_file.
1549         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
1550         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
1551         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1552         target_prototype, not TARGET_PROTOTYPE.
1553         (LINK_OS_GNU_SPEC): Define.
1554         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
1555         and darwin-ldoubdle.c.
1556
1557 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1558
1559         PR driver/39293
1560         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
1561         (cpp_options): Ditto.
1562         (default_compilers): Ditto.
1563         (display_help): Ditto.
1564         (process_command): Ditto.
1565         (do_spec_1): Ditto.
1566         (set_input): Use lbasename instead of duplicate code.
1567         (save_temps_prefix): New static for -save-temps=obj.
1568         (save_temps_length): Ditto.
1569         
1570         * doc/invoke.texi (-save-temps=obj): Document new variant to
1571         -save-temps switch.
1572
1573 2009-04-02  Jeff Law  <law@redhat.com>
1574
1575         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
1576         variable.
1577
1578 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1579
1580         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
1581         * configure: Regenerated.
1582
1583 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1584
1585         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
1586         share the argument list.
1587
1588 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1589
1590         Merge
1591
1592         2009-02-12  Diego Novillo  <dnovillo@google.com>
1593
1594         * varpool.c (debug_varpool): New.
1595         * cgraph.h (debug_varpool): Declare.
1596
1597 2009-04-02  Jan Hubicka  <jh@suse.cz>
1598
1599         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1600         pass.
1601
1602 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1603
1604         * config/i386/i386.c (ix86_abi): Move initialization to ...
1605         (override_options): Here.
1606
1607 2009-04-02  Christian Bruel  <christian.bruel@st.com>
1608
1609         * config/sh/sh.c (sh_dwarf_register_span): New function.
1610         (TARGET_DWARF_REGISTER_SPAN): Define.
1611         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1612         
1613 2009-04-02  Ira Rosen  <irar@il.ibm.com>
1614
1615         PR tree-optimization/39595
1616         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
1617         interleaved loads group is not  greater than the SLP group size.
1618
1619 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1620
1621         * builtins.c (is_builtin_name): New.
1622         (called_as_built_in): Use is_builtin_name.
1623         * tree.h (is_builtin_name): New.
1624         * varasm.c (incorporeal_function_p): Use is_builtin_name
1625
1626 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
1627
1628         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1629
1630 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
1631
1632         PR c++/26693
1633         * c-decl.c: (clone_underlying_type): Move this ...
1634         * c-common.c (set_underlying_type): ... here.
1635         Also, make sure the function properly sets TYPE_STUB_DECL() on
1636         the newly created typedef variant type.
1637         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1638         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
1639         points.
1640
1641 2009-04-02  Richard Guenther  <rguenther@suse.de>
1642
1643         PR tree-optimization/37221
1644         * tree-flow.h (degenerate_phi_result): Declare.
1645         * tree-ssa-dom.c (degenerate_phi_result): Export.
1646         * tree-scalar-evolution.c (analyze_initial_condition): If
1647         the initial condition is defined by a degenerate PHI node
1648         use the degenerate value.
1649
1650 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
1651
1652         PR rtl-optimization/39588
1653         * combine.c (merge_outer_ops): Do not set the constant when this
1654         is not necessary.
1655         (simplify_shift_const_1): Do not modify it either in this case.
1656
1657 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1658
1659         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1660         tuning is deprecated if -mtune value is set to an Itanium1 variant.
1661
1662 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1663
1664         PR c/29027
1665         * c-lex.c (interpret_float): Default (no suffix) is double.
1666
1667 2009-04-1  Xinliang David Li  <davidxl@google.com>
1668
1669         * config/i386/i386.c (legitimate_constant_p): Recognize
1670         all one vector constant.
1671
1672 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1673
1674         * gcc/config/vax/vax.c: Add #includes to silence warnings.
1675         Change #include order to silence two warnings.
1676
1677 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1678
1679         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1680         (ASM_SPEC): Pass -k to the assembler for PIC code.
1681
1682 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1683
1684         * gcc/config.gcc: Add vax-*-linux* to the switch.
1685         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1686         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1687
1688 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1689
1690         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1691         Use predicate macros instead of GET_CODE() == foo.
1692         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1693         ashlsi3, rotrsi3, <unnamed>): Likewise.
1694
1695 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1696
1697         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1698         jbbccihi, jbbccisi): Remova trailing whitespace.
1699         * gcc/config/vax/constraints.md: Likewise.
1700         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1701         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1702         * gcc/config/vax/predicates.md: Likewise.
1703         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1704         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1705         * gcc/config/vax/vax.h: Likewise.
1706         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1707
1708 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1709
1710         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1711         (indirectable_address_p, adjacent_operands_p): Add spaces around
1712         braces.
1713         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1714
1715 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1716
1717         * gcc/config/vax/vax.c (legitimate_constant_address_p,
1718         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1719         index_term_p, reg_plus_index_p, legitimate_address_p,
1720         vax_mode_dependent_address_p): Update comments to match functions
1721         modified by the recent int->bool conversion.
1722
1723 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1724
1725         * gcc/config/vax/builtins.md: Update copyright message.
1726         * gcc/config/vax/constraints.md: Likewise.
1727         * gcc/config/vax/netbsd-elf.h: Likewise.
1728         * gcc/config/vax/predicates.md: Likewise.
1729         * gcc/config/vax/vax-protos.h: Likewise.
1730         * gcc/config/vax/vax.c: Likewise.
1731         * gcc/config/vax/vax.h: Likewise.
1732         * gcc/config/vax/vax.md: Likewise.
1733         * gcc/config/vax/vax.opt: Likewise.
1734
1735 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1736
1737         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1738         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1739         * gcc/config/vax/constraints.md (B, R): Likewise.
1740         * gcc/config/vax/predicates.md (external_memory_operand,
1741         nonimmediate_addsub_di_operand): Likewise.
1742         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1743         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1744         untyped_call): Likewise.
1745
1746 2009-04-01  Matt Thomas <matt@3am-software.com>
1747
1748         * config/vax/predicates.md: New file.
1749         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
1750         external_const_operand, nonsymbolic_operand, external_memory_operand,
1751         indirect_memory_operand, indexed_memory_operand,
1752         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1753         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1754         predicate.
1755         * config/vax/constraints.md: New file.
1756         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
1757         New constraint.
1758         * config/vax/builtins.md: New file.
1759         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
1760         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
1761         jbbccisi): Define.
1762         * config/vax/vax.opt (mqmath): Add option.
1763         * config/vax/vax.md (isfx): Extend with DI.
1764         (VAXintQH, VAXintQHSD): Define.
1765         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1766         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1767         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1768         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
1769         (movdi): Update constraints and use vax_output_int_move().
1770         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
1771         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
1772         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
1773         nonlocal_goto): New.
1774         (mov<mode>): Extend accepted operand types.
1775         (subdi3_old): Rename from subdi3, change update constraints and use
1776         a new implementation.
1777         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1778         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1779         MOVE_RATIO, CLEAR_RATIO): Define.
1780         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1781         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1782         (PRINT_OPERAND): Redefine using a function instead of inlined code.
1783         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1784         (split_quadword_operands): Make static and really allow variable
1785         splitting.
1786         (print_operand_address): Update for PIC generation.
1787         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1788         indexable_address_p, fixup_mathdi_operand,
1789         vax_expand_addsub_di_operands, adjacent_operands_p): New.
1790         (vax_float_literal, legitimate_constant_p,
1791         indirectable_constant_address_p, index_term_p,
1792         reg_plus_index_p): Return bool instead of int.
1793         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1794         where needed.
1795         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1796         generation.
1797         (vax_output_conditional_branch): Indent.
1798         (legitimate_constant_address_p, indirectable_constant_address_p,
1799         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1800         vax_mode_dependent_address_p): Return bool instead of int, update for
1801         PIC generation.
1802         * config/vax/vax-protos.h (legitimate_constant_address_p,
1803         legitimate_constant_p, legitimate_address_p,
1804         vax_mode_dependent_address_p): Change declaration to bool.
1805         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1806         vax_expand_addsub_di_operands, vax_output_int_subtract,
1807         vax_output_movmemsi): Declare.
1808         (split_quadword_operands, vax_float_literal): Delete declaration.
1809         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1810         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1811         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1812         ASM_OUTPUT_DWARF_PCREL): Define.
1813         (ASM_SPEC): Change definition to allow PIC generation.
1814
1815 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
1816
1817         * doc/sourcebuild.texi: Update front-end requirements.
1818
1819 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1820
1821         PR target/39226
1822         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1823         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1824         (booldi3_internal3): Use boolean_or_operator instead of
1825         boolean_operator.
1826
1827 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
1828
1829         PR c/39605
1830         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
1831         declarator whose size is not an integer constant expression but
1832         folds to an integer constant, then treat it as a constant
1833         subsequently.
1834
1835 2009-04-01  Richard Guenther  <rguenther@suse.de>
1836
1837         * fold-const.c (fold_plusminus_mult_expr): Do not fold
1838         i * 4 + 2 to (i * 2 + 1) * 2.
1839
1840 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1841
1842         PR c/37772
1843         * c-parser.c (c_parser_asm_statement): Skip until close paren and
1844         return if c_parser_asm_string_literal returned NULL.
1845
1846 2009-04-01  Nick Clifton  <nickc@redhat.com>
1847
1848         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
1849         already defined.
1850         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
1851         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
1852         other typedefs to avoid conflicts with libgcc2.c.  Define labels
1853         to gain 16-bit bit-manipulation functions from libgcc2.c and then
1854         include it.
1855         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
1856         to gain 16-bit trapping arithmetic functions from libgcc2.c and
1857         then include it.
1858
1859 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
1860
1861         * varasm.c (default_function_rodata_section): Declare DOT as
1862         const char*.
1863
1864 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
1865             Andrey Galkin <agalkin@hypercom.com>
1866
1867         PR/39492
1868         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
1869         Make object_name unique for each process.
1870
1871 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1872
1873         PR other/39591
1874         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
1875         addressable variables in the parallel that could go out of scope while
1876         running queued tasks.
1877
1878 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
1879
1880         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
1881         (CASE_VALUES_THRESHOLD): Redefine.
1882         * config/avr/avr.c (avr_override_options): Remove initialization of
1883         avr_case_values_threshold variable.
1884         (avr_case_values_threshold): Remove variable. Add new function.
1885         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
1886         * config/avr/avr.opt (mno-tablejump): Remove option.
1887         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
1888
1889 2009-04-01  DJ Delorie  <dj@redhat.com>
1890
1891         * varasm.c (default_function_rodata_section): Don't assume
1892         anything about where the first '.' in the section name is.
1893
1894 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
1895
1896         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
1897         rs6000_emit_stack_tie.
1898
1899 2009-03-31  Ian Lance Taylor  <iant@google.com>
1900
1901         * tree-eh.c (tree_remove_unreachable_handlers): Compare
1902         gimple_code with GIMPLE_RESX, not RESX.
1903
1904 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1905
1906         * c-common.c (c_get_ident): New.
1907         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
1908
1909 2009-04-01  Ben Elliston  <bje@au.ibm.com>
1910
1911         * config/rs6000/sysv4.opt (msdata): Improve option description.
1912
1913 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
1914
1915         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
1916         (divdf3_internal_lat): Remove.
1917         (divxf3_internal_lat): Remove.
1918         (divxf3_internal_thr): Remove.
1919         (divxf): Use divxf3_internal.
1920         * config/ia64/div.md (divsf3_internal_lat): New.
1921         (divdf3_internal_lat): New.
1922         (divxf3_internal): New.
1923
1924 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1925
1926         PR c/448
1927         * Makefile.in (USE_GCC_STDINT): Define.
1928         (stmp-int-hdrs): Install stdint.h if applicable.
1929         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
1930         if known.
1931         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
1932         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
1933         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1934         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1935         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1936         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1937         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1938         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1939         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1940         (c_common_nodes_and_builtins): Initialize
1941         underlying_wchar_type_node.  Do not initialize
1942         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
1943         nodes for new types.
1944         (c_stddef_cpp_builtins): Define macros for new types.
1945         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
1946         Remove.
1947         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
1948         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
1949         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
1950         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
1951         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
1952         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
1953         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
1954         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
1955         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
1956         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
1957         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
1958         int16_type_node, int32_type_node, int64_type_node,
1959         uint8_type_node, uint16_type_node, c_uint32_type_node,
1960         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
1961         int_least32_type_node, int_least64_type_node,
1962         uint_least8_type_node, uint_least16_type_node,
1963         uint_least32_type_node, uint_least64_type_node,
1964         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
1965         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
1966         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
1967         uintptr_type_node): Define.
1968         * c-cppbuiltin.c (builtin_define_constants,
1969         builtin_define_type_minmax): New.
1970         (builtin_define_stdint_macros): Define more macros.
1971         (c_cpp_builtins): Define more limit macros.
1972         (type_suffix): New.
1973         (builtin_define_type_max): Define in terms of
1974         builtin_define_type_minmax.  Remove is_long parameter.  All
1975         callers changed.
1976         * config.gcc (use_gcc_stdint): Define.
1977         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
1978         Add newlib-stdint.h for generic targets.
1979         * config/glibc-stdint.h, config/newlib-stdint.h,
1980         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
1981         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
1982         * config/score/score.h (UINTPTR_TYPE): Define.
1983         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1984         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1985         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1986         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1987         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1988         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1989         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1990         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1991         * config/spu/spu.h (STDINT_LONG32): Define.
1992         * configure.ac (use_gcc_stdint): Substitute.
1993         * configure: Regenerate.
1994         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
1995         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
1996         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
1997         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
1998         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
1999         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
2000         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
2001         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
2002         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
2003         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
2004         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
2005         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
2006         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
2007         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
2008         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
2009         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
2010         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
2011         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
2012         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
2013         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
2014         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
2015         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
2016         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2017         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2018         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2019         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2020         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2021         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2022         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
2023
2024 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2025
2026         * loop-iv.c (suitable_set_for_replacement): Renamed from
2027         simplify_using_assignment; changed to return bool and to accept new
2028         args DEST and SRC.  Return true iff we find a source/destination pair
2029         that can be used to make a replacement, and fill SRC and DEST if so.
2030         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
2031         changed.
2032         (simplify_using_initial_values): Deal with altered regs here and track
2033         more precisely the effect they have on the validity of our expression.
2034
2035         * loop-iv.c (simplify_using_condition): A condition of the form
2036         (EQ REG CONST) can be used to simply make a substitution.
2037         (simplify_using_initial_values): Keep track of conditions we have seen
2038         and keep using them to simplify new expressions, while applying the
2039         same substitutions to them as to the expression.
2040
2041         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2042         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2043         GEU/LTU reversed.
2044
2045         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2046         changed.  Use this when trying to improve the upper bound.
2047         Generate the comparison by using simplify_gen_relational.
2048
2049         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2050
2051         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2052         functions.
2053         (simplify_using_assignment, simplify_using_initial_values): Call 
2054         replace_in_expr to make replacements.  Call replace_single_def_regs
2055         once on the initial version of the expression.
2056
2057 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2058
2059         PR target/27237
2060         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2061         
2062 2009-03-31  Richard Guenther  <rguenther@suse.de>
2063
2064         PR middle-end/31029
2065         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2066         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2067
2068 2009-03-31  Richard Guenther  <rguenther@suse.de>
2069
2070         * tree.h (div_if_zero_remainder): Declare.
2071         * fold-const.c (div_if_zero_remainder): Export.
2072         * tree-ssa-forwprop.c
2073         (forward_propagate_addr_into_variable_array_index): Handle
2074         constant array index addition outside of the variable index.
2075
2076 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2077
2078         PR target/39592
2079         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2080         define_splits, floatunssi<mode>2): Require x87 conversions from
2081         DImode to be permitted.
2082
2083 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2084
2085         PR preprocessor/15638
2086         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2087
2088 2009-03-31  Richard Guenther  <rguenther@suse.de>
2089
2090         PR middle-end/23401
2091         PR middle-end/27810
2092         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2093         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2094         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2095         a separate statement.
2096         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2097         (lookup_tmp_var): Likewise.
2098         (is_gimple_formal_tmp_or_call_rhs): Remove.
2099         (is_gimple_reg_or_call_rhs): Rename to ...
2100         (is_gimple_reg_rhs_or_call): ... this.
2101         (is_gimple_mem_or_call_rhs): Rename to ...
2102         (is_gimple_mem_rhs_or_call): ... this.
2103         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2104         DECL_GIMPLE_REG_P only if is_formal is true.
2105         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2106         for non-proper post-modify expression gimplification.
2107         (gimplify_self_mod_expr): For post-modify expressions gimplify
2108         the lvalue to a minimal lvalue.
2109         (rhs_predicate_for): Remove formal temp case.
2110         (gimplify_modify_expr_rhs): Likewise.
2111         (gimplify_addr_expr): Use is_gimple_reg.
2112         (gimplify_expr): Remove formal temp cases.
2113         (gimple_regimplify_operands): Likewise.
2114         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2115         and FILTER_EXPR like constants.
2116         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2117         is_gimple_reg.
2118         (is_gimple_formal_tmp_rhs): Remove.
2119         (is_gimple_reg_rhs): Remove special casing.
2120         (is_gimple_mem_rhs): Fix.
2121         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2122         (is_gimple_formal_tmp_var): Remove.
2123         (is_gimple_formal_tmp_reg): Likewise.
2124         (is_gimple_min_lval): Allow invariant component ref parts.
2125         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2126         is_gimple_formal_tmp_reg): Remove declarations.
2127         * tree-cfg.c (verify_expr): Verify that variables with address
2128         taken do not have DECL_GIMPLE_REG_P set.
2129         * tree-mudflap.c (mf_build_check_statement_for): Use
2130         force_gimple_operand instead of gimplify_expr.
2131
2132 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2133
2134         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2135         schedulable rows to compute_split_row.
2136
2137 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2138
2139         PR target/31635
2140         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2141         OPT_mvrsave.
2142
2143 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2144
2145         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2146         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2147         * configure: Regenerate.
2148         * config.in: Regenerate.
2149         * config/rs6000/rs6000.opt (mtls-markers): Add.
2150         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2151         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2152         (tls_ld_aix, tls_ld_sysv): Likewise.
2153         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2154         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2155
2156 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2157
2158         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2159
2160 2009-03-30  Jan Hubicka  <jh@suse.cz>
2161
2162         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2163         out of RESX.
2164         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2165         detection and label handling.
2166
2167 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2168
2169         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2170         left_conflicts_size.
2171         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2172         ALLOCNO_LEFT_CONFLICTS_SIZE.
2173
2174         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2175         remove_allocno_from_bucket_and_push,
2176         allocno_spill_priority_compare, push_allocnos_to_stack,
2177         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2178         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2179         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2180         setup_allocno_left_conflicts_size.
2181         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2182         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2183         setup_allocno_left_conflicts_size instead of
2184         setup_allocno_left_conflicts_num.
2185
2186         * ira-build.c (ira_create_allocno): Use
2187         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2188         ALLOCNO_LEFT_CONFLICTS_NUM.
2189                 
2190 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2191
2192         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2193         instead of DF_LR_OUT.
2194
2195         * ira-lives.c (process_bb_node_lives): Ditto.
2196
2197         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2198         instead of DF_LR_{OUT,IN}.
2199
2200         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2201
2202         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2203
2204 2009-03-30  Jan Hubicka  <jh@suse.cz>
2205
2206         * except.c (label_to_region_map): Fix thinko.
2207
2208 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
2209
2210         PR middle-end/38237
2211         * tree.h (tree_find_value): New declaration.
2212         * tree.c (tree_find_value): New function.
2213         * varasm.c (assemble_external): Avoid duplicate entries on lists.
2214
2215 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2216
2217         PR debug/39563
2218         * c-decl.c (struct c_binding): Add locus field.
2219         (bind): Add locus argument, set locus field from it.
2220         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
2221         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
2222         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
2223         implicitly_declare, undeclared_variable, lookup_label,
2224         declare_label, c_make_fname_decl, c_builtin_function,
2225         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
2226         bind callers.
2227
2228 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2229
2230         PR target/38781
2231         * config/i386/i386.c (classify_argument): Check total size of
2232         structure.
2233
2234 2009-03-30  Martin Jambor  <mjambor@suse.cz>
2235
2236         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
2237         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
2238         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
2239         respectively.
2240
2241         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
2242         seen_variable_array_ref while also traversing a union.
2243
2244         * tree-inline.c (optimize_inline_calls): Do not call
2245         cgraph_node_remove_callees.
2246         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
2247         (pass_remove_cgraph_callee_edges): New variable.
2248         * passes.c (init_optimization_passes): Add
2249         pass_remove_cgraph_callee_edges after early inlining and before all
2250         late intraprocedural passes.
2251
2252         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
2253
2254 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2255
2256         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
2257         Fix typos in names.
2258
2259 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2260
2261         * combine.c (simplify_comparison): Use have_insn_for.
2262         * dojump.c (do_jump): Likewise.
2263
2264 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2265
2266         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
2267         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
2268         sparc_compare_op0 like sparc_compare_emitted used to be handled.
2269         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
2270         instead of sparc_compare_emitted.
2271         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
2272         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
2273         instead of sparc_compare_emitted.
2274
2275 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2276
2277         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
2278         enter/exit cfglayout mode.
2279         (pass_partition_block): Require it.
2280         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
2281         (combine_instructions): Track basic blocks instead of labels.
2282         (update_cfg_for_uncondjump): New.
2283         (try_combine): Use it.  Update jumps after rescanning.
2284         (pass_combine): Require PROP_cfglayout.
2285         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
2286
2287 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2288
2289         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
2290         Provide/destroy PROP_cfglayout respectively.
2291         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
2292         * tree-pass.h (PROP_cfglayout): New.
2293
2294 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2295
2296         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
2297         fold_convert_const_fixed_from_fixed,
2298         fold_convert_const_fixed_from_int,
2299         fold_convert_const_fixed_from_real, fold_negate_const): Do not
2300         set TREE_CONSTANT_OVERFLOW.
2301         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
2302         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
2303
2304 2009-03-30  Ira Rosen  <irar@il.ibm.com>
2305
2306         * tree-vect-loop-manip.c: New file.
2307         * tree-vectorizer.c: Update documentation and included files.
2308         (vect_loop_location): Make extern.
2309         (rename_use_op): Move to tree-vect-loop-manip.c
2310         (rename_variables_in_bb, rename_variables_in_loop, 
2311         slpeel_update_phis_for_duplicate_loop, 
2312         slpeel_update_phi_nodes_for_guard1,
2313         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
2314         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
2315         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2316         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
2317         find_loop_location): Likewise.
2318         (new_stmt_vec_info): Move to tree-vect-stmts.c.
2319         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
2320         get_vectype_for_scalar_type, vect_is_simple_use,
2321         supportable_widening_operation, supportable_narrowing_operation):
2322         Likewise.
2323         (bb_in_loop_p): Move to tree-vect-loop.c.
2324         (new_loop_vec_info, destroy_loop_vec_info, 
2325         reduction_code_for_scalar_code, report_vect_op, 
2326         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
2327         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
2328         (vect_supportable_dr_alignment): Likewise.
2329         * tree-vectorizer.h (tree-data-ref.h): Include.
2330         (vect_loop_location): Declare.
2331         Reorganize function declarations according to the new file structure.
2332         * tree-vect-loop.c: New file.
2333         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
2334         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
2335         * tree-vect-data-refs.c: New file.
2336         * tree-vect-patterns.c (timevar.h): Don't include.
2337         * tree-vect-stmts.c: New file.
2338         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
2339         tree-vect-slp.c, tree-vect-loop.c.
2340         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
2341         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
2342         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
2343         (tree-vect-analyze.o): Remove.
2344         (tree-vect-transform.o): Likewise.
2345         (tree-vect-data-refs.o): Add rule.
2346         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
2347         tree-vect-slp.o): Likewise.
2348         (tree-vect-patterns.o): Remove redundant dependencies.
2349         (tree-vectorizer.o): Likewise.
2350         * tree-vect-slp.c: New file.
2351
2352 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2353
2354         * optc-gen.awk: Warn if an option flag has multiple different
2355         help strings.
2356
2357 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
2358
2359         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
2360         -floop-block): Document dependences on PPL, CLooG and Graphite.
2361
2362 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2363
2364         PR rtl-optimization/323
2365         * c-common.c (c_fully_fold, convert_and_check,
2366         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
2367         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
2368         * c-common.def (EXCESS_PRECISION_EXPR): New.
2369         * c-cppbuiltin.c (builtin_define_float_constants): Define
2370         constants with enough digits for long double.
2371         * c-lex.c (interpret_float): Interpret constant with excess
2372         precision where appropriate.
2373         * c-opts.c (c_common_post_options): Set
2374         flag_excess_precision_cmdline.  Give an error for
2375         -fexcess-precision=standard for C++ for processors where the
2376         option is significant.
2377         * c-parser.c (c_parser_conditional_expression): Handle excess
2378         precision in condition.
2379         * c-typeck.c (convert_arguments): Handle arguments with excess
2380         precision.
2381         (build_unary_op): Move excess precision outside operation.
2382         (build_conditional_expr): Likewise.
2383         (build_compound_expr): Likewise.
2384         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
2385         (build_modify_expr): Handle excess precision in RHS.
2386         (convert_for_assignment): Handle excess precision in converted
2387         value.
2388         (digest_init, output_init_element, process_init_element): Handle
2389         excess precision in initializer.
2390         (c_finish_return): Handle excess precision in return value.
2391         (build_binary_op): Handle excess precision in operands and add
2392         excess precision as needed for operation.
2393         * common.opt (-fexcess-precision=): New option.
2394         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
2395         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2396         For standard excess precision, output explicit conversion to and
2397         truncation from XFmode.
2398         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
2399         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
2400         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
2401         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
2402         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
2403         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
2404         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
2405         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
2406         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
2407         define_splits, sqrt<mode>2): Disable where appropriate for
2408         standard excess precision.
2409         * convert.c (convert_to_real): Do not shorten arithmetic to type
2410         for which excess precision would be used.
2411         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
2412         * doc/invoke.texi (-fexcess-precision=): Document option.
2413         (-mfpmath=): Correct index entry.
2414         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
2415         flag_excess_precision): New.
2416         * langhooks.c (lhd_post_options): Set
2417         flag_excess_precision_cmdline.
2418         * opts.c (common_handle_option): Handle -fexcess-precision=.
2419         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
2420         init_excess_precision): New.
2421         (lang_dependent_init_target): Call init_excess_precision.
2422         * tree.c (excess_precision_type): New.
2423         * tree.h (excess_precision_type): Declare.
2424
2425 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2426
2427         PR c/35235
2428         * c-typeck.c (build_component_ref): Do not copy qualifiers from
2429         non-lvalue to component.
2430
2431 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2432
2433         PR preprocessor/34695
2434         * Makefile.in (c-opts.o): Depend on c-tree.h.
2435         * c-common.c: Move down include of diagnostic.h.
2436         (done_lexing, c_cpp_error): New.
2437         * c-common.h (done_lexing): Declare.
2438         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
2439         (parse_in).
2440         * c-opts.c: Include c-tree.h.
2441         (c_common_init_options): Set preprocessor error callback.
2442         (c_common_handle_option): Do not set preprocessor
2443         inhibit_warnings, warnings_are_errors, warn_system_headers,
2444         pedantic_errors or inhibit_warnings flags.
2445         (c_common_post_options): Do not check cpp_errors (parse_in).
2446         (c_common_finish): Do not output dependencies if there were
2447         errors.  Do not check return value of cpp_finish.
2448         * c-ppoutput.c (pp_file_change): Set input_location.
2449         * c-tree.h (c_cpp_error): Declare.
2450         * diagnostic.c (diagnostic_set_info_translated): Also initialize
2451         override_column.
2452         (diagnostic_build_prefix): Check override_column.
2453         * diagnostic.h (diagnostic_info): Add override_column field.
2454         (diagnostic_override_column): Define.
2455
2456 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
2457
2458         * c-common.c (c_expand_expr, c_staticp): Remove.
2459         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
2460         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
2461         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
2462         * c-gimplify.c (gimplify_compound_literal_expr,
2463         optimize_compound_literals_in_ctor): Remove.
2464         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
2465         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
2466         * c-semantics.c (emit_local_var): Remove.
2467
2468         * langhooks-def.h (lhd_expand_expr): Remove.
2469         * langhooks.c (lhd_expand_expr): Remove.
2470         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
2471
2472         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
2473         handling from c-semantics.c; don't call into langhook.
2474         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
2475         * gimplify.c (gimplify_compound_literal_expr,
2476         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
2477         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
2478         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
2479         as was done in c-gimplify.c.
2480         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
2481         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
2482         Move from c-common.h.
2483         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2484
2485         * tree.c (staticp): Do not call langhook.
2486         * langhooks.c (lhd_staticp): Delete.
2487         * langhooks-def.h (lhd_staticp): Delete prototype.
2488         (LANG_HOOKS_STATICP): Delete.
2489         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
2490
2491         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
2492         instead of DECL_STMTs.
2493
2494 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2495
2496         PR c/456
2497         PR c/5675
2498         PR c/19976
2499         PR c/29116
2500         PR c/31871
2501         PR c/35198
2502         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
2503         void_type_node.
2504         (fold_call_expr): Return a NOP_EXPR from folding rather than the
2505         contained expression.
2506         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
2507         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
2508         conditional expressions for C.
2509         (decl_constant_value_for_optimization): Move from
2510         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
2511         whether optimizing and that the expression is a VAR_DECL not of
2512         array type instead of doing such checks in the caller.  Do not
2513         check pedantic.  Call gcc_unreachable for C++.
2514         * c-common.def (C_MAYBE_CONST_EXPR): New.
2515         * c-common.h (c_fully_fold, c_save_expr,
2516         decl_constant_value_for_optimization): New prototypes.
2517         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2518         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2519         EXPR_INT_CONST_OPERANDS): Define.
2520         * c-convert.c (convert): Strip nops from expression.
2521         * c-decl.c (groktypename): Take extra parameters expr and
2522         expr_const_operands.  Update call to grokdeclarator.
2523         (start_decl): Update call to grokdeclarator.  Add statement for
2524         expressions used in type of decl.
2525         (grokparm): Update call to grokdeclarator.
2526         (push_parm_decl): Update call to grokdeclarator.
2527         (build_compound_literal): Add parameter non_const and build a
2528         C_MAYBE_COSNT_EXPR if applicable.
2529         (grokdeclarator): Take extra parameters expr and
2530         expr_const_operands.  Track expressions used in declaration
2531         specifiers and declarators.  Fold array sizes and track whether
2532         they are constant expressions and whether they are integer
2533         constant expressions.
2534         (parser_xref_tag): Set expr and expr_const_operands fields in
2535         return value.
2536         (grokfield): Update call to grokdeclarator.
2537         (start_function): Update call to grokdeclarator.
2538         (build_null_declspecs): Set expr and expr_const_operands fields in
2539         return value.
2540         (declspecs_add_type): Handle expressions in typeof specifiers.
2541         * c-parser.c (c_parser_declspecs): Set expr and
2542         expr_const_operands fields for declaration specifiers.
2543         (c_parser_enum_specifier): Likewise.
2544         (c_parser_struct_or_union_specifier): Likewise.
2545         (c_parser_typeof_specifier): Likewise.  Update call to
2546         groktypename.  Fold expression as needed.  Return expressions with
2547         type instead of adding statements.
2548         (c_parser_attributes): Update calls to c_parser_expr_list.
2549         (c_parser_statement_after_labels): Fold expression before passing
2550         to objc_build_throw_stmt.
2551         (c_parser_condition): Fold expression.
2552         (c_parser_asm_operands): Fold expression.
2553         (c_parser_conditional_expression): Use c_save_expr.  Update call
2554         to build_conditional_expr.
2555         (c_parser_alignof_expression): Update call to groktypename.
2556         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
2557         original_code.  Fold expression argument of va_arg.  Create
2558         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
2559         argument to va_arg.  Update calls to groktypename.  Fold array
2560         index for offsetof.  Verify that first argument to
2561         __builtin_choose_expr has integer type.
2562         (c_parser_postfix_expression_after_paren_type): Update calls to
2563         groktypename and build_compound_literal.  Handle expressions with
2564         side effects in type name.
2565         (c_parser_postfix_expression_after_primary): Update call to
2566         c_parser_expr_list.  Set original_code for calls to
2567         __builtin_constant_p.
2568         (c_parser_expr_list): Take extra parameter fold_p.  Fold
2569         expressions if requested.
2570         (c_parser_objc_type_name): Update call to groktypename.
2571         (c_parser_objc_synchronized_statement): Fold expression.
2572         (c_parser_objc_receiver): Fold expression.
2573         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
2574         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
2575         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
2576         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
2577         (struct c_typespec): Add elements expr and expr_const_operands.
2578         (struct c_declspecs): Add elements expr and expr_const_operands.
2579         (groktypename, build_conditional_expr, build_compound_literal):
2580         Update prototypes.
2581         (in_late_binary_op): Declare.
2582         * c-typeck.c (note_integer_operands): New function.
2583         (in_late_binary_op): New variable.
2584         (decl_constant_value_for_broken_optimization): Move to c-common.c
2585         and rename to decl_constant_value_for_optimization.
2586         (default_function_array_conversion): Do not strip nops.
2587         (default_conversion): Do not call
2588         decl_constant_value_for_broken_optimization.
2589         (build_array_ref): Do not fold result.
2590         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
2591         result when operand is a VLA.
2592         (c_expr_sizeof_type): Update call to groktypename.  Handle
2593         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
2594         result when operand names a VLA type.
2595         (build_function_call): Update call to build_compound_literal.
2596         Only fold result for calls to __builtin_* functions.  Strip
2597         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
2598         the function designator.
2599         (convert_arguments): Fold arguments.  Update call to
2600         convert_for_assignment.
2601         (build_unary_op): Handle increment and decrement of
2602         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
2603         decrement earlier.  Fold operand of increment and decrement.
2604         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
2605         built for integer operand.  Wrap returns that are INTEGER_CSTs
2606         without being integer constant expressions or that have integer
2607         constant operands without being INTEGER_CSTs.
2608         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2609         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
2610         result is an integer constant expression or can be used in
2611         unevaluated parts of one and avoid folding and wrap as
2612         appropriate.  Fold operands before possibly doing -Wsign-compare
2613         warnings.
2614         (build_compound_expr): Wrap result for C99 if operands can be used
2615         in integer constant expressions.
2616         (build_c_cast): Update call to digest_init.  Do not ignore
2617         overflow from casting floating-point constants to integers.  Wrap
2618         results that could be confused with integer constant expressions,
2619         null pointer constants or floating-point constants.
2620         (c_cast_expr): Update call to groktypename.  Handle expressions
2621         included in type name.
2622         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
2623         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
2624         Update calls to convert_for_assignment.
2625         (convert_for_assignment): Take new parameter
2626         null_pointer_constant.  Do not strip nops or call
2627         decl_constant_value_for_broken_optimization.  Set
2628         in_late_binary_op for conversions to boolean.
2629         (store_init_value): Update call to digest_init.
2630         (digest_init): Take new parameter null_pointer_constant.  Do not
2631         call decl_constant_value_for_broken_optimization.  pedwarn for
2632         initializers not constant expressions.  Update calls to
2633         convert_for_assignment.
2634         (constructor_nonconst): New.
2635         (struct constructor_stack): Add nonconst element.
2636         (really_start_incremental_init, push_init_level, pop_init_level):
2637         Handle constructor_nonconst and nonconst element.
2638         (set_init_index): Call constant_expression_warning for array
2639         designators.
2640         (output_init_element): Fold value.  Set constructor_nonconst as
2641         applicable.  pedwarn for initializers not constant expressions.
2642         Update call to digest_init.  Call constant_expression_warning
2643         where constant initializers are required.
2644         (process_init_element): Use c_save_expr.
2645         (c_finish_goto_ptr): Fold expression.
2646         (c_finish_return): Fold return value.  Update call to
2647         convert_for_assignment.
2648         (c_start_case): Fold switch expression.
2649         (c_process_expr_stmt): Fold expression.
2650         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
2651         ensure statement expression is not evaluated in constant expression.
2652         (build_binary_op): Track whether results are integer constant
2653         expressions or may occur in such, disable folding and wrap results
2654         as applicable.  Fold operands for -Wsign-compare warnings unless
2655         in_late_binary_op.
2656         (c_objc_common_truthvalue_conversion): Handle results folded to
2657         integer constants that are not integer constant expressions.
2658         * doc/extend.texi: Document when typeof operands are evaluated,
2659         that condition of __builtin_choose_expr is an integer constant
2660         expression, and more about use of __builtin_constant_p in
2661         initializers.
2662
2663 2009-03-29  Richard Guenther  <rguenther@suse.de>
2664
2665         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2666         propagate addresses of array references.
2667
2668 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2669
2670         * regmove.c (perhaps_ends_bb_p): Remove.
2671         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
2672         from INSN and check that the main loop stays within that basic block.
2673         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2674         (regmove_forward_pass): Split out from regmove_optimize.  Use
2675         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2676         (regmove_backward_pass): Split out from regmove_optimize.  Use
2677         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2678         (regmove_optimize): Simplify.
2679
2680 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2681
2682         PR target/39545
2683         * config/i386/i386.c (classify_argument): Ignore flexible array
2684         member in struct and warn ABI change.
2685
2686 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2687
2688         * config/i386/i386-protos.h (ix86_agi_dependent): New.
2689
2690         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2691         (ix86_adjust_cost): Updated.
2692
2693 2009-03-29  Jan Hubicka  <jh@suse.cz>
2694
2695         PR middle-end/28850
2696         * tree-pass.h (pass_cleanup_eh): New function.
2697         (remove_unreachable_regions): Break code handling RTL
2698         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2699         that can not be reached by runtime.
2700         (can_be_reached_by_runtime): New function.
2701         (label_to_region_map): New function.
2702         (num_eh_regions): New function.
2703         (rtl_remove_unreachable_regions): New function.
2704         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2705         (remove_eh_region): New function.
2706         * except.h: Include sbitmap and vecprim.
2707         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2708         num_eh_regions): Declare.
2709         * passes.c (init_optimization_passes): Schedule cleanup_eh.
2710         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
2711         * tree-eh.c (tree_remove_unreachable_handlers): New function.
2712         (tree_empty_eh_handler_p): New function.
2713         (cleanup_empty_eh): New function.
2714         (cleanup_eh): New function.
2715         (pass_cleanup_eh): New function.
2716
2717 2009-03-29  Jan Hubicka  <jh@suse.cz>
2718
2719         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2720         for removed regions.
2721
2722 2009-03-29  Jan Hubicka  <jh@suse.cz>
2723
2724         * except.c (dump_eh_tree): Dump all datastructures.
2725
2726 2009-03-29  Jan Hubicka  <jh@suse.cz>
2727
2728         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2729         (duplicate_eh_regions_1): Likewise.
2730         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2731         vector; call EH verification.
2732         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2733         Be ready for region being removed.
2734
2735 2009-03-29  Jan Hubicka  <jh@suse.cz>
2736
2737         * bitmap.c (bitmap_last_set_bit): New function.
2738         * bitmap.h (bitmap_last_set_bit): Declare.
2739
2740 2009-03-29  David Ayers  <ayers@fsfe.org>
2741
2742         PR objc/27377
2743         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2744         by calling objc_compare_types and surpress warnings about
2745         incompatible C pointers that are compatible ObjC pointers.
2746         
2747 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
2748
2749         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2750         call initialize_inline_failed.
2751         (initialize_inline_failed): Move it from here ...
2752         * cgraph.c (initialize_inline_failed): ... to here.
2753         (cgraph_create_edge): Call initialize_inline_failed rather than
2754         setting inline_failed directly.
2755
2756 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2757
2758         PR target/32542
2759         * sysv4.opt (msdata): Improve comment.
2760         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2761         * sysv4.h (SVR4_ASM_SPEC): Likewise.
2762
2763 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2764
2765         PR target/30451
2766         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2767         load and store attributes.
2768
2769 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2770
2771         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
2772         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
2773         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
2774         * doc/extend.texi (X86 Built-in Functions): Add index entries for
2775         __builtin_infq and __builtin_huge_valq.
2776
2777 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
2778
2779         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2780         atmega8m1 devices.
2781         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2782         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2783
2784 2009-03-28  Xinliang David Li  <davidxl@google.com>
2785
2786         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
2787         (do_dbg_cnt): New function.
2788
2789 2009-03-28  Jan Hubicka  <jh@suse.cz>
2790
2791         Merge from pretty-ipa:
2792
2793         2009-03-27  Jan Hubicka  <jh@suse.cz>
2794
2795         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2796         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2797         * passes.c (function_called_by_processed_nodes_p): New.
2798         * ipa-pure-const.c (check_call): Fix handling of operands.
2799         (analyze_function): Dump debug output for skipped bodies.
2800         (local_pure_const): Use function_called_by_processed_nodes_p.
2801         * dwarf2out.c (reference_to_unused): Use output.
2802         * passes.c (do_per_function_toporder): Likewise.
2803
2804         2008-11-12  Jan Hubicka  <jh@suse.cz>
2805
2806         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2807         * ipa-pure-const.c (funct_state_d): Add can throw field; make
2808         state_set_in_source enum
2809         (check_decl): Ignore memory tags; do not set fake looping flags;
2810         dump diagnostics.
2811         (check_operand, check_tree, check_rhs_var, check_lhs_var,
2812         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2813         (check_call, analyze_function): Rewrite.
2814         (check_stmt): New.
2815         (add_new_function): Update call of analyze_function.
2816         (generate_summary): Add call of analyze_function.
2817         (propagate): Propagate can_throw; handle state_set_in_source correctly.
2818         (local_pure_const): New function.
2819         (pass_local_pure_const): New pass.
2820         * ipa-inline.c (inline_transform): Set after_inlining.
2821         * tree-eh.c (stmt_can_throw_external): New.
2822         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2823         work with aliasing built.
2824         * tree-flow.h (stmt_can_throw_external): New.
2825         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2826         and local pure/const pass in early and late optimization queue.
2827
2828 2009-03-28  Martin Jambor  <mjambor@suse.cz>
2829
2830         * fold-const.c (get_pointer_modulus_and_residue): New parameter
2831         allow_func_align.
2832         (fold_binary): Allow function decl aligment consideration is the
2833         second argument is integer constant one.
2834         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
2835         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
2836         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
2837
2838 2009-03-28  Jan Hubicka  <jh@suse.cz>
2839
2840         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
2841         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
2842         * function.h (rtl_data): Add nothrow flag.
2843         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
2844         set DECL_NOTHROW for AVAILABLE functions.
2845
2846 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
2847
2848         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
2849         following vector keyword has expansion starting with pixel or bool
2850         keyword, expand vector to __vector and pixel or bool to __pixel or
2851         __bool.
2852
2853         PR c++/39554
2854         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
2855         warn_if_disallowed_function_p): Removed.
2856         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
2857         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
2858         warning_if_disallowed_function_p.
2859         * flags.h (warn_if_disallowed_function_p,
2860         warn_disallowed_functions): Removed.
2861         * common.opt (Wdisallowed-function-list=): Removed.
2862         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
2863
2864 2009-03-28  Richard Guenther  <rguenther@suse.de>
2865
2866         PR tree-optimization/38723
2867         * tree-ssa-pre.c (compute_avail): Add all default definitions to
2868         the entry block.
2869
2870 2009-03-28  Jan Hubicka  <jh@suse.cz>
2871
2872         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
2873         test introduced by my previous patch.
2874
2875 2009-03-28  Richard Guenther  <rguenther@suse.de>
2876
2877         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
2878         the PHIs value undefined.
2879
2880 2009-03-28  Jan Hubicka  <jh@suse.cz>
2881
2882         * tree-pass.h (pass_fixup_cfg): New pass.
2883         * ipa-inline.c (inline_transform): Set
2884         always_inline_functions_inlined/after_inlining.
2885         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
2886         (pass_fixup_cfg): New pass.
2887         * passes.c (init_optimization_passes): Add fixup_cfg.
2888
2889 2009-03-28  Richard Guenther  <rguenther@suse.de>
2890
2891         PR tree-optimization/38458
2892         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
2893         argument use the arguments copy-of value.
2894
2895 2009-03-28  Richard Guenther  <rguenther@suse.de>
2896
2897         PR tree-optimization/38180
2898         * tree-ssa-ccp.c (get_default_value): Simplify.
2899         (likely_value): Likewise.
2900         (surely_varying_stmt_p): Properly handle VOP case.
2901         (ccp_initialize): Likewise.
2902         (ccp_fold): Handle propagating through *&.
2903         (fold_const_aggregate_ref): Also handle decls.
2904
2905 2009-03-28  Jan Hubicka  <jh@suse.cz>
2906
2907         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2908         * cgraph.h (cgraph_node): Likewise.
2909         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
2910         (cgraph_reset_node): Use process flag.
2911         (cgraph_mark_functions_to_output): Likewise.
2912         (cgraph_expand_function): Likewise.
2913         (cgraph_expand_all_functions): Likewise.
2914         (cgraph_output_in_order): Likewise.
2915         * dwarf2out.c (reference_to_unused): Likewise.
2916         * passes.c do_per_function_toporder): Likewise.
2917
2918 2009-03-28  Jan Hubicka  <jh@suse.cz>
2919
2920         Bring from lto-branch:
2921
2922         2008-09-03  Doug Kwan  <dougkwan@google.com>
2923
2924         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
2925         enums instead of reason strings.
2926         * cgraph.c (cgraph_create_edge): Same.
2927         (cgraph_inline_failed_string): New function.
2928         * cgraph.h (cgraph_inline_failed_t): New enum type.
2929         (cgraph_inline_failed_string): New prototype.
2930         (struct cgraph_edge): Change type of INLINED_FAILED from constant
2931         char pointer to cgraph_inline_failed_t.
2932         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
2933         (cgraph_default_inline_p): Ditto.
2934         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
2935         to cgraph_inline_failed_t pointer.
2936         * cif-code.def: New file.
2937         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
2938         reason string.
2939         (cgraph_check_inline_limits): Change type of REASON to pointer to
2940         cgraph_inline_failed_t.  Replace reason strings with enums.
2941         (cgraph_default_inline_p): Ditto.
2942         (cgraph_recursive_inlining_p): Ditto.
2943         (update_caller_keys): Change type of FAILED_REASON to
2944         cgraph_inline_failed_t.
2945         (cgraph_set_inline_failed): Change type of REASON to pointer to
2946         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
2947         convert enums to strings for text output.
2948         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
2949         to be of type cgraph_inline_failed_t.  Replace reason strings with
2950         enums.  Call cgraph_inline_failed_string to covert enums
2951         to strings for text output.
2952         (cgraph_decide_inlining): Replace reason strings with enums.
2953         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
2954         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
2955         for text output.
2956         * tree-inline.c (expand_call_inline): Change type of REASON
2957         to cgraph_inline_failed_t.  Replace reason strings with enums.
2958         Call cgraph_inline_failed_string for text output.
2959         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
2960         (cgraph.o): Ditto.
2961
2962 2009-03-28  Jan Hubicka  <jh@suse.cz>
2963
2964         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
2965         cgraph_clone_node): Remove master clone handling.
2966         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2967         * cgraph.h (master_clone): Remove.
2968         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2969         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
2970         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
2971
2972 2009-03-28  Jan Hubicka  <jh@suse.cz>
2973
2974         * cgraph.c (cgraph_function_body_availability): Functions declared
2975         inline are always safe to assume that it is not going to be replaced.
2976
2977 2009-03-28  Richard Guenther  <rguenther@suse.de>
2978
2979         PR tree-optimization/38513
2980         * tree-ssa-pre.c (eliminate): Remove redundant stores.
2981         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2982         EXC_PTR_EXPR and FILTER_EXPR.
2983         (get_ref_from_reference_ops): Likewise.
2984
2985 2009-03-28  Richard Guenther  <rguenther@suse.de>
2986
2987         PR tree-optimization/38968
2988         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
2989         Use FLOOR_MOD_EXPR to compute misalignment.
2990
2991 2009-03-28  Richard Guenther  <rguenther@suse.de>
2992
2993         PR tree-optimization/37795
2994         * tree.h (combine_comparisons): Declare.
2995         * fold-const.c (combine_comparisons): Export.
2996         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
2997         comparisons.
2998         (ifcombine_iforif): Use combine_comparisons.
2999
3000 2009-03-28  Jan Hubicka  <jh@suse.cz>
3001
3002         * tree-eh.c (inlinable_call_p): New function.
3003         (make_eh_edges): Use it.
3004         (verify_eh_edges): Use it.
3005         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
3006         * except.c (reachable_next_level): Add inlinable_function argument
3007         (sjlj_find_directly_reachable_regions): Update.
3008         (add_reachable_handler): Do not set saw_any_handlers.
3009         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
3010         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3011         Add new inlinable call parameter.
3012         (can_throw_internal, can_throw_external): Update.
3013         * except.h (can_throw_internal_1, can_throw_external_1,
3014         foreach_reachable_handler): Update declaration.
3015
3016 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
3017
3018         * config/arm/t-arm-coff, config/h8300/coff.h,
3019         config/i386/i386-aout.h, config/i386/i386-coff.h,
3020         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
3021         config/pdp11/2bsd.h, config/rs6000/aix41.h,
3022         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
3023         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
3024         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
3025         sys-types.h: Remove.
3026         * Makefile.in: Remove protoize and fixproto support and references
3027         in comments.
3028         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
3029         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
3030         Remove.
3031         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
3032         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
3033         unprotoize$(exeext).
3034         (rest.encap): Don't depend on $(STMP_FIXPROTO)
3035         (.PHONY): Don't depend on proto.
3036         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
3037         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
3038         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
3039         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
3040         build/gen-protos.o, build/scan.o, xsys-protos.h,
3041         build/fix-header$(build_exeext), build/fix-header.o,
3042         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
3043         stmp-install-fixproto): Remove.
3044         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
3045         SYSCALLS.c or fixproto files.
3046         (install-common): Don't install protoize.
3047         (install-headers-tar, install-headers-cpio, install-headers-cp):
3048         Don't depend on $(STMP_FIXPROTO).
3049         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
3050         install fixproto files or write out fixproto settings.
3051         (uninstall): Don't uninstall protoize.
3052         * config.gcc (use_fixproto): Remove.
3053         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
3054         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
3055         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
3056         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
3057         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
3058         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
3059         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
3060         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
3061         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
3062         * config/t-vxworks (STMP_FIXPROTO): Remove.
3063         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
3064         STMP_FIXPROTO): Remove.
3065         * config.in, configure: Regenerate.
3066         * crtstuff.c (gid_t, uid_t): Don't undefine.
3067         * doc/install.texi: Change m68k-coff to m68k-elf in example.
3068         (arm-*-coff, arm-*-aout: Remove target entries.
3069         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
3070         Remove mention of AIX 4.1.
3071         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
3072         * doc/invoke.texi (Running Protoize): Remove.
3073         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
3074         (Protoize Caveats): Remove.
3075         * tsystem.h: Update comments on headers assumed to exist.
3076
3077 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3078
3079         * genautomata.c: Add a new year to the copyright.  Add a new
3080         reference.
3081         (struct insn_reserv_decl): Add comments for member bypass_list.
3082         (find_bypass): Remove.
3083         (insert_bypass): New.
3084         (process_decls): Use insert_bypass.
3085         (output_internal_insn_latency_func): Output all bypasses with the
3086         same input insn in one switch case.
3087
3088         * rtl.def (define_bypass): Describe bypass choice.
3089         * doc/md.texi (define_bypass): Ditto.
3090
3091 2009-03-27  Richard Guenther  <rguenther@suse.de>
3092
3093         * gimplify.c (mark_addressable): Export.
3094         * tree-flow.h (mark_addressable): Declare.
3095         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
3096         * tree-ssa.c (verify_phi_args): Verify that address taken
3097         variables have TREE_ADDRESSABLE set.
3098
3099 2009-03-27  Richard Guenther  <rguenther@suse.de>
3100
3101         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
3102         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
3103         Do not mark decls TREE_ADDRESSABLE.
3104         (build_fold_addr_expr): Adjust.
3105         (fold_addr_expr): Remove.
3106         (fold_unary): Use build_fold_addr_expr.
3107         (fold_comparison): Likewise.
3108         (split_address_to_core_and_offset): Likewise.
3109         * coverage.c (tree_coverage_counter_addr): Mark the array decl
3110         TREE_ADDRESSABLE.
3111         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
3112         (gimplify_modify_expr_to_memcpy): Mark source and destination
3113         addressable.
3114         * omp-low.c (create_omp_child_function): Mark the object decl
3115         TREE_ADDRESSABLE.
3116         (lower_rec_input_clauses): Mark the var we take the address of
3117         TREE_ADDRESSABLE.
3118         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
3119
3120 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3121
3122         PR middle-end/39315
3123         * cfgexpand.c (expand_one_stack_var_at): Change alignment
3124         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
3125
3126 2009-03-27  Richard Guenther  <rguenther@suse.de>
3127
3128         PR tree-optimization/39120
3129         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
3130         constraints.
3131         (handle_lhs_call): Process return constraints.  Add escape
3132         constraints if necessary.
3133         (handle_const_call): Fill out return constraints.  Make nested
3134         case more precise.  Avoid consttmp if possible.
3135         (handle_pure_call): Fill out return constraints.  Avoid
3136         callused if possible.
3137         (find_func_aliases): Simplify call handling.
3138
3139 2009-03-27  Richard Guenther  <rguenther@suse.de>
3140
3141         PR tree-optimization/39120
3142         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
3143         as a representative.
3144         (solve_graph): Do propagate CALLUSED.
3145         (handle_pure_call): Use a scalar constraint from CALLUSED for
3146         the return value.
3147         (find_what_p_points_to): CALLUSED shall not appear in poins-to
3148         solutions.
3149
3150 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3151
3152         PR c/39323
3153         * c-common.c (handle_aligned_attribute): Properly check alignment
3154         overflow.  Use (1U << i) instead of (1 << i).
3155
3156         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
3157
3158         * expr.h (get_mem_align_offset): Updated.
3159
3160         * tree.h (tree_decl_common): Change align to "unsigned int" and
3161         move it before pointer_alias_set.
3162
3163 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3164             Jakub Jelinek  <jakub@redhat.com>
3165
3166         PR target/38034
3167         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
3168         gr_register_operand with gr_reg_or_0_operand.
3169         (cmpxchg_rel_di): Likewise.
3170         (sync_lock_test_and_set<mode>): Likewise.
3171
3172 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3173
3174         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
3175         (true_regnum): Likewise.
3176
3177         * rtlanal.c (subreg_info): Moved to ...
3178         * rtl.h (subreg_info): Here.  New.
3179         (subreg_get_info): New.
3180
3181         * rtlanal.c (subreg_get_info): Make it extern.
3182
3183 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3184
3185         PR target/39472
3186         * config/i386/i386.c (ix86_abi): New.
3187         (override_options): Handle -mabi=.
3188         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
3189         (ix86_call_abi_override): Likewise.
3190         (init_cumulative_args): Likewise.
3191         (function_arg_advance): Likewise.
3192         (function_arg_64): Likewise.
3193         (function_arg): Likewise.
3194         (ix86_pass_by_reference): Likewise.
3195         (ix86_function_value_regno_p): Likewise.
3196         (ix86_build_builtin_va_list_abi): Likewise.
3197         (setup_incoming_varargs_64): Likewise.
3198         (is_va_list_char_pointer): Likewise.
3199         (ix86_init_machine_status): Likewise.
3200         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
3201         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
3202         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
3203         (ix86_function_abi): Make it static and return enum calling_abi.
3204         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
3205         with ix86_abi.
3206         (ix86_fn_abi_va_list): Updated.
3207
3208         * config/i386/i386.h (ix86_abi): New.
3209         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
3210         (CONDITIONAL_REGISTER_USAGE): Likewise.
3211         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
3212         (machine_function): Likewise.
3213
3214         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
3215         with ix86_abi.
3216         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
3217         (STACK_BOUNDARY): Likewise.
3218         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
3219
3220         * config/i386/i386.opt (mabi=): New.
3221
3222         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
3223         return enum calling_abi.
3224         (ix86_function_type_abi): Likewise.
3225         (ix86_function_abi): Removed.
3226
3227         * doc/invoke.texi: Document -mabi= option for x86.
3228
3229 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3230
3231         * builtins.c (real_dconstp): Delete.
3232         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
3233
3234 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
3235             Jakub Jelinek  <jakub@redhat.com>
3236
3237         PR debug/37959
3238         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
3239         (gen_subprogram_die): When a function is explicit, generate the
3240         DW_AT_explicit attribute.
3241         * langhooks.h (struct lang_hooks_for_decls): Add
3242         function_decl_explicit_p langhook.
3243         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
3244         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
3245
3246 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
3247
3248         * builtins.c (fold_builtin_memory_op): Optimize memmove
3249         into memcpy if we can prove source and destination don't overlap.
3250
3251         * tree-inline.c: Include gt-tree-inline.h.
3252         (clone_fn_id_num): New variable.
3253         (clone_function_name): New function.
3254         (tree_function_versioning): Use it.
3255         * Makefile.in (GTFILES): Add tree-inline.c.
3256
3257 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
3258
3259         * BASE-VER: Change to 4.5.0.
3260
3261 2009-03-27  Xinliang David Li  <davidxl@google.com>
3262
3263         PR tree-optimization/39557
3264         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
3265
3266 2009-03-27  Xinliang David Li  <davidxl@google.com>
3267
3268         PR tree-optimization/39548
3269         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
3270         candidate check.
3271
3272 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3273
3274         * c-common.c (pointer_int_sum): Use %wd on return from
3275         tree_low_cst.
3276
3277 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3278
3279         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
3280         on return from tree_low_cst.
3281
3282 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3283
3284         PR c++/36799
3285         * ginclude/stdarg.h (va_copy): Define also for
3286         __GXX_EXPERIMENTAL_CXX0X__.
3287
3288 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3289
3290         PR c++/35652
3291         * builtins.h (c_strlen): Do not warn here.
3292         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3293         * c-common.c (pointer_int_sum): Take an explicit location.
3294         Warn about offsets out of bounds.
3295         * c-common.h (pointer_int_sum): Adjust declaration.
3296
3297 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3298
3299         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
3300         markup glitch.
3301
3302 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
3303
3304         PR c++/39554
3305         * opts.c (warn_if_disallowed_function_p): Don't assume
3306         get_callee_fndecl must return non-NULL.
3307
3308 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3309
3310         PR rtl-optimization/39522
3311         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
3312         when reg_reloaded_valid is set.
3313
3314 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3315
3316         * config/spu/divv2df3.c: New file.
3317         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
3318         (DPBIT_FUNCS): Filter out _div_df.
3319
3320 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3321
3322         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
3323         a jump insn, count that jump in the distance to the loop start.
3324
3325 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3326
3327         PR target/39523
3328         * config/sh/sh.c (calc_live_regs): Fix condition for global
3329         registers except PIC_OFFSET_TABLE_REGNUM.
3330
3331 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
3332
3333         PR/39518
3334         * doc/invoke.texi (-mconsole): New.
3335         (-mcygwin): New.
3336         (-mno-cygwin): New.
3337         (-mdll): New.
3338         (-mnop-fun-dllimport): New.
3339         (-mthread): New.
3340         (-mwin32): New.
3341         (-mwindows): New.
3342         (sub section "i386 and x86-64 Windows Options"): New.
3343
3344 2009-03-25  Ralf Cors├ępius <ralf.corsepius@rtems.org>
3345
3346         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
3347         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
3348
3349 2009-03-25  Richard Guenther  <rguenther@suse.de>
3350
3351         PR middle-end/39497
3352         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
3353         of -Wno-error.
3354
3355 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
3356
3357         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
3358         neither of haifa/selective schedulers are working.
3359
3360 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3361
3362         * doc/invoke.texi (Debugging Options): Fix description of
3363         -fno-merge-debug-strings.
3364
3365 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
3366
3367         * config/cris/libgcc.ver: New version-script.
3368         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
3369
3370         * configure.ac <GAS features, nop mnemonic>: Add pattern