OSDN Git Service

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