OSDN Git Service

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