OSDN Git Service

c61b4cde606dbf4fa56278e2323de9dc9b2e3f93
[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
3371         crisv32-*-* for "nop".
3372         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
3373         * configure: Regenerate.
3374
3375 2009-03-24  Ira Rosen  <irar@il.ibm.com>
3376
3377         PR tree-optimization/39529
3378         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3379         mark_sym_for_renaming for the tag copied to the new vector
3380         pointer.
3381
3382 2009-03-24  Arthur Loiret  <aloiret@debian.org>
3383
3384         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
3385         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
3386         EXTRA_SPEC_FUNCTIONS.
3387         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
3388         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
3389         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
3390         -march and -mtune options.
3391
3392 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
3393
3394         * config/m68k/t-rtems: Add m5329 multilib.
3395
3396 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
3397             Jakub Jelinek  <jakub@redhat.com>
3398
3399         PR debug/39524
3400         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
3401         nodes.
3402
3403 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3404
3405         PR c/39495
3406         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
3407         instead of c_parser_expression_conv, if original_code isn't one of the
3408         4 allowed comparison codes, fail.
3409
3410 2009-03-23  Richard Guenther  <rguenther@suse.de>
3411
3412         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
3413         * tree.h (struct tree_type): Likewise.
3414         * reload.h (struct insn_chain): Likewise.
3415         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
3416         * function.h (struct function): Likewise.
3417         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
3418
3419 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3420
3421         PR tree-optimization/39516
3422         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
3423
3424 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
3425
3426         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
3427         should be set true if BITS_PER_WORD of target is bigger than 32
3428
3429 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
3430
3431         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
3432         Translate -B-options to -rpath-link.  Correct existing
3433         rpath-link and conditionalize on !nostdlib.
3434
3435 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3436
3437         * doc/extend.texi (Function Attributes, Variable Attributes):
3438         Fix typos.
3439         * doc/invoke.texi (Debugging Options, Optimize Options)
3440         (i386 and x86-64 Options, MCore Options): Likewise.
3441
3442 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
3443
3444         PR debug/37890
3445         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
3446         it for block local namespace aliases.
3447         (gen_decl_die): Pass context_die to gen_namespace_die.
3448
3449 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3450
3451         PR c/39495
3452         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
3453         minimum or maximum value.
3454
3455 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
3456
3457         * reginfo.c (globalize_reg): Recompute derived reg sets.
3458
3459 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
3460
3461         PR target/39063
3462         * libgcc2.c (mprotect): Do not use signed arguments for
3463         VirtualProtect, use DWORD arguments.  Also fix the 'may
3464         be used uninitialized' warning for the np variable.
3465
3466 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3467
3468         PR target/39496
3469         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
3470         functions using regparm calling conventions when not optimizing.
3471         (ix86_function_sseregparm): Similarly for sseregparm calling
3472         conventions.
3473
3474 2009-03-19  Li Feng  <nemokingdom@gmail.com>
3475
3476         PR middle-end/39500
3477         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
3478         dependence if the first conflict is after niter iterations.
3479
3480 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
3481
3482         PR middle-end/38609
3483         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
3484         functions with dynamic stack-pointer adjustments.
3485
3486 2009-03-19  Ben Elliston  <bje@au.ibm.com>
3487
3488         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
3489         option; change to -msdata=data.
3490
3491 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3492
3493         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
3494         and -fopenmp.
3495
3496 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3497
3498         PR target/35180
3499         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
3500
3501 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
3502
3503         * doc/invoke.texi (Code Gen Options): Expand discussion of
3504         -fno-common.
3505
3506 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
3507
3508         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
3509         * matrix-reorg.c (struct matrix_info): Likewise.
3510         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
3511         * rtl.h (struct mem_attrs): Likewise.
3512         * df.h (struct df): Likewise.
3513         * tree-data-ref.h (struct data_dependence_relation): Likewise.
3514         * ira-int.h (struct ira_allocno): Likewise.
3515         * df-scan.c (struct df_collection_rec): Likewise.
3516         * ira.c (struct equivalence): Likewise.
3517         * function.c (struct temp_slot): Likewise.
3518         * cfgloop.h (struct loop): Likewise.
3519
3520         PR debug/39485
3521         * function.c (use_register_for_decl): When not optimizing, disregard
3522         register keyword for variables with types containing methods.
3523
3524 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
3525
3526         PR middle-end/39447
3527         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
3528         (is_simple_operand): Call contains_component_ref_p before calling data
3529         reference analysis that would fail on COMPONENT_REFs.
3530
3531         * tree-vrp.c (search_for_addr_array): Fix formatting.
3532
3533 2009-03-18  Richard Guenther  <rguenther@suse.de>
3534
3535         * tree-vect-transform.c (vect_loop_versioning): Fold the
3536         generated comparisons.
3537         * tree-vectorizer.c (set_prologue_iterations): Likewise.
3538         (slpeel_tree_peel_loop_to_edge): Likewise.
3539
3540 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3541
3542         PR middle-end/37805
3543         * opts.c (print_specific_help): In addition to `undocumented',
3544         accept `separate' and `joined' flags if passed alone.  Describe
3545         output by the first matched one of those.
3546         (common_handle_option): Skip over empty strings.
3547         * gcc.c (display_help): Fix help string for `--help='.
3548         * doc/invoke.texi (Option Summary, Overall Options): With
3549         `--help=', classes and qualifiers can both be repeated, but
3550         only the latter can be negated.  One should not pass only
3551         negated qualifiers.  Fix markup and examples.
3552
3553         Revert
3554         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3555         PR middle-end/37805
3556         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3557         and -fhelp=separate.
3558
3559 2009-03-17  Jing Yu  <jingyu@google.com>
3560
3561         PR middle-end/39378
3562         * function.h (struct rtl_data): Move is_thunk from here...
3563         (struct function): ...to here.
3564         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3565         * varasm.c (assemble_start_function): Change is_thunk from crtl to
3566         cfun.
3567         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
3568         cfun.
3569         (alpha_does_function_need_gp, alpha_start_function): Likewise.
3570         (alpha_output_function_end_prologue): Likewise.
3571         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
3572         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
3573         (rs6000_output_function_epilogue): Likewise.
3574         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3575
3576 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
3577
3578         PR target/39482
3579         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
3580         from different units in a single alternative.
3581         (*truncdfsf_i387): Ditto.
3582         (*truncxfsf2_mixed): Ditto.
3583         (*truncxfdf2_mixed): Ditto.
3584
3585 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
3586
3587         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
3588         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
3589
3590         PR debug/39474
3591         * tree-ssa-live.c (remove_unused_locals): Don't remove local
3592         unused non-artificial variables when not optimizing.
3593
3594         PR debug/39471
3595         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
3596         DW_TAG_imported_module even if decl is IMPORTED_DECL with
3597         NAMESPACE_DECL in its DECL_INITIAL.
3598
3599         PR middle-end/39443
3600         * optabs.c (set_user_assembler_libfunc): New function.
3601         * expr.h (set_user_assembler_libfunc): New prototype.
3602         * c-common.c: Include libfuncs.h.
3603         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3604         for memcmp, memset, memcpy, memmove and abort.
3605         * Makefile.in (c-common.o): Depend on libfuncs.h.
3606
3607         PR debug/39412
3608         * dwarf2out.c (gen_inlined_enumeration_type_die,
3609         gen_inlined_structure_type_die, gen_inlined_union_type_die,
3610         gen_tagged_type_instantiation_die): Removed.
3611         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3612         do nothing.
3613
3614 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
3615
3616         PR testsuite/38526
3617         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3618         its use.
3619         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3620         (check-parallel-%): Ditto.
3621         (check-consistency): Ditto.
3622
3623 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
3624
3625         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3626         local variable rhs by NULL_TREE.
3627
3628 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3629
3630         PR target/39477
3631         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
3632
3633 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3634
3635         PR target/39476
3636         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
3637
3638 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3639
3640         PR target/39473
3641         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3642         for ms->sysv ABI calls only in 64bit mode.
3643
3644         * config/i386/i386.md (untyped_call): Support 32bit.
3645
3646 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3647
3648         * doc/extend.texi: Replace x86_65 with x86_64.
3649
3650 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
3651
3652         PR tree-optimization/39455
3653         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3654         mismatches for POINTER_TYPE_P (type).
3655         (number_of_iterations_le): Likewise.
3656
3657 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
3658
3659         * config/picochip/picochip.c: Removed profiling support.
3660         * config/picochip/picochip.md: Removed profiling instruction.
3661         * config/picochip/picochip.h: Removed profiling builtin.
3662
3663 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
3664
3665         * doc/install.texi (--with-host-libstdcxx): Document.
3666
3667 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
3668
3669         PR target/34299
3670         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3671         generate a warning if the function name does not begin with
3672         "__vector" and the function has either the 'signal' or 'interrupt'
3673         attribute, from here to ...
3674         (avr_declare_function_name): ...here. New function.
3675         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3676         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3677
3678 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
3679
3680         PR bootstrap/39454
3681         * cse.c (fold_rtx): Don't modify original const_arg1 when
3682         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3683         separate variable instead.
3684         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3685         from out of range shift counts.
3686         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3687
3688 2008-03-13  Catherine Moore  <clm@codesourcery.com>
3689
3690         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
3691         diagnostic.h with $(DIAGNOSTIC_H).
3692
3693 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3694
3695         PR target/39431
3696         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3697         predicate.
3698         * config/i386/sync.md (sync_compare_and_swap<mode>,
3699         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3700         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3701         into a register.
3702         (sync_double_compare_and_swapdi_pic,
3703         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3704         cmpxchg8b_pic_memory_operand instead of just memory_operand.
3705
3706 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3707
3708         PR target/39445
3709         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
3710
3711 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3712
3713         PR target/39327
3714         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3715         (avx_addsubv4df3): Likewise.
3716         (*avx_addsubv4sf3): Likewise.
3717         (sse3_addsubv4sf3): Likewise.
3718
3719 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3720
3721         PR target/38824
3722         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
3723
3724 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3725
3726         PR debug/39432
3727         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3728         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3729         registers for allocnos created from user-defined variables.
3730
3731 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3732
3733         PR target/39181
3734         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
3735         of non-integer mode as well.
3736
3737 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
3738
3739         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
3740         for functions for which the parameter types are unknown.
3741
3742 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
3743
3744         PR target/39137
3745         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
3746         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
3747         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
3748         * config/i386/i386.c (ix86_local_alignment): For
3749         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
3750         long long variables on the stack to avoid dynamic realignment.
3751         Allow the first argument to be a decl rather than type.
3752         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
3753
3754 2009-03-11  Nick Clifton  <nickc@redhat.com>
3755
3756         PR target/5362
3757         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
3758         options.
3759         Add description to mno-lsim option.
3760         * config/mcore/mcore.h: Remove comment about deprecated m4align
3761         option.
3762         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
3763         * doc/invoke.texi: Add description of mno-lsim and
3764         mstack-increment options.
3765
3766         * config/fr30/fr30.opt: Document the -mno-lsim option.
3767         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
3768         and -mno-lsim options.
3769
3770 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3771
3772         * fold-const.c (fold_comparison): Only call fold_inf_compare
3773         if the mode supports infinities.
3774
3775 2009-03-11  Jason Merrill  <jason@redhat.com>
3776
3777         PR debug/39086
3778         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3779         end already did.  Notice GIMPLE_CALL modifications of the result.
3780         Don't copy debug information from an ignored decl or a decl from
3781         another function.
3782
3783 2009-03-10  Richard Guenther  <rguenther@suse.de>
3784             Nathan Froyd  <froydnj@codesourcery.com>
3785
3786         PR middle-end/37850
3787         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
3788         (__divMODE3): Likewise.
3789
3790 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
3791
3792         PR tree-optimization/39394
3793         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3794         DECL_SIZE_UNIT of variable length FIELD_DECLs.
3795
3796 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3797
3798         * recog.c (verfiy_changes): Disallow renaming of hard regs in
3799         inline asms for register asm ("") declarations.
3800
3801 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3802
3803         * fold-const.c (fold_unary): Fix comment.
3804
3805 2009-03-07  Jan Hubicka  <jh@suse.cz>
3806
3807         PR target/39361
3808         * tree-inline.c (setup_one_parameter): Do replacement of const
3809         argument by constant in SSA form.
3810
3811 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3812
3813         PR middle-end/38028
3814         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3815         determine alignment passed to assign_stack_local.
3816         (assign_parms_unsplit_complex): Likewise.
3817         * except.c (sjlj_build_landing_pads): Likewise.
3818
3819 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3820
3821         PR middle-end/39360
3822         * tree-flow.h (add_referenced_var): Return bool instead of void.
3823         * tree-dfa.c (add_referenced_var): Return result of
3824         referenced_var_check_and_insert call.
3825         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3826         of referenced_var_check_and_insert.
3827
3828         PR debug/39372
3829         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
3830         (gen_variable_die): Emit DW_AT_location on abstract static variable's
3831         DIE, don't emit it if abstract origin already has it.
3832         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
3833         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
3834
3835 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3836
3837         * genpreds.c (needs_variable): Fix parentheses at variable name
3838         detection.
3839         (write_tm_constrs_h): Indent generated code.
3840
3841 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3842
3843         * doc/extend.texi (Function Attributes): Add documentation
3844         for isr attributes.
3845
3846 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3847
3848         PR debug/39387
3849         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
3850         take locus from its DECL_SOURCE_LOCATION instead of input_location.
3851
3852 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3853
3854         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
3855         the loop as bad.
3856
3857 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
3858
3859         PR debug/39379
3860         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
3861         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
3862
3863 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
3864
3865         * config/i386/i386.md (R8_REG, R9_REG): New constants.
3866         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
3867         constants instead of magic numbers.
3868         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3869         (QI_REG_P): Ditto.
3870         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
3871         (x86_64_ms_abi_int_parameter_registers): Ditto.
3872         (x86_64_int_return_registers): Ditto.
3873         (ix86_maybe_switch_abi): Ditto.
3874         (ix86_expand_call): Ditto for clobbered_registers array.
3875         (ix86_hard_regno_mode_ok): Ditto.
3876         (x86_extended_QIreg_mentioned_p): Ditto.
3877
3878 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
3879
3880         PR tree-optimization/39349
3881         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
3882
3883         * combine.c (gen_lowpart_for_combine): Use omode when generating
3884         clobber.
3885
3886 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
3887
3888         PR rtl-optimization/39235
3889         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
3890
3891 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3892
3893         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
3894
3895 2009-03-04  Richard Guenther  <rguenther@suse.de>
3896
3897         PR tree-optimization/39362
3898         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
3899         that occur in abnormal PHIs should be varying.
3900
3901 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3902
3903         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
3904         Extend comments.
3905         (simple_iv):  Take loop as an argument instead of statement.
3906         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3907         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
3908         to simple_iv.
3909         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
3910         Ditto.
3911         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
3912         * matrix-reorg.c (analyze_transpose): Ditto.
3913         * tree-data-ref.c (dr_analyze_innermost): Ditto.
3914         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3915         * tree-predcom.c (ref_at_iteration): Ditto.
3916         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
3917
3918 2009-03-04  Richard Guenther  <rguenther@suse.de>
3919
3920         PR tree-optimization/39358
3921         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
3922         escaped_id and callused_id.
3923         (solve_graph): Likewise.
3924
3925 2009-03-04  Richard Guenther  <rguenther@suse.de>
3926
3927         PR tree-optimization/39339
3928         * tree-sra.c (try_instantiate_multiple_fields): Make it
3929         no longer ICE on the above.
3930
3931 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
3932
3933         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
3934         that fits within Pmode.
3935
3936 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3937
3938         PR middle-end/10109
3939         * tm.texi (LIBCALL_VALUE): Update description.
3940
3941 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3942
3943         PR middle-end/34443
3944         * doc/extend.texi (section): Update description.
3945
3946 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
3947
3948         PR middle-end/39345
3949         * tree-inline.c (remapped_type): New.
3950         (can_be_nonlocal): Call remapped_type instead of remap_type.
3951
3952 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3953
3954         PR fortran/39354
3955         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
3956         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
3957
3958 2009-03-03  Richard Guenther  <rguenther@suse.de>
3959
3960         PR middle-end/39272
3961         * tree.c (tree_nonartificial_location): New function.
3962         * tree.h (tree_nonartificial_location): Declare.
3963         * builtins.c (expand_builtin_memory_chk): Provide location
3964         of the call location for artificial function pieces.
3965         (maybe_emit_chk_warning): Likewise.
3966         (maybe_emit_sprintf_chk_warning): Likewise.
3967         (maybe_emit_free_warning): Likewise.
3968         * expr.c (expand_expr_real_1): Likewise.
3969
3970 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3971
3972         PR tree-optimization/39343
3973         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
3974         COMPONENT_REF t has ARRAY_TYPE.
3975
3976 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3977
3978         PR middle-end/39335
3979         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
3980         when the type precision of the induction variable should be
3981         larger than the type precision of nit.
3982         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
3983         * graphite.c (graphite_loop_normal_form): Same.
3984         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
3985
3986 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
3987
3988         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
3989         (*call_1_rex64_ms_sysv): Use named constants instead of magic
3990         numbers to describe clobbered registers.
3991         (*call_value_0_rex64_ms_sysv): Ditto.
3992         * config/i386/mmx.md (mmx_emms): Ditto.
3993         (mmx_femms): Ditto.
3994
3995 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
3996
3997         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
3998         of ABI_64.
3999
4000 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4001
4002         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
4003         (spu_section_type_flags): New function.
4004
4005 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4006
4007         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
4008         reg_class_contents of FLOAT_REGS into a temporary.
4009
4010 2009-03-02  Richard Guenther  <rguenther@suse.de>
4011             Ira Rosen  <irar@il.ibm.com>
4012
4013         PR tree-optimization/39318
4014         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
4015         information to the vectorized statement.
4016
4017 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
4018
4019         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
4020         variable.  Use defined names instead of magic constants for REX SSE
4021         registers.
4022
4023 2009-03-01  Richard Guenther  <rguenther@suse.de>
4024
4025         PR tree-optimization/39331
4026         * omp-low.c (lower_send_shared_vars): Do not receive new
4027         values for the reference of DECL_BY_REFERENCE parms or results.
4028
4029 2009-03-01  Jan Hubicka  <jh@suse.cz>
4030
4031         PR debug/39267
4032         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
4033         BLOCK_NONLOCALIZED_VAR): New macros.
4034         (tree_block): Add nonlocalized_vars.
4035         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
4036         gen_decl_die): Add origin argument.  Allow generation of die with
4037         origin at hand only.
4038         (gen_member_die, gen_type_die_with_usage, force_decl_die,
4039         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
4040         of gen_*.
4041         (gen_block_die): Fix checking for unused blocks.
4042         (process_scope_var): Break out from .... ; work with origins only.
4043         (decls_for_scope) ... here; process nonlocalized list.
4044         (dwarf2out_ignore_block): Look for nonlocalized vars.
4045         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
4046         vars.
4047         (dump_scope_block): Dump them.
4048         * tree-inline.c (remap_decls): Handle nonlocalized vars.
4049         (remap_block): Likewise.
4050         (can_be_nonlocal): New predicate.
4051         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
4052
4053 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4054
4055         * configure: Regenerate.
4056
4057 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4058
4059         * optc-gen.awk: No need to duplicate option flags twice.
4060         Reuse help texts for duplicate options which do not have any.
4061
4062         * gcc.c (display_help): Document --version.
4063
4064         * gcc.c (main): If print_help_list and verbose_flag, ensure
4065         driver output comes before subprocess output.
4066
4067         * optc-gen.awk: Assign all remaining fields to help string,
4068         space-separated, for multi-line help in *.opt.
4069
4070         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
4071         -Wno-pedantic-ms-format is for MinGW targets only.
4072
4073         * doc/options.texi (Option file format): Fix bad indentation,
4074         restoring dropped sentence.
4075
4076 2009-02-28  Jan Hubicka  <jh@suse.cz>
4077
4078         * tree-inline.c (tree_function_versioning): Output debug info.
4079
4080 2009-02-28  Jan Hubicka  <jh@suse.cz>
4081
4082         PR debug/39267
4083         * tree-inline.c (setup_one_parameter): Do not copy propagate
4084         arguments when not optimizing.
4085
4086 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4087
4088         PR target/39327
4089         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4090         (avx_addsubv4df3): Likewise.
4091         (*avx_addsubv4sf3): Likewise.
4092         (sse3_addsubv4sf3): Likewise.
4093         (*avx_addsubv2df3): Likewise.
4094         (sse3_addsubv2df3): Likewise.
4095         (avx_unpckhps256): Correct item selectors.
4096         (avx_unpcklps256): Likewise.
4097         (avx_unpckhpd256): Likewise.
4098         (avx_unpcklpd256): Likewise.
4099
4100 2009-02-28  Jan Hubicka  <jh@suse.cz>
4101
4102         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
4103         static vars.
4104         (copy_arguments_for_versioning): If var is declared don't declare it.
4105         (tree_function_versioning): First setup substitutions and then copy
4106         args.
4107
4108 2009-02-27  Jan Hubicka  <jh@suse.cz>
4109
4110         PR debug/39267
4111         * cgraph.h (varpool_output_debug_info): Remove.
4112         * cgraphunit.c (varpool_output_debug_info): Remove.
4113         * dwarf2out.c (deferred_locations_struct): New struct
4114         (deferred_locations): New type.
4115         (deferred_locations_list): New static var.
4116         (deffer_location): New function.
4117         (gen_variable_die): Use it.
4118         (decls_for_scope): Output info on local static vars.
4119         (dwarf2out_finish): Process deferred locations.
4120         * varpool.c (varpool_output_debug_info): Remove.
4121
4122 2009-02-27  Jan Hubicka  <jh@suse.cz>
4123
4124         PR debug/39267
4125         * tree.h (TREE_PROTECTED): Fix comment.
4126         (BLOCK_HANDLER_BLOCK): Remove.
4127         (struct tree_block): Remove handler_block add body_block.
4128         (inlined_function_outer_scope_p): New.
4129         (is_body_block): Remove.
4130         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
4131         * dwarf2out.c (is_inlined_entry_point): Remove.
4132         (add_high_low_attributes): Use inlined_function_outer_scope_p.
4133         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
4134         code.
4135         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
4136         * gimplify.c (gimplify_expr): Gimplify body blocks.
4137         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
4138         block with multiple subblocks.
4139         (dump_scope_block): Prettier output; dump more flags and info.
4140         (dump_scope_blocks): New.
4141         (remove_unused_locals): Use dump_scope_blocks.
4142         * tree-flow.h (dump_scope_blocks): Declare.
4143         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
4144         * stmt.c (is_body_block): Remove.
4145         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
4146         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
4147
4148 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
4149
4150         PR middle-end/39308
4151         * graphite.c (graphite_loop_normal_form): Do not call 
4152         number_of_iterations_exit from a gcc_assert.
4153
4154 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4155
4156         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
4157         jumps if COND is NULL.
4158         (find_cond_jump): New function.
4159         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
4160         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
4161
4162 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
4163
4164         * config/alpha/alpha.h (alpha_expand_mov): Return false if
4165         force_const_mem returns NULL_RTX.
4166
4167 2009-02-26  Jan Hubicka  <jh@suse.cz>
4168
4169         PR debug/39267
4170         * cgraph.h (varpool_output_debug_info): Remove.
4171         * cgraphunit.c (varpool_output_debug_info): Remove.
4172         * dwarf2out.c (deferred_locations_struct): New struct
4173         (deferred_locations): New type.
4174         (deferred_locations_list): New static var.
4175         (deffer_location): New function.
4176         (gen_variable_die): Use it.
4177         (decls_for_scope): Output info on local static vars.
4178         (dwarf2out_finish): Process deferred locations.
4179         * varpool.c (varpool_output_debug_info): Remove.
4180
4181 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
4182
4183         PR rtl-optimization/39241
4184         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
4185         to subreg_offset_representable_p.
4186
4187 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4188
4189         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
4190         execute function prototype.  Get f and nregs from max_reg_num
4191         and get_insns.  Remove the first backward pass as it's dead,
4192         guard the forward pass by flag_expensive_optimizations.
4193         (rest_of_handle_regmove): Delete.
4194         (pass_regmove): Replace it with regmove_optimize.
4195
4196 2009-02-25  Martin Jambor  <mjambor@suse.cz>
4197
4198         PR tree-optimization/39259
4199         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
4200         calls_alloca function flags.
4201         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
4202         calls are detected.
4203
4204 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4205
4206         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
4207         flags_set_1_rtx, flags_set_1_set): Delete.
4208         (regmove_optimize): Do not call mark_flags_life_zones.
4209
4210 2009-02-24  Julian Brown  <julian@codesourcery.com>
4211
4212         PR target/35965
4213         * config/arm/arm.c (require_pic_register): Only set
4214         cfun->machine->pic_reg once per function.
4215
4216 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
4217
4218         * doc/invoke.texi (Link Options): Document an easier way to pass
4219         options that take arguments to the GNU linker using -Xlinker and -Wl.
4220
4221 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
4222
4223         PR target/33785
4224         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
4225
4226 2009-02-24  Richard Guenther  <rguenther@suse.de>
4227
4228         PR debug/39285
4229         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
4230
4231 2009-02-24  Richard Guenther  <rguenther@suse.de>
4232             Zdenek Dvorak  <ook@ucw.cz>
4233
4234         PR tree-optimization/39233
4235         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
4236         from converting them to a generic type.
4237
4238 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
4239
4240         PR tree-optimization/39260
4241         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
4242         contains a condition with a real type.
4243         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
4244
4245 2009-02-23  Jason Merrill  <jason@redhat.com>
4246
4247         PR c++/38880
4248         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
4249         narrowing_initializer_constant_valid_p.
4250         (narrowing_initializer_constant_valid_p): Don't return 
4251         null_pointer_node for adding a pointer to itself.
4252
4253 2009-02-23  Jan Hubicka  <jh@suse.cz>
4254
4255         PR c/12245
4256         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
4257         resizing.
4258
4259 2009-02-23  Jan Hubicka  <jh@suse.cz>
4260
4261         PR tree-optimization/37709
4262         * tree.c (block_ultimate_origin): Move here from dwarf2out.
4263         * tree.h (block_ultimate_origin): Declare.
4264         * dwarf2out.c (block_ultimate_origin): Move to tree.c
4265         * tree-ssa-live.c (remove_unused_scope_block_p):
4266         Eliminate blocks containig no instructions nor live variables nor
4267         nested blocks.
4268         (dump_scope_block): New function.
4269         (remove_unused_locals): Enable removal of dead blocks by default;
4270         enable dumping at TDF_DETAILS.
4271
4272 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4273
4274         * config/i386/i386.c (classify_argument): Don't allow COImode
4275         and OImode.
4276         (function_arg_advance_32): Don't allow OImode.
4277         (function_arg_32): Likewise.
4278         (function_value_32): Likewise.
4279         (return_in_memory_32): Likewise.
4280         (function_arg_64): Remove OImode comment.
4281
4282 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4283
4284         PR target/39261
4285         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4286         ix86_expand_vector_set for V4DImode in 64bit mode only.
4287         (ix86_expand_vector_init_one_var): Likewise.
4288
4289 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
4290
4291         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
4292
4293 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4294
4295         PR bootstrap/39257
4296         * loop-iv.c: Revert last change.
4297         * emit-rtl.c: Likewise.
4298
4299 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4300
4301         PR target/39256
4302         * config/i386/i386.c (type_natural_mode): Remove an extra
4303         space in the warning message.
4304         (function_value_32): Handle 32-byte vector modes.
4305         (return_in_memory_32): Likewise.
4306
4307 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4308
4309         * loop-iv.c (truncate_value): New function.
4310         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
4311         of lowpart_subreg.
4312         (lowpart_subreg): Move to...
4313         * emit-rtl.c: ...here.
4314
4315 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
4316
4317         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
4318         accidental and undocumented change at revision 140860.
4319
4320 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
4321
4322         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
4323         take gimple_seq * arguments.
4324         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
4325         types_compatible_p langhook.
4326
4327 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
4328             Joseph Myers  <joseph@codesourcery.com>
4329
4330         * config/arm/arm.c (arm_builtin_va_list): New function.
4331         (arm_expand_builtin_va_start): Likewise.
4332         (arm_gimplify_va_arg_expr): Likewise.
4333         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
4334         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
4335         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
4336         (va_list_type): New variable.
4337         (arm_mangle_type): Mangle va_list_type appropriately.
4338
4339 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4340
4341         PR middle-end/39157
4342         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
4343         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
4344         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
4345         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
4346         parameter to 1000 for -O1 by default.
4347         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
4348         parameter.
4349         * loop-invariant.c: Include params.h.
4350         (move_loop_invariants): Don't call move_single_loop_invariants on
4351         very large loops.
4352
4353 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
4354
4355         * calls.c (emit_library_call_value_1): Use slot_offset instead of
4356         offset when calculating bounds for indexing stack_usage_map.  Fixes
4357         a buffer overflow with certain target setups.
4358
4359 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4360
4361         PR target/39240
4362         * calls.c (expand_call): Clear try_tail_call if caller and callee
4363         disagree in promotion of function return value.
4364
4365 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
4366
4367         PR target/39175
4368         * c-common.c (c_determine_visibility): If visibility changed and
4369         DECL_RTL has been already set, call make_decl_rtl to update symbol
4370         flags.
4371
4372 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4373
4374         PR c++/39188
4375         * varasm.c (assemble_variable): Don't check DECL_NAME when
4376         globalizing a variable.
4377
4378 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
4379
4380         PR c/38483
4381         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
4382         expression before any __builtin_trap call.
4383         * c-typeck.c (build_function_call): Convert and check function
4384         arguments before generating a call to a trap.  Evaluate the
4385         function arguments before the trap.
4386
4387 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
4388
4389         PR target/39228
4390         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
4391         (UNSPEC_FXAM_MEM): New unspec.
4392         (fxam<mode>2_i387_with_temp): New insn and split pattern.
4393         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
4394         memory using fxam<mode>2_i387_with_temp to remove excess precision.
4395
4396 2009-02-19  Richard Guenther  <rguenther@suse.de>
4397
4398         PR tree-optimization/39207
4399         PR tree-optimization/39074
4400         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
4401         storedanything_tree): New.
4402         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
4403         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
4404         (build_succ_graph): Add edges from STOREDANYTHING to all
4405         non-direct nodes.
4406         (init_base_vars): Initialize STOREDANYTHING.
4407         (compute_points_to_sets): Free substitution info after
4408         building the succ graph.
4409         (ipa_pta_execute): Likewise.
4410
4411         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
4412         field.
4413         (do_ds_constraint): Do not add to special var or non-pointer
4414         field solutions.
4415         (type_could_have_pointers): Split out from ...
4416         (could_have_pointers): ... here.  For arrays use the element type.
4417         (create_variable_info_for): Initialize may_have_pointers.
4418         (new_var_info): Likewise.
4419         (handle_lhs_call): Make the HEAP variable unknown-sized.
4420         (intra_create_variable_infos): Use a type with pointers for
4421         PARM_NOALIAS, make it unknown-sized.
4422
4423 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
4424
4425         PR target/39224
4426         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
4427
4428 2009-02-18  Jason Merrill  <jason@redhat.com>
4429
4430         PR target/39179
4431         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
4432         value if DECL_EXTERNAL.
4433         * tree-sra.c (sra_walk_gimple_assign): Likewise.
4434         * target.h (gcc_target::binds_local_p): Clarify "module".
4435         * tree.h (TREE_PUBLIC): Clarify "module".
4436
4437 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
4438
4439         PR target/38891
4440         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
4441         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
4442
4443 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
4444
4445         PR target/39082
4446         * c.opt (Wabi): Support C and ObjC.
4447         (Wpsabi): New.
4448
4449         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
4450
4451         * config/i386/i386.c (classify_argument): Warn once about the ABI
4452         change when passing union with long double.
4453
4454         * doc/invoke.texi: Update -Wabi for warning psABI changes.
4455
4456 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
4457
4458         PR c/35447
4459         * c-parser.c (c_parser_compound_statement): Always enter and leave
4460         a scope.
4461
4462 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4463
4464         PR target/34587
4465         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
4466
4467 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
4468
4469         PR tree-optimization/36922
4470         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
4471         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
4472         Likewise.
4473
4474 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4475
4476         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
4477         to 0 for EABI64.
4478
4479 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4480
4481         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
4482
4483 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4484
4485         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
4486         tree sharing.
4487
4488 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
4489             Richard Sandiford  <rdsandiford@googlemail.com>
4490
4491         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
4492         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
4493         (loongson_biadd): ...this.
4494
4495 2009-02-17  Richard Guenther  <rguenther@suse.de>
4496
4497         PR tree-optimization/39202
4498         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
4499         a var make sure to follow existing collapses.
4500
4501 2009-02-17  Richard Guenther  <rguenther@suse.de>
4502
4503         PR middle-end/39214
4504         * langhooks.c (lhd_print_error_function): Check for NULL block.
4505
4506 2009-02-17  Richard Guenther  <rguenther@suse.de>
4507
4508         PR tree-optimization/39204
4509         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
4510         of the PHI arg.
4511
4512 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
4513
4514         * config/soft-fp/double.h: Update from glibc CVS.
4515
4516 2009-02-17  Richard Guenther  <rguenther@suse.de>
4517
4518         PR tree-optimization/39207
4519         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
4520         strict-aliasing warnings for pointers pointing to NULL.
4521
4522 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
4523
4524         PR c/35446
4525         * c-parser.c (c_parser_braced_init): Call pop_init_level when
4526         skipping until next close brace.
4527
4528 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
4529
4530         PR target/37049
4531         * config/i386/i386.c (ix86_expand_push): Set memory alignment
4532         to function argument boundary.
4533
4534 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
4535
4536         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
4537         in the lea_add. Reload eventually constraints it properly.
4538         * config/picochip/constraints.md : Remove the target constraint
4539         "b", since it is not needed anymore.
4540
4541 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
4542
4543         * gthr-dce.h: Uglify function parameter and local variable names.
4544         * gthr-gnat.h: Likewise.
4545         * gthr-mipssde.h: Likewise.
4546         * gthr-nks.h: Likewise.
4547         * gthr-posix95.h: Likewise.
4548         * gthr-posix.h: Likewise.
4549         * gthr-rtems.h: Likewise.
4550         * gthr-single.h: Likewise.
4551         * gthr-solaris.h: Likewise.
4552         * gthr-tpf.h: Likewise.
4553         * gthr-vxworks.h: Likewise.
4554         * gthr-win32.h: Likewise.
4555
4556 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4557
4558         PR target/39196
4559         * config/i386/i386.md: Restrict the new peephole2 to move
4560         between MMX/SSE registers.
4561
4562 2009-02-15  Richard Guenther  <rguenther@suse.de>
4563
4564         Revert
4565         2009-02-13  Richard Guenther  <rguenther@suse.de>
4566
4567         * configure.ac: Enable LFS.
4568         * configure: Re-generate.
4569         * config.in: Likewise.
4570
4571 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4572
4573         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
4574         spu_srqwbyte, spu_srqwbytebc): Define.
4575         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
4576         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
4577         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
4578         "shrqby_<mode>"): New insn-and-split patterns.
4579         * config/spu/spu.c (expand_builtin_args): Determine and return
4580         number of operands using spu_builtin_description data.
4581         (spu_expand_builtin_1): Use it.
4582
4583 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
4584
4585         PR target/38056
4586         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
4587         TARGET_CONST_GP.
4588
4589 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4590
4591         PR target/39149
4592         * config/i386/i386.c (override_options): Correct warning
4593         messages for -malign-loops, -malign-jumps and -malign-functions.
4594
4595 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4596
4597         PR target/39152
4598         * config/i386/i386.md: Restrict the new peephole2 to move
4599         between the general purpose registers.
4600
4601 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4602
4603         PR target/39162
4604         * config/i386/i386.c (type_natural_mode): Add a new argument.
4605         Return the original mode and warn ABI change if vector size is 32byte.
4606         (function_arg_advance): Updated.
4607         (function_arg): Likewise.
4608         (ix86_function_value): Likewise.
4609         (ix86_return_in_memory): Likewise.
4610         (ix86_sol10_return_in_memory): Likewise.
4611         (ix86_gimplify_va_arg): Likewise.
4612         (function_arg_32): Don't warn ABX ABI change here.
4613         (function_arg_64): Likewise.
4614
4615 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4616
4617         * loop-iv.c (implies_p): In the final case, test that operands 0
4618         of the two comparisons match.
4619
4620         * config/bfin/bfin.c (find_prev_insn_start): New function.
4621         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
4622         (find_next_insn_start): Move.
4623
4624 2009-02-13  Richard Guenther  <rguenther@suse.de>
4625
4626         * configure.ac: Enable LFS.
4627         * configure: Re-generate.
4628         * config.in: Likewise.
4629
4630 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
4631
4632         PR c/35444
4633         * c-parser.c (c_parser_parms_list_declarator): Discard pending
4634         sizes on syntax error after some arguments have been parsed.
4635
4636 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4637
4638         * doc/invoke.texi (-fira): Remove.
4639
4640 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4641
4642         * caller-save.c: Replace regclass.c with reginfo.c in comments.
4643         * recog.c: Likewise.
4644         * rtl.h: Likewise.
4645
4646 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
4647
4648         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
4649         (umul_ppmm): Likewise.
4650         (count_leading_zeros): Likewise.
4651         (count_trailing_zeros): Likewise.
4652         (UMUL_TIME): Likewise.
4653
4654 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4655
4656         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
4657         soft-fp/t-softfp to tmake_file.
4658
4659         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
4660         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
4661         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
4662         IA64_BUILTIN_INFQ]: New.
4663         (ia64_init_builtins): Initialize __builtin_infq,
4664         __builtin_fabsq and __builtin_copysignq if not HPUX.
4665         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
4666         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
4667
4668         * config/ia64/lib1funcs.asm (__divtf3): Define only if
4669         SHARED is defined.
4670         (__fixtfti): Likewise.
4671         (__fixunstfti): Likewise.
4672         (__floattitf): Likewise.
4673
4674         * config/ia64/libgcc-glibc.ver: New.
4675         * config/ia64/t-fprules-softfp: Likewise.
4676         * config/ia64/sfp-machine.h: Likewise.
4677
4678         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
4679         (LIBGCC2_TF_CEXT): Likewise.
4680         (TF_SIZE): Likewise.
4681         (TARGET_INIT_LIBFUNCS): Likewise.
4682
4683         * config/ia64/t-glibc (SHLINB_MAPFILES):
4684         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
4685
4686 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4687
4688         * config/i386/i386.c (construct_container): Rewrite processing
4689         BLKmode with X86_64_SSE_CLASS.
4690
4691 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
4692
4693         PR target/39152
4694         * config/i386/i386.md: Replace simplify_replace_rtx with
4695         replace_rtx in the new peephole2.
4696
4697 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4698
4699         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
4700         loop unrolling do not happen at -O2.
4701
4702 2009-02-12  Michael Matz  <matz@suse.de>
4703
4704         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
4705
4706 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4707
4708         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
4709         for -g3.
4710
4711 2009-02-12  Ben Elliston  <bje@au.ibm.com>
4712
4713         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
4714         patterns when updating the back chain.  Missed in the 2009-02-10
4715         change.
4716
4717 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
4718
4719         * doc/extend.texi (Decimal Floating Types): Update identifier of
4720         draft TR and list of missing support.
4721
4722 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
4723
4724         PR middle-end/39154
4725         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
4726         bit to variable length decl's flags, add it also to its
4727         pointer replacement variable.
4728
4729 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
4730             Jakub Jelinek  <jakub@redhat.com>
4731
4732         PR target/39118
4733         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
4734         (memory_blockage): New expander.
4735         (*memory_blockage): New insn pattern.
4736         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
4737         instead of general blockage at the end of function prologue when
4738         frame pointer is used to access red zone area.  Do not emit blockage
4739         when profiling, it is emitted in generic code.
4740         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
4741         function epilogue when frame pointer is used to access red zone area.
4742
4743 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
4744
4745         PR target/38824
4746         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
4747         by arithmetic with memory operands.
4748         * config/i386/predicates.md (commutative_operator): New.
4749
4750 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
4751
4752         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
4753         bulleted lists.
4754
4755 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
4756
4757         * alias.h (record_alias_subset): Declare.
4758         * alias.c (record_alias_subset): Make global.
4759
4760 2009-02-10  Nick Clifton  <nickc@redhat.com>
4761
4762         * tree-parloops.c: Change license to GPLv3.
4763         * ipa-struct-reorg.c: Change license to GPLv3.
4764         * ipa-struct-reorg.h: Change license to GPLv3.
4765
4766 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
4767
4768         PR c/39084
4769         * c-decl.c (start_struct): Return NULL on error.
4770
4771 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
4772
4773         PR middle-end/39124
4774         * cfgloopmanip.c (remove_path): Call remove_bbs after
4775         cancel_loop_tree, not before it.
4776
4777         PR target/39139
4778         * function.h (struct function): Add has_local_explicit_reg_vars bit.
4779         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
4780         VAR_DECLs were seen.
4781         * tree-ssa-live.c (remove_unused_locals): Recompute
4782         cfun->has_local_explicit_reg_vars.
4783         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
4784         copies or clearings if cfun->has_local_explicit_reg_vars.
4785
4786 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
4787
4788         PR target/39118
4789         * config/i386/i386.c (expand_prologue): Emit blockage at the end
4790         of function prologue when frame pointer is used to access
4791         red zone area.
4792
4793 2009-02-10  Richard Guenther  <rguenther@suse.de>
4794
4795         PR middle-end/39127
4796         * gimplify.c (gimple_regimplify_operands): Always look if
4797         we need to create a temporary.
4798
4799 2009-02-10  Richard Guenther  <rguenther@suse.de>
4800
4801         PR tree-optimization/39132
4802         * tree-loop-distribution.c (todo): New global var.
4803         (generate_memset_zero): Trigger TODO_rebuild_alias.
4804         (tree_loop_distribution): Return todo.
4805
4806 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
4807
4808         PR target/39119
4809         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
4810         (x86_64_reg_class_name): Removed.
4811         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
4812         first one isn't X86_64_SSE_CLASS or any other ones aren't
4813         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
4814         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
4815         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
4816         and 3 X86_64_SSEUP_CLASS.
4817         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
4818         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
4819
4820 2009-02-10  Ben Elliston  <bje@au.ibm.com>
4821
4822         * config/rs6000/rs6000.md (allocate_stack): Always use an update
4823         form instruction to update the stack back chain word, even if the
4824         user has disabled the generation of update instructions.
4825         (movdi_<mode>_update_stack): New.
4826         (movsi_update_stack): Likewise.
4827         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
4828         always use an update form instruction to update the stack back
4829         chain word.
4830
4831 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
4832
4833         PR middle-end/38953
4834         * graphite.c (if_region_set_false_region): After moving a region in
4835         the false branch of a condition, remove the empty dummy basic block.
4836         (gloog): Remove wrong fix for PR38953.
4837
4838 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4839
4840         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
4841         generation due to implicit sign extension.
4842
4843 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
4844
4845         PR middle-end/38981
4846         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
4847         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
4848
4849 2009-02-09  Richard Guenther  <rguenther@suse.de>
4850
4851         PR middle-end/35202
4852         * convert.c (convert_to_real): Disable (float)fn((double)x)
4853         to fnf(x) conversion if errno differences may occur and
4854         -fmath-errno is set.
4855
4856 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
4857
4858         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
4859         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4860         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4861
4862 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
4863
4864         PR c/35434
4865         * c-common.c (handle_alias_attribute): Disallow attribute for
4866         anything not a FUNCTION_DECL or VAR_DECL.
4867
4868 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
4869
4870         PR c/39035
4871         * real.c (do_compare): Special-case compare of zero against
4872         decimal float value.
4873
4874 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
4875
4876         PR c/36432
4877         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
4878         as indicating flexible array members unless the field itself is
4879         being declarared as the incomplete array.
4880
4881 2009-02-06  Jan Hubicka  <jh@suse.cz>
4882
4883         PR tree-optimization/38844
4884         * ipa-inline.c (try_inline): Stop inlining recursion when edge
4885         is already inlined.
4886
4887 2009-02-06  Richard Guenther  <rguenther@suse.de>
4888
4889         PR middle-end/38977
4890         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
4891         fork because we may expand it as __gcov_fork.
4892
4893 2009-02-06  Nick Clifton  <nickc@redhat.com>
4894
4895         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
4896
4897 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
4898
4899         PR tree-optimization/35659
4900         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
4901         vn_phi_eq): Shortcut if hashcode does not match.
4902         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
4903         NULL operands.
4904         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
4905         and avoid iterative_hash_expr.
4906         (FOR_EACH_VALUE_ID_IN_SET): New.
4907         (value_id_compare): Remove.
4908         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
4909         sort expressions by value id.
4910
4911 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4912
4913         PR target/38991
4914         * config/sh/predicates.md (general_movsrc_operand): Don't check
4915         the subreg of system registers here.
4916
4917 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
4918
4919         PR c++/39106
4920         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
4921         on the copied decl.
4922
4923 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
4924
4925         PR rtl-optimization/39110
4926         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
4927         addresses, not aligned ones.
4928
4929 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
4930             Richard Guenther  <rguenther@suse.de>
4931
4932         PR tree-optimization/39100
4933         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
4934         comment says and add edges.
4935
4936 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
4937
4938         PR c/35435
4939         * c-common.c (handle_tls_model_attribute): Ignore attribute for
4940         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
4941
4942 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
4943
4944         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
4945         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
4946         register_bb_in_sese, new_sese, free_sese): Moved.
4947         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
4948         outermost_loop_in_scop, build_scop_iteration_domain,
4949         expand_scalar_variables_ssa_name, get_vdef_before_scop,
4950         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
4951         Use loop_in_sese_p instead of loop_in_scop_p.
4952         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
4953         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
4954         (scopdet_basic_block_info): Fix bug in scop detection.
4955         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
4956         eq_loop_to_cloog_loop): Remove.
4957         (nb_loops_around_loop_in_scop, nb_loop
4958         ref_nb_loops): Moved here...
4959         * graphite.h (ref_nb_loops): ... from here.
4960         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
4961         (loop_domain_dim, loop_iteration_vector_dim): Remove.
4962         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
4963         * testsuite/gcc.dg/graphite/scop-19.c: New
4964
4965 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
4966             Hans-Peter Nilsson  <hp@axis.com>
4967
4968         PR rtl-optimization/37889
4969         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
4970         Move offset handling from PLUS to before the switch.  Use new
4971         arguments when considering SYMBOL_REFs too.
4972         (rtx_addr_can_trap_p): Pass dummy offset and size.
4973         (enum may_trap_p_flags): Remove.
4974         (may_trap_p_1): Pass size from MEM_SIZE.
4975
4976         PR rtl-optimization/38921
4977         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
4978         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
4979         * rtlanal.c (may_trap_after_code_motion_p): Delete.
4980         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
4981
4982 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
4983
4984         AVX Programming Reference (January, 2009)
4985         * config/i386/sse.md (*vpclmulqdq): New.
4986
4987 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
4988
4989         PR tree-optimization/38977
4990         PR gcov-profile/38292
4991         * calls.c (special_function_p): Disregard __builtin_ prefix.
4992
4993 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
4994
4995         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
4996         non-indexable addresses even before reload.
4997
4998 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
4999
5000         PR c/29129
5001         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
5002         as having variable size.  Do not give an error for unnamed
5003         parameters with [*] declarators.  Give a warning for type names
5004         with [*] declarators and mark them as variable size.
5005         * c-parser.c (c_parser_sizeof_expression): Do not give an error
5006         for sizeof applied to [*] type names.
5007
5008 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5009
5010         PR C++/36607
5011         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
5012
5013 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5014
5015         * gcc.c (process_command): Update copyright notice dates.
5016         * gcov.c (print_version): Likewise.
5017         * gcov-dump.c (print_version): Likewise.
5018         * mips-tfile.c (main): Likewise.
5019         * mips-tdump.c (main): Likewise.
5020
5021 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5022
5023         PR c/35433
5024         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
5025         for composite type involving a zero-length array type.
5026
5027 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5028
5029         PR target/35318
5030         * function.c (match_asm_constraints_1): Skip over
5031         initial optional % in the constraint.
5032
5033         PR inline-asm/39059
5034         * c-parser.c (c_parser_postfix_expression): If fixed point is not
5035         supported, don't accept FIXED_CSTs.
5036         * c-decl.c (finish_declspecs): Error if fixed point is not supported
5037         and _Sat is used without _Fract/_Accum.  Set specs->type to
5038         integer_type_node for cts_fract/cts_accum if fixed point is not
5039         supported.
5040
5041 2009-02-02  Catherine Moore  <clm@codesourcery.com>
5042
5043         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
5044
5045 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5046
5047         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
5048         (ABI_HAS_64BIT_SYMBOLS): Use it.
5049         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
5050
5051 2009-02-02  Paul Brook  <paul@codesourcery.com>
5052
5053         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
5054
5055 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
5056
5057         PR inline-asm/39058
5058         * recog.h (asm_operand_ok): Add constraints argument.
5059         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
5060         recurse on matching constraint.
5061         (check_asm_operands): Pass constraints as 3rd argument to
5062         asm_operand_ok.  Don't look up matching constraint here.
5063         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
5064         to asm_operand_ok.
5065
5066 2009-02-02  Ben Elliston  <bje@au.ibm.com>
5067
5068         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
5069         TARGET_NARROW_VOLATILE_BITFIELD macro names.
5070
5071 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5072
5073         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
5074         information.  Remove some obsolete information.  Reorganize.
5075
5076         * config/pa/fptr.c: Revert license to GPL 2.
5077         * config/pa/milli64.S: Likewise.
5078
5079 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5080
5081         PR target/38904
5082         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
5083         LIBRARY name in, instead of hard-coding it.
5084         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
5085         extra target make frag to tmake_files according to EH model.
5086         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
5087         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
5088         frags that define makefile variable EH_MODEL appropriately.
5089         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
5090         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
5091         to "-sjlj" according to type of EH configured.
5092         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5093         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
5094         to "_sjlj" according to type of EH configured.
5095         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5096         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
5097         (SHLIB_LINK):  Add missing semicolon to if-else construct.
5098         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5099         string value of "pe_dll" command-line option.
5100         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
5101         (SHLIB_SONAME):  Use it when overriding t-cygming default.
5102         (SHLIB_IMPLIB):  Override t-cygming default.
5103         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5104         string value of "pe_dll" command-line option.
5105
5106 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5107
5108         PR target/38952
5109         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
5110         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
5111
5112 2009-01-31  Richard Guenther  <rguenther@suse.de>
5113
5114         PR tree-optimization/38937
5115         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
5116         computing the transitive closure.
5117
5118 2009-01-30  Richard Guenther  <rguenther@suse.de>
5119
5120         PR tree-optimization/39041
5121         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
5122         Propagate variable indices only if the types match for this stmt.
5123
5124 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
5125
5126         PR target/39013
5127         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
5128         inline but never defined.
5129
5130 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
5131
5132         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
5133         (*insv_h_di_reg_extimm): New insn.
5134         (*insv_l<mode>_reg_extimm): New insn.
5135
5136 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5137
5138         * config/picochip/picochip.c (flag_conserve_stack): set
5139         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
5140         fconserve-stack. Reduce call-overhead used by inliner.
5141
5142 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5143
5144         PR/38157
5145         * common.opt (flag_conserve_stack): Initialised to zero.
5146
5147 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
5148
5149         PR/39002
5150         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
5151         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
5152         method.
5153
5154 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
5155
5156         * ira-color.c (allocno_reload_assign): Update comments.
5157         * regmove.c (regmove_optimize): Likewise.
5158
5159         * ra.h: Removed.
5160
5161 2009-01-29  Robert Millan  <rmh@aybabtu.com>
5162
5163         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
5164         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
5165         `MD_UNWIND_SUPPORT'.
5166         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
5167
5168 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
5169
5170         PR tree-optimization/39007
5171         * tree-loop-distribution.c (generate_builtin): Use
5172         recompute_dominator to compute the immediate dominator of the
5173         basic block just after the loop.
5174
5175 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5176
5177         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
5178         (ASM_OUTPUT_DWARF_PCREL): Define.
5179
5180 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
5181
5182         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
5183         * doc/passes.texi: Remove entries about regclass, local-alloc, and
5184         global.  Modify entries about regmove and IRA.
5185
5186         * ra-conflict.c: Remove the file.
5187
5188         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
5189
5190         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
5191         (pass_regclass_init): Rename to pass_reginfo_init.
5192
5193         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
5194
5195         * toplev.h (flag_ira): Remove.
5196
5197         * caller-save.c (setup_save_areas): Remove flag_ira.
5198
5199         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
5200
5201         * global.c: Remove the file.
5202
5203         * opts.c (decode_options): Remove flag_ira.
5204
5205         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
5206
5207         * regmove.c: Modify file description.
5208         (find_use_as_address, try_auto_increment): Define them only if
5209         AUTO_INC_DEC is defined.
5210         (replacement_quality, replace_in_call_usage, fixup_match_1,
5211         stable_and_no_regs_but_for_p): Remove.
5212         (reg_set_in_bb): Make it static.
5213         (regmove_optimize): Remove flag_ira and code which worked for
5214         !flag_ira.
5215
5216         * local-alloc.c: Remove the file.
5217
5218         * common.opt (fira): Remove.
5219
5220         * ira.c: Include except.h.
5221         (eliminable_regset): Move from global.c.
5222         (mark_elimination): Ditto.  Remove flag_ira.
5223         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
5224         equiv_mem_modified, validate_equiv_mem_from_store,
5225         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
5226         contains_replace_regs, memref_referenced_p, memref_used_between_p,
5227         no_equiv, recorded_label_ref): Move from local-alloc.c.
5228         (update_equiv_regs): Ditto.  Make it static.
5229         (print_insn_chain, print_insn_chains): Move it from global.c.
5230         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
5231         (build_insn_chain): Ditto.  Make it static.
5232         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
5233         Rename to init_live_subregs.
5234         (gate_ira): Remove flag_ira.
5235
5236         * regclass.c: Rename reginfo.c.  Change file description.
5237         (FORBIDDEN_INC_DEC_CLASSES): Remove.
5238         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
5239         (init_reg_sets_1): Remove code for evaluation of
5240         reg_class_superclasses and losing_caller_save_reg_set.
5241         (init_regs): Remove init_reg_autoinc.
5242         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
5243         ok_for_base_p_nonstrict): Remove.
5244         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
5245         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
5246         corresponding entries.
5247         (dump_regclass, record_operand_costs, scan_one_insn,
5248         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
5249         record_address_regs, auto_inc_dec_reg_p): Remove.
5250         (gt-regclass.h): Rename to gt-reginfo.h.
5251
5252         * rtl.h (dump_global_regs, retry_global_alloc,
5253         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
5254
5255         * Makefile.in (RA_H): Remove.
5256         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
5257         Rename regclass.o to reginfo.o.
5258         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
5259         gt-reginfo.h.
5260         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
5261         (GTFILES): Rename regclass.c to reginfo.c.
5262
5263         * passes.c (init_optimization_passes): Remove pass_local_alloc and
5264         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
5265
5266         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5267         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
5268         Remove flag_ira.
5269         (finish_spills): Ditto.  Remove code for !flag_ira.
5270         
5271 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
5272
5273         PR middle-end/35854
5274         * doc/invoke.texi (rtl debug options): Complete rewrite.
5275         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
5276         to auto_inc_dec".
5277         * mode-switching.c (pass_mode_switching): Rename pass from
5278         "mode-sw" to "mode_sw".
5279         * except.c (pass_convert_to_eh_ranges): Rename pass from
5280         "eh-ranges" to "eh_ranges".
5281         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
5282         to "subreg1".
5283                 
5284         
5285 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
5286             Alexander Monakov  <amonakov@ispras.ru>
5287
5288         PR middle-end/38857
5289         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
5290         register.
5291         (move_exprs_to_boundary): Change return type and pass through
5292         should_move from move_op.  Relax assert.  Update usage ...
5293         (schedule_expr_on_boundary): ... here.  Use should_move instead of
5294         cant_move.
5295         (move_op_orig_expr_found): Indicate that insn was disconnected from
5296         stream.
5297         (code_motion_process_successors): Do not call after_merge_succs
5298         callback if original expression was not found when traversing any of
5299         the branches.
5300         (code_motion_path_driver): Change return type.  Update prototype.
5301         (move_op): Update comment.  Add a new parameter (should_move).  Update
5302         prototype.  Set *should_move based on indication provided by
5303         move_op_orig_expr_found.
5304
5305 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
5306
5307         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
5308         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
5309         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
5310         * config/rs6000/rs6000.c (rs6000_override_options): Default
5311         avoid-indexed-addresses on for Power6, off for everything else.
5312         (avoiding_indexed_address_p): New function.
5313         (rs6000_legitimize_address): Use it.
5314         (rs6000_legitimate_address): Likewise.
5315         * config/rs6000/rs6000.md (movXX_updateX): Likewise
5316
5317 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
5318
5319         PR tree-optimization/38997
5320         * tree-loop-distribution.c (generate_memset_zero): Use
5321         POINTER_PLUS_EXPR for a pointer addition.
5322
5323 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5324
5325         * config/s390/s390.md (bswap<mode>2): New pattern added.
5326
5327 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5328
5329         * config/s390/s390.md (*tls_load_31): Added type attribute.
5330
5331 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5332
5333         * config/s390/s390.md: Fix a few comments.
5334
5335 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5336
5337         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
5338         (*tm<mode>_full): Fixed z10prop attribute.
5339         (*tst<mode>_extimm): Fixed z10prop attribute.
5340         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
5341         (*tstqiCCT_cconly): Fixed z10prop attribute.
5342         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
5343         (*movsi_larl): Fixed z10prop attribute.
5344         (*movsi_zarch): Fixed z10prop attribute.
5345         (*movsi_eas): Fixed z10prop attribute.
5346         (*movhi): Fixed z10prop attribute.
5347         (*movqi): Fixed z10prop attribute.
5348         (*movstrictqi): Fixed z10prop attribute.
5349         (*mov<mode>): Fixed z10prop attribute.
5350         (*movcc): Fixed z10prop attribute.
5351         (*sethighpartdi_64): Fixed z10prop attribute.
5352         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
5353         (*negdi2_sign_cc): Fixed z10prop attribute.
5354         (*negdi2_sign): Fixed z10prop attribute.
5355         (*absdi2_sign_cc): Fixed z10prop attribute.
5356         (*absdi2_sign): Fixed z10prop attribute.
5357         (*negabsdi2_sign_cc): Fixed z10prop attribute.
5358         (*negabsdi2_sign): Fixed z10prop attribute.
5359         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
5360         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
5361         (doloop_si64): Fixed z10prop attribute.
5362         (doloop_si31): Fixed z10prop attribute.
5363         (doloop_long): Fixed z10prop attribute.
5364         (indirect_jump): Fixed z10prop attribute.
5365         (nop): Fixed z10prop attribute.
5366         (main_base_64): Fixed z10prop attribute.
5367         (reload_base_64): Fixed z10prop attribute.
5368
5369 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5370
5371         PR rtl-optimization/38740
5372         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
5373         if !optimize.
5374         * config/mips/mips.c (mips_reorg): Likewise.
5375
5376 2009-01-28  Richard Guenther  <rguenther@suse.de>
5377
5378         PR tree-optimization/38926
5379         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
5380         with the correct value id to a value.
5381         (do_regular_insertion): Use the value number of edoubleprime
5382         for the value number of the expr.
5383
5384         Revert
5385         2008-08-21  Richard Guenther  <rguenther@suse.de>
5386
5387         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
5388         a PHI ask VN if it is already available.
5389         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
5390         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
5391
5392 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5393
5394         PR middle-end/38934
5395         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
5396         set to varying whenever max has TREE_OVERFLOW set, similarly
5397         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
5398
5399 2009-01-28  Richard Guenther  <rguenther@suse.de>
5400
5401         PR middle-end/38908
5402         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
5403         uninitialized aggregate uses in call arguments.
5404
5405 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
5406
5407         PR tree-optimization/38984
5408         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
5409         the nothing_id variable if -fno-delete-null-pointer-checks.
5410
5411 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
5412
5413         PR target/38988
5414         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
5415         (set_got_offset_rex64): Ditto.
5416
5417 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
5418
5419         PR target/38941
5420         * doc/extend.texi: Improve local variable with asm reg.
5421
5422 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
5423
5424         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
5425         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
5426         was not supplied then set warn_packed_bitfield_compat to the
5427         default value of 1.
5428         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
5429         against 1.
5430
5431 2009-01-27  Richard Guenther  <rguenther@suse.de>
5432
5433         PR tree-optimization/38503
5434         * cfgexpand.c (expand_gimple_basic_block): Ignore
5435         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
5436         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
5437         variables that cannot have TBAA applied.
5438         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
5439         statements.
5440
5441 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
5442
5443         PR middle-end/38969
5444         * calls.c (initialize_argument_information): Do not wrap complex
5445         arguments in SAVE_EXPR.
5446
5447 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
5448
5449         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5450         (INSTALL_LIBGCC): Revert typo commit.
5451
5452 2009-01-26  Richard Guenther  <rguenther@suse.de>
5453
5454         PR tree-optimization/38745
5455         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
5456         from special handling.
5457
5458 2009-01-26  Richard Guenther  <rguenther@suse.de>
5459
5460         PR tree-optimization/38745
5461         * tree-ssa.c (execute_update_addresses_taken): Do not include
5462         variables that cannot possibly be a register in not_reg_needs.
5463         Do not clear TREE_ADDRESSABLE on vars that may not become
5464         registers.
5465         * tree-ssa.c (update_alias_info_1): Include those in the set
5466         of addressable vars.
5467
5468 2009-01-26  Richard Guenther  <rguenther@suse.de>
5469
5470         PR middle-end/38851
5471         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
5472         * tree-ssa-dse.c: Include langhooks.h
5473         (execute_simple_dse): Remove stores with zero size.
5474
5475 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
5476
5477         PR c/38957
5478         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
5479         as PLUS_EXPR.
5480
5481 2009-01-24  Julian Brown  <julian@codesourcery.com>
5482
5483         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
5484         config/arm/linux-atomic.c.
5485         * config/arm/linux-atomic.c: New.
5486
5487 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
5488
5489         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
5490         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
5491         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5492
5493 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
5494
5495         PR c/38938
5496         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
5497         properly.
5498
5499 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
5500
5501         PR tree-optimization/38953
5502         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
5503         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
5504         (gloog): Split the exit of the scop when the scop exit is a loop exit.
5505         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
5506         changed the CFG.
5507
5508 2009-01-24  Paul Brook  <paul@codesourcery.com>
5509
5510         * config/arm/neon.md (neon_type): Move to arm.md.
5511         (neon_mov<VSTRUCT>): Add neon_type attribute.
5512         * config/arm/arm.md (neon_type): Move to here.
5513         (conds): Add "unconditioal" and use as default for NEON insns.
5514
5515 2009-01-24  Ben Elliston  <bje@au.ibm.com>
5516
5517         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
5518         void *' warning from -Wc++-compat.
5519         * Makefile.in (dominance.o-warn): Remove.
5520
5521 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
5522
5523         PR tree-optimization/38932
5524         * fold-const.c (fold_unary_ignore_overflow): New.
5525         * tree.h (fold_unary_ignore_overflow): Declare.
5526         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
5527         * tree-ssa-sccvn.c (visit_reference_op_load,
5528         simplify_unary_expression): Likewise.
5529
5530 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
5531
5532         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
5533         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
5534         regardless of their type.
5535         * c-common.c (handle_packed_attribute): Don't ignore packed on
5536         bitfields.
5537         * c.opt (Wpacked-bitfield-compat): New warning option.
5538         * stor-layout.c (place_field): Warn if offset of a field changed.
5539         * doc/extend.texi (packed): Mention the ABI change.
5540         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
5541         (Warning Options): Add it to the list.
5542
5543 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
5544
5545         * c-opts.c (c_common_post_options): Fix a typo in comments.
5546
5547 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
5548
5549         PR middle-end/38615
5550         * gimplify.c (gimplify_init_constructor): Fix promotion of const
5551         variables to static.
5552         * doc/invoke.texi (-fmerge-all-constants): Update description.
5553
5554 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
5555
5556         PR target/38931
5557         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
5558         (*movdi_1_rex64): Use type "mmx" for alternative 5.
5559
5560 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
5561
5562         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
5563         a word boundary.
5564         (LOCAL_ALIGNMENT): Similarly.
5565
5566 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5567             Joseph Myers  <joseph@codesourcery.com>
5568
5569         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
5570         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
5571         * config/arm/arm-tune.md: Regenerate.
5572         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
5573         -march=iwmmxt2.
5574
5575 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5576
5577         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
5578         version number to five.
5579
5580 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
5581
5582         PR c++/38930
5583         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
5584         * c-common.c (set_underlying_type): Likewise.
5585         (is_typedef_decl ): Likewise
5586         * tree.h: Likewise
5587         (set_underlying_type): Likewise.
5588         (is_typedef_type): Likewise.
5589
5590 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
5591
5592         PR middle-end/38587
5593         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
5594         crossing setjmps.
5595
5596 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
5597
5598         PR bootstrap/37660
5599         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
5600         (LIBGCC_SPEC):  Don't define.
5601         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
5602
5603 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
5604
5605         PR rtl-optimization/38879
5606         * alias.c (base_alias_check): Unaligned access via AND address can
5607         alias all surrounding object types except those with sizes equal
5608         or wider than the size of unaligned access.
5609
5610 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
5611
5612         PR c++/26693
5613         * c-decl.c (clone_underlying_type): Move this ...
5614         * c-common.c (set_underlying_type): ... here.
5615         Also, make sure the function properly sets TYPE_STUB_DECL() on
5616         the newly created typedef variant type.
5617         (is_typedef_decl ): New entry point.
5618         * tree.h: Added a new member member_types_needing_access_check to
5619         struct tree_decl_non_common.
5620         (set_underlying_type): New entry point.
5621         (is_typedef_type): Likewise.
5622
5623 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
5624
5625         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
5626         Check whether two instructions have memory references that
5627         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
5628         are helper functions for traversing.
5629         * alias.h (insn_alias_sets_confilict_p): New prototypes.
5630         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
5631         not to draw dependency edge for instructions with non-conflicting
5632         alias sets.
5633
5634 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
5635
5636         PR other/38758
5637         * longlong.h: Update copyright years.  Use soft-fp license notice.
5638         Sync __clz_tab declaration with glibc.
5639
5640 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
5641
5642         PR target/30687
5643         * doc/extend.texi (syscall_linkage): New.
5644         (version_id): Modify.
5645
5646 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5647             Richard Guenther  <rguenther@suse.de>
5648
5649         PR tree-optimization/38747
5650         PR tree-optimization/38748
5651         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
5652         conversion if the base address is an indirect reference and the
5653         aliasing sets could cause issues.
5654
5655 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5656
5657         * common.opt (fgraphite, fgraphite-identity): Add comment for 
5658         explaining why these options are not documented.
5659
5660 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5661
5662         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
5663         gimple_call_lhs is NULL.
5664
5665 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
5666
5667         PR target/38868
5668         * emit-rtl.c (adjust_address_1): Make sure memref is never
5669         overwritten.
5670
5671 2009-01-20  Ben Elliston  <bje@au.ibm.com>
5672
5673         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5674         const qualifier from arg parameter. Remove unnecessary cast to char *.
5675         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5676         const qualifier from arg 2.
5677
5678 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
5679
5680         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
5681
5682 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
5683
5684         PR c/38869
5685         * rtl.h (reinit_regs): New prototype.
5686         * regclass.c: Include ira.h.
5687         (reinit_regs): New.
5688         * Makefile.in (regclass.o): Add ira.h.
5689         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
5690
5691 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
5692
5693         PR target/38736
5694         * c-common.c (handle_aligned_attribute): Use
5695         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
5696         default alignment value.
5697
5698         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
5699
5700         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
5701         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
5702
5703         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
5704         __BIGGEST_ALIGNMENT__.
5705
5706         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
5707
5708 2009-01-18  Richard Guenther  <rguenther@suse.de>
5709
5710         PR tree-optimization/38819
5711         * tree-flow.h (operation_could_trap_helper_p): Declare.
5712         * tree-eh.c (operation_could_trap_helper_p): Export.
5713         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
5714         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
5715         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
5716         are about to insert a possibly trapping instruction and fail
5717         in this case.
5718
5719 2009-01-18  Andreas Schwab  <schwab@suse.de>
5720
5721         * doc/install.texi (Configuration): Remove obsolete paragraph
5722         about use of --with-gnu-ld with --with-gnu-as.
5723
5724 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
5725
5726         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
5727         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
5728         Follow spelling conventions.
5729
5730 2009-01-18  Ben Elliston  <bje@au.ibm.com>
5731
5732         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
5733         C++ warning about implicit conversion from void * to struct
5734         bitmap_head_def *.
5735         (bitmap_obstack_free): Likewise for bitmap_element *.
5736         * Makefile.in (bitmap.o-warn): Remove.
5737
5738 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
5739
5740         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
5741
5742 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
5743             Tobias Grosser  <tobi.grosser@amd.com>
5744
5745         * graphite.c (graphite_trans_scop_block): Do not block single
5746         nested loops.
5747
5748 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
5749
5750         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
5751         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
5752         test with assertion.
5753
5754 2009-01-16  Richard Guenther  <rguenther@suse.de>
5755
5756         PR tree-optimization/38835
5757         PR middle-end/36227
5758         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
5759         and INT + PTR -> (INT)(PTR p+ INT) folding.
5760         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
5761
5762 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
5763
5764         PR target/38554
5765         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
5766         the subreg from a lowpart subreg if it is also casting the value.
5767
5768 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5769             Tobias Grosser  <tobi.grosser@amd.com>
5770
5771         * graphite.c (compare_prefix_loops): New.
5772         (build_scop_canonical_schedules): Rewritten.
5773         (graphite_transform_loops): Move build_scop_canonical_schedules
5774         after build_scop_iteration_domain.
5775
5776 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5777             Tobias Grosser  <tobi.grosser@amd.com>
5778
5779         * graphite.c (add_conditions_to_domain): Add the loops to 
5780         the dimension of the iteration domain.  Do copy the domain
5781         only when it exists.
5782         (build_scop_conditions_1): Do not call add_conditions_to_domain.
5783         (add_conditions_to_constraints): New.
5784         (can_generate_code_stmt, can_generate_code): Removed.
5785         (gloog): Do not call can_generate_code.
5786         (graphite_transform_loops): Call add_conditions_to_constraints
5787         after building the iteration domain.
5788
5789 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
5790
5791         PR tree-optimization/38789
5792         * tree-ssa-threadedge.c
5793         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5794         __builtin_constant_p.
5795
5796 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
5797
5798         * dce.c (delete_unmarked_insns): Reversed the order that insns are
5799         examined before deleting them.
5800         
5801 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
5802
5803         * function.c (aggregate_value_p): Correctly extract the function
5804         type from CALL_EXPR_FN lookup.
5805
5806 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5807
5808         * config/picochip/picochip.c (picochip_override_options): Revert
5809         CFI asm flag disable commited previously.
5810
5811 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
5812             Tobias Grosser  <tobi.grosser@amd.com>
5813             Jan Sjodin  <jan.sjodin@amd.com>
5814
5815         * graphite.c (scan_tree_for_params): On substractions negate
5816         all the coefficients of the term.
5817         (clast_to_gcc_expression_red): New.  Handle reduction expressions
5818         of more than two operands.
5819         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
5820         (get_vdef_before_scop): Handle also the case of default definitions.
5821
5822 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
5823
5824         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
5825         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
5826         Also use them when walking CALL_INSN_FUNCTION_USAGE.
5827
5828 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
5829             Joey Ye  <joey.ye@intel.com>
5830
5831         PR middle-end/37843
5832         * cfgexpand.c (expand_stack_alignment): Don't update stack
5833         boundary nor check incoming stack boundary here.
5834         (gimple_expand_cfg): Update stack boundary and check incoming
5835         stack boundary here.
5836
5837 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
5838
5839         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
5840         
5841 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
5842
5843         PR rtl-optimization/38245
5844         * calls.c (expand_call): Add stack arguments to
5845         CALL_INSN_FUNCTION_USAGE even for pure calls (when
5846         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
5847         in regs and partially in memory or BLKmode arguments.
5848         (emit_library_call_value_1): Add stack arguments to
5849         CALL_INSN_FUNCTION_USAGE even for pure calls (when
5850         ACCUMULATE_OUTGOING_ARGS).
5851         * dce.c: Include tm_p.h.
5852         (find_call_stack_args): New function.
5853         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
5854         argument.
5855         (mark_insn): Call find_call_stack_args for CALL_Ps.
5856         (prescan_insns_for_dce): Walk insns backwards in bb rather than
5857         forwards.  Allocate and free arg_stores bitmap if needed, pass it
5858         down to deletable_insn_p, don't mark stores set in arg_stores
5859         bitmap, clear the bitmap at the beginning of each bb.
5860         * Makefile.in (dce.o): Depend on $(TM_P_H).
5861
5862 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
5863
5864         PR target/22599
5865         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
5866         to make sure the insn is a conditional test (bug 22599).  Reformat a
5867         few long lines.
5868
5869 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
5870
5871         PR middle-end/38431
5872         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
5873         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
5874         (gloog): Do not call cleanup_tree_cfg.
5875         (graphite_transform_loops): Call cleanup_tree_cfg after all 
5876         scops have been code generated.
5877
5878 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
5879         * doc/gty.texi (Invoking the garbage collector): Added new node
5880         and section documenting ggc_collect.
5881
5882 2009-01-14  Richard Guenther  <rguenther@suse.de>
5883
5884         PR tree-optimization/38826
5885         PR middle-end/38477
5886         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
5887         initialization notes only if we actually emitted a warning.
5888         (intra_create_variable_infos): Add constraints for a result decl
5889         that is passed by hidden reference.
5890         (build_pred_graph): Mark all related variables non-direct on
5891         address-taking.
5892
5893 2009-01-14  Nick Clifton  <nickc@redhat.com>
5894
5895         * ira-conflicts.c: Include addresses.h for the definition of
5896         base_reg_class.
5897         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
5898         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
5899
5900 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
5901
5902         PR target/38811
5903         * Makefile.in (ira-lives.o): Add except.h.
5904
5905         * ira-lives.c: Include except.h.
5906         (process_bb_node_lives): Process can_throw_internal.
5907
5908 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
5909
5910         PR rtl-optimization/38774
5911         * combine.c (simplify_set): When undoing cc_use change, don't do
5912         PUT_CODE on the newly created comparison, but instead put back the
5913         old comparison.
5914
5915 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
5916
5917         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
5918         values.  Remove duplicate arm8 entry.
5919
5920 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
5921
5922         PR tree-optimization/38786
5923         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
5924         the SSA_NAME case of expand_scalar_variables_expr.
5925         Set the type of an expression to the type of its assign statement.
5926         (expand_scalar_variables_expr): Also gather the scalar computation
5927         used to index the memory access.  Do not pass loop_p.
5928         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
5929         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
5930         the gimple_stmt_iterator where it inserts new code.
5931         Do not pass loop_p.
5932         (copy_bb_and_scalar_dependences): Do not pass loop_p.
5933         (translate_clast): Update call to copy_bb_and_scalar_dependences.
5934
5935 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
5936
5937         * graphite.h (debug_value): Removed.
5938         * graphite.c (debug_value): Removed.
5939
5940 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
5941
5942         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
5943         ldrd/strd with two 32-bit instructions.
5944
5945 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
5946
5947         * config/arm/arm.c (struct processors): Pass for speed down into
5948         cost helper functions.
5949         (const_ok_for_op): Handle COMPARE and inequality nodes.
5950         (arm_rtx_costs_1): Rewrite.
5951         (arm_size_rtx_costs): Update prototype.
5952         (arm_rtx_costs): Pass speed down to helper functions.
5953         (arm_slowmul_rtx_costs): Rework cost calculations.
5954         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
5955         (arm_9e_rtx_costs): Likewise.
5956
5957 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
5958
5959         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
5960         relocations of local symbols wider than UNITS_PER_WORD are not valid.
5961         (alpha_legitimize_address): Do not split local symbols wider than
5962         UNITS_PER_WORD into HIGH/LO_SUM parts.
5963
5964 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
5965
5966         PR bootstrap/38580
5967         * gcc.c (process_command): Replace call to execvp with calls
5968         to pex_one and exit.
5969
5970 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
5971
5972         PR target/29141
5973         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
5974         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
5975         variant for devices with 3-byte PC.
5976         (__tablejump_elpm__): New.
5977
5978 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
5979
5980         PR c/32041
5981         * c-parser.c (c_parser_postfix_expression): Allow `->' in
5982         offsetof member-designator, handle it as `[0].'.
5983
5984 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5985
5986         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
5987         function when not using named sections on targets with named sections
5988         if branch distance is less than 262132.
5989
5990 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
5991
5992         * combine.c (combine_instructions):  Recompute
5993         optimize_this_for_speed_p  for each BB in the main combine loop.
5994
5995 2009-01-12  Tomas Bily  <tbily@suse.cz>
5996
5997         PR middlend/38385
5998         * tree-loop-distribution.c (prop_phis): New function.
5999         (generate_builtin): Call prop_phis.
6000         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
6001
6002 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6003
6004         PR tree-optimization/38807
6005         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
6006         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
6007
6008 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
6009
6010         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
6011         subreg of op0 to the original op0.
6012
6013 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
6014
6015         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
6016         
6017 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
6018
6019         PR debug/7055
6020         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
6021         starting with digits.
6022
6023 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
6024
6025         PR target/38695
6026         * config/arm/arm.c (arm_is_long_call_p): Don't call
6027         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
6028
6029 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
6030
6031         * regrename.c (regrename_optimize): Fix dumping.
6032         (find_oldest_value_reg): Preserve REG_POINTER.
6033         (copy_hardreg_forward_1): Likewise.
6034
6035 2009-01-09  Diego Novillo  <dnovillo@google.com>
6036
6037         * gimple.h (struct gimple_statement_base) <uid>: Document
6038         the restrictions on its use.
6039         (gimple_uid): Tidy.
6040         (gimple_set_uid): Tidy.
6041
6042 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6043
6044         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
6045         zero guard even if align_bytes != 0 and count is smaller than
6046         size_needed.
6047
6048 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
6049
6050         PR rtl-optimization/38495
6051         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
6052         (add_range_and_copies_from_move_list): Print all added ranges.
6053         Add ranges to memory optimized destination.
6054
6055 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6056
6057         PR target/38686
6058         PR target/38708
6059         * config/i386/i386.c (override_options): Reject
6060         -mstringop-strategy=rep_8byte with -m32.
6061         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
6062         to 1.  Do count comparison against epilogue_size_needed at compile
6063         time even when count_exp was constant forced into register.  For
6064         size_needed don't jump to epilogue, instead just avoid aligning
6065         and invoke the body algorithm.  If need_zero_guard, add zero guard
6066         even if count is non-zero, but smaller than size_needed + number of
6067         bytes that could be stored for alignment.
6068         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
6069         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
6070         but smaller than size_needed + number of bytes that could be stored
6071         for alignment.  Compare size_needed with epilogue_size_needed instead
6072         of desired_align - align, don't adjust size_needed, pass
6073         epilogue_size_needed to the epilogue expanders.
6074
6075         PR c/35742
6076         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
6077
6078 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6079
6080         * pa.c (last_address): Change to unsigned.
6081         (update_total_code_bytes): Change argument to unsigned.  Don't
6082         check if insn addresses are set.
6083         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
6084         addresses are not set.
6085         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
6086
6087 2009-01-09  Nick Clifton  <nickc@redhat.com>
6088
6089         * config/sh/symbian.c: Replace uses of DECL_INLINE with
6090         DECL_DECLARED_INLINE_P.
6091
6092 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6093
6094         PR middle-end/38347
6095         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
6096         GET_MODE (op0) in operand_subword_force calls.
6097
6098         PR middle-end/38771
6099         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
6100         fold_convert arg0 operands to TREE_TYPE (op0) first.
6101
6102 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
6103
6104         * params.def (ira-max-conflict-table-size): Decrease default value
6105         to 1000.
6106
6107 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
6108
6109         PR tree-optimization/37031
6110         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
6111         on parameter_set.
6112         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
6113         allocate it using gc instead of heap, use VEC_quick_push instead of
6114         VEC_safe_push.
6115         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
6116         instead of heap, use VEC_quick_push instead of VEC_safe_push.
6117         * tree-data-ref.h (struct access_matrix): Change matrix to gc
6118         allocated vector from heap allocated.
6119         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
6120         * tree-loop-linear.c (linear_transform_loops): Allocate nest
6121         vector only after perfect_loop_nest_depth call.
6122
6123 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
6124             Jan Sjodin  <jan.sjodin@amd.com>
6125
6126         PR tree-optimization/38559
6127         * graphite.c (debug_value, copy_constraint,
6128         swap_constraint_variables, scale_constraint_variable, ): New.
6129         (get_lower_bound, get_upper_bound): Removed.
6130         (graphite_trans_bb_strip_mine): Clean up this code that works
6131         only for constant number of iterations.  Fully copy upper and
6132         lower bound constraints, not only the constant part of them.
6133         * graphite.h (debug_value): Declared.
6134
6135 2009-01-08  Ira Rosen  <irar@il.ibm.com>
6136
6137         PR tree-optimization/37194
6138         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
6139         Don't add the cost of cost model guard in prologue to scalar 
6140         outside cost in case of known number of iterations.
6141
6142 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6143             Alan Modra  <amodra@bigpond.net.au>
6144
6145         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
6146         non-word-aligned REG+CONST addressing.
6147
6148 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6149
6150         PR target/38706
6151         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
6152         free_after_compilation when outputting a thunk.
6153         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
6154         Do not call free_after_compilation here.
6155
6156 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6157
6158         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
6159         (ix86_valid_target_attribute_inner_p): Ditto.
6160
6161 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
6162
6163         PR tree-optimization/38492
6164         PR tree-optimization/38498
6165         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
6166         * tree-chrec.h (scev_is_linear_expression): Declared.
6167         * graphite.c (graphite_cannot_represent_loop_niter): New.
6168         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
6169         (graphite_loop_normal_form): Use gcc_assert.
6170         (scan_tree_for_params): Use CASE_CONVERT.
6171         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
6172         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
6173         Use gcc_assert.  Discard scops that contain unhandled cases.
6174         (build_scop_conditions): Return a boolean status for unhandled cases.
6175         (strip_mine_profitable_p): Print the loop number, not its depth.
6176         (is_interchange_valid): Pass the depth of the loop nest, don't
6177         recompute it wrongly.
6178         (graphite_trans_bb_block): Same.
6179         (graphite_trans_bb_block): Print tentative of loop blocking.
6180         (graphite_trans_scop_block): Do not print that the loop has been
6181         blocked.
6182         (graphite_transform_loops): Do not handle scops that contain condition
6183         scalar phi nodes.
6184
6185 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
6186
6187         AVX Programming Reference (December, 2008)
6188         * config/i386/avxintrin.h (_mm256_stream_si256): New.
6189         (_mm256_stream_pd): Likewise.
6190         (_mm256_stream_ps): Likewise.
6191
6192         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
6193         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
6194         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
6195         (bdesc_special_args): Add __builtin_ia32_movntdq256,
6196         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
6197         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
6198         (ix86_expand_special_args_builtin): Likewise.
6199
6200         * config/i386/sse.md (AVXMODEDI): New.
6201         (avx_movnt<mode>): Likewise.
6202         (avx_movnt<mode>): Likewise.
6203         (<sse>_movnt<mode>): Remove AVX support.
6204         (sse2_movntv2di): Likewise.
6205
6206 2009-01-07  Richard Guenther  <rguenther@suse.de>
6207
6208         PR middle-end/38751
6209         * fold-const.c (extract_muldiv): Remove obsolete comment.
6210         (fold_plusminus_mult_expr): Undo MINUS_EXPR
6211         to PLUS_EXPR canonicalization for the canonicalization.
6212
6213 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
6214
6215         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
6216         hosted cross-compilers generating less efficient code.
6217
6218 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6219
6220         * function.h (rtl_data): Add a dbr_scheduled_p field.
6221         * reorg.c (dbr_schedule): Set it.
6222         (gate_handle_delay_slots): Check it.
6223         * config/mips/mips.c (mips_base_delayed_branch): Delete.
6224         (mips_reorg): Check flag_delayed_branch instead of
6225         mips_base_delayed_branch.
6226         (mips_override_options): Don't set mips_base_delayed_branch
6227         or flag_delayed_branch.
6228
6229 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6230
6231         PR rtl-optimization/38426.
6232         * ira.c (ira): Set current_function_is_leaf earlier.
6233
6234 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
6235
6236         PR rtl-optimization/38722
6237         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
6238         too early, only set a flag and modify after last possible
6239         undo_all point.
6240
6241 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
6242
6243         PR c/34252
6244         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
6245         * real.c (decimal_single_format): Correct values of emin and emax.
6246         (decimal_double_format): Ditto.
6247         (decimal_quad_format): Ditto.
6248         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
6249         computation of DECnn_MIN and DECnn_MAX for corrected values of
6250         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
6251         __DECnn_MIN__, and adjust its computation for the corrected value
6252         of emin.
6253
6254 2009-01-06  Jan Hubicka  <jh@suse.cz>
6255
6256         PR target/38744
6257         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
6258
6259 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
6260
6261         * doc/contrib.texi (Contributors): Slightly adjust the end note.
6262         Add Robert Clark to the list of testers.
6263
6264 2009-01-06  Jan Hubicka  <jh@suse.cz>
6265             Kai Tietz  <kai.tietz@onevision.com>
6266
6267         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
6268         * config/i386/i386.c (ix86_expand_call): Add clobbers.
6269
6270 2009-01-06  Jan Hubicka  <jh@suse.cz>
6271             Kai Tietz  <kai.tietz@onevision.com>
6272
6273         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
6274         for w64 ABI.
6275         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
6276         (ix86_nsaved_regs): Count only general purpose regs.
6277         (ix86_nsaved_sseregs): New.
6278         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
6279         to 16 for w64; compute padding and size of sse reg save area.
6280         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
6281         general purpose regs.
6282         (ix86_emit_save_sse_regs_using_mov): New.
6283         (ix86_expand_prologue): Save SSE regs if needed.
6284         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
6285         (ix86_emit_restore_sse_regs_using_mov): New.
6286         (ix86_expand_epilogue): Save SSE regs if needed.
6287
6288 2009-01-06  Jan Hubicka  <jh@suse.cz>
6289             Kai Tietz  <kai.tietz@onevision.com>
6290
6291         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
6292         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
6293         functions when accumulate outgoing args is off.
6294
6295 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6296
6297         PR bootstrap/38742
6298         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
6299         before using pseudos_have_intersected_live_ranges_p.
6300
6301         * ira-int.h (ira_assert): Always define.
6302
6303 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6304
6305         AVX Programming Reference (December, 2008)
6306         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
6307         (_mm256_permute2_pd): Likewise.
6308         (_mm_permute2_ps): Likewise.
6309         (_mm256_permute2_ps): Likewise.
6310         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
6311         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
6312
6313         * config/i386/i386.c (ix86_builtins): Remove
6314         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6315         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
6316         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
6317         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
6318         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6319         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
6320         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
6321         __builtin_ia32_vpermil2ps256.
6322         (ix86_init_mmx_sse_builtins): Updated.
6323         (ix86_expand_args_builtin): Likewise.
6324
6325 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6326
6327         * pa.c (output_call): Relocate non-jump insns in the delay slot of
6328         long absolute calls when generating PA 2.0 code.
6329
6330 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
6331
6332         PR rtl-optimization/38583
6333         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
6334
6335         * params.def (ira-max-conflict-table-size): New.
6336
6337         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
6338         
6339         * ira.h (ira_conflicts_p): New external definition.
6340         
6341         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
6342         table.  Report this.  Return result of building.
6343         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
6344         building conflict table.
6345
6346         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
6347         (ira_color): Use ira_conflicts_p.
6348         
6349         * global.c: Include ira.h.
6350         (pseudo_for_reload_consideration_p, build_insn_chain): Use
6351         ira_conflicts_p.
6352
6353         * Makefile.in (global.o): Add ira.h.
6354         
6355         * ira-build.c (mark_all_loops_for_removal,
6356         propagate_some_info_from_allocno): New.
6357         (remove_unnecessary_allocnos): Call
6358         propagate_some_info_from_allocno.
6359         (remove_low_level_allocnos): New.
6360         (remove_unnecessary_regions): Add parameter.  Call
6361         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
6362         parameter to remove_unnecessary_regions.
6363         (ira_build): Remove all regions but root if the conflict table was
6364         not built.  Update conflict hard regs for allocnos crossing calls.
6365
6366         * ira.c (ira_conflicts_p): New global.
6367         (ira): Define and use ira_conflicts_p.
6368
6369         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
6370         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
6371         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
6372         
6373 2009-01-06  Ben Elliston  <bje@au.ibm.com>
6374
6375         * gengtype-lex.l (YY_NO_INPUT): Define.
6376
6377 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6378
6379         PR c/34911
6380         * c-common.c (handle_vector_size_attribute): Also reject
6381         BOOLEAN_TYPE types.
6382
6383 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
6384
6385         PR tree-optimization/38492
6386         * graphite.c (rename_map_elt, debug_rename_elt,
6387         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
6388         rename_map_elt_info, eq_rename_map_elts,
6389         get_new_name_from_old_name, bb_in_sese_p): Moved around.
6390         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
6391         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
6392         (sese_build_livein_liveouts): New.
6393         (new_sese, free_sese): New.
6394         (new_scop): Call new_sese.
6395         (free_scop): Call free_sese.
6396         (rename_variables_from_edge, rename_phis_end_scop): Removed.
6397         (register_old_new_names): Renamed register_old_and_new_names.
6398         (register_scop_liveout_renames, add_loop_exit_phis,
6399         insert_loop_close_phis, struct igp,
6400         default_liveout_before_guard, add_guard_exit_phis,
6401         insert_guard_phis, copy_renames): New.
6402         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
6403         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
6404         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
6405         (scop_adjust_phis_for_liveouts): New.
6406         (gloog): Call scop_adjust_phis_for_liveouts.
6407
6408         * graphite.h (struct sese): Documented.  Added fields liveout,
6409         num_ver and livein.
6410         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
6411         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
6412         (struct scop): Added field liveout_renames.
6413         (SCOP_LIVEOUT_RENAMES): New.
6414
6415 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6416
6417         PR tree-optimization/38510
6418         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
6419         (translate_clast): Call recompute_all_dominators before
6420         graphite_verify.
6421         (gloog): Call recompute_all_dominators before graphite_verify.
6422
6423 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6424             Jan Sjodin  <jan.sjodin@amd.com>
6425
6426         PR tree-optimization/38500
6427         * graphite.c (create_sese_edges): Call fix_loop_structure after
6428         splitting blocks.
6429
6430 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
6431
6432         * config.gcc: Add m32r*-*-rtems*.
6433         * config/m32r/rtems.h: New file.
6434
6435 2009-01-05  Ben Elliston  <bje@au.ibm.com>
6436
6437         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
6438         (.po.pox): Likewise.
6439         (po/gcc.pot): Likewise.
6440
6441 2009-01-04  David S. Miller  <davem@davemloft.net>
6442
6443         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
6444         (STARTING_FRAME_OFFSET): Always set to zero.
6445
6446 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
6447
6448         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
6449         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
6450         fixed-point types, and vectors of the same.
6451
6452 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
6453
6454         * config/mips/sync.md (*mb_barrier): Rename to...
6455         (*memory_barrier): ...this.
6456
6457 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
6458
6459         * doc/extend.texi (Function Attributes): Move @cindex after @item
6460         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
6461         and put in alphabetical order. Fix 'target' name and put in order.
6462         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
6463         typos.
6464
6465 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
6466
6467         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
6468         (memory_barrier): Expand as unspec instead of unspec_volatile.
6469         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6470         (*memory_barrier): Define as unspec instead of unspec_volatile.
6471         Use (match_dup 0) as input operand.
6472
6473         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
6474         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
6475         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
6476         scratch register.  Remove operand 1.
6477         (*stbar): Define as unspec instead of unspec_volatile.
6478         Use (match_dup 0) as input operand, remove (const_int 8).
6479         (*membar): Define as unspec instead of unspec_volatile.
6480         Use (match_dup 0) as input operand, remove input operand 2.
6481
6482         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
6483         (memory_barrier): Expand as unspec instead of unspec_volatile.
6484         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6485         (*memory_barrier): Define as unspec instead of unspec_volatile.
6486         Use (match_dup 0) as input operand.
6487
6488         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
6489         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6490         Set volatile flag on operand 0.
6491         (*memory_barrier): New insn pattern.
6492
6493         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
6494         insn operands.
6495         (*memory_barrier): Use (match_dup 0) as input operand.
6496
6497         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
6498         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6499         Set volatile flag on operand 0.
6500         (*mb_internal): New insn pattern.
6501
6502         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
6503
6504 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6505
6506         PR middle-end/38586
6507         * function.c (struct temp_slot): Move to the section of the file
6508         that deals with temp slots.  Remove field 'address'.
6509         (temp_slot_address_table): New hash table of address -> temp slot.
6510         (struct temp_slot_address_entry): New struct, items for the table.
6511         (temp_slot_address_compute_hash, temp_slot_address_hash,
6512         temp_slot_address_eq, insert_temp_slot_address): Support functions
6513         for the new table.
6514         (find_temp_slot_from_address): Rewrite to use the new hash table.
6515         (remove_unused_temp_slot_addresses): Remove addresses of temp
6516         slots that have been made available.
6517         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
6518         worker function for remove_unused_temp_slot_addresses.
6519         (assign_stack_temp_for_type): Don't clear the temp slot address list.
6520         Add the temp slot address to the address -> temp slot map.
6521         (update_temp_slot_address): Update via insert_temp_slot_address.
6522         (free_temp_slots): Call remove_unused_temp_slot_addresses.
6523         (pop_temp_slots): Likewise.
6524         (init_temp_slots): Allocate the address -> temp slot map, or empty
6525         the map if it is already allocated.
6526         (prepare_function_start): Initialize temp slot processing.
6527
6528 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6529
6530         PR middle-end/38584
6531         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
6532         Calculate the size of all stack vars assuming no packing of stack
6533         vars will happen, replacing a quadratic algorithm with a linear one.
6534
6535 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6536
6537         PR target/38707
6538         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
6539         can't be used.
6540
6541 2009-01-03  Diego Novillo  <dnovillo@google.com>
6542
6543         * doc/contrib.texi: Update contributions.
6544
6545 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6546
6547         PR c++/38705
6548         * builtins.c (fold_builtin_memory_op): Give up if either operand
6549         is volatile.  Set srctype or desttype to non-qualified version
6550         of the other type.
6551
6552         PR c/38700
6553         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
6554         and FUNCTION_DECLs.
6555
6556 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
6557
6558         PR rtl-optimization/35805
6559         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
6560         problem if fast dce is able to remove any instructions.
6561         * dce.c (dce_process_block): Fix dump message.
6562         
6563 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
6564
6565         PR 33649
6566         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
6567
6568 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
6569
6570         PR middle-end/38690
6571         * tree-flow.h (op_code_prio, op_prio): New prototypes.
6572         * tree-pretty-print.c (op_code_prio): New function.
6573         (op_prio): No longer static.  Use op_code_prio.
6574         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
6575         Use op_prio and op_code_prio to determine if () should be
6576         printed around operand(s) or not.
6577
6578         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
6579         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
6580         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
6581         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
6582         pp_character instead of pp_string for single letter printing.
6583
6584 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6585
6586         * doc/extend.texi: Fix '#pragma GCC option' typo.
6587
6588 2009-01-02  Richard Guenther  <rguenther@suse.de>
6589
6590         * doc/install.texi (--enable-checking): Mention different
6591         default for stage1.
6592         (--enable-stage1-checking): Document.
6593
6594 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
6595
6596         PR middle-end/30142
6597         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
6598         case to be an error.
6599
6600 2009-01-02  Ben Elliston  <bje@au.ibm.com>
6601
6602         * config/fp-bit.h (pack_d): Constify argument.
6603         * config/fp-bit.c (makenan): Constify return type. Remove casts.
6604         (isnan): Constify argument.
6605         (isinf): Likewise.
6606         (iszero): Likewise.
6607         (pack_d): Likewise.
6608         (_fpadd_parts): Constify return type.
6609         (_fpmul_parts): Likewise.
6610         (_fpdiv_parts): Likewise.
6611
6612 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
6613
6614         PR c/36489
6615         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
6616         warn about overwriting initializer with side-effects or
6617         -Woverride-init if !IMPLICIT.
6618         (output_init_element): Likewise.  Pass IMPLICIT down to
6619         add_pending_init.
6620         (process_init_element): Add IMPLICIT argument.  Pass it down
6621         to output_init_element.
6622         (push_init_element, pop_init_level, set_designator): Adjust
6623         process_init_element callers.
6624         (set_nonincremental_init, set_nonincremental_init_from_string):
6625         Adjust add_pending_init callers.
6626         (output_pending_init_elements): Adjust output_init_element callers.
6627         * c-tree.h (process_init_element): Adjust prototype.
6628         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
6629         process_init_element callers.