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