OSDN Git Service

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