OSDN Git Service

21f9c3a1e518e0aa95b328325f27e0763aff49d9
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2
3         PR middle-end/32935
4         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
5          correct type the negate expression.
6
7 2007-08-03  Jan Hubicka  <jh@suse.cz>
8
9         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
10         stack boundary.
11
12 2007-08-03  David Edelsohn  <edelsohn@gnu.org>
13
14         * config/rs6000/rs6000.c (struct processor_cost): Change
15         l1_cache_lines to l1_cache_size.  Add l2_cache_size.
16         (*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
17         information.
18         (rios1_costs, rios2_cost): Correct cache line size.
19         (rs6000_override_options): Set l2-cache-size parameter.
20
21 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22             Diego Novillo  <dnovillo@google.com>
23
24         PR 31521
25         * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
26         if the range includes 0.
27
28 2007-08-03  Ben Elliston  <bje@au.ibm.com>
29
30         * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
31         mode to unspec expressions to silence a warning from the generator
32         programs.
33         
34 2007-08-02  Steve Ellcey  <sje@cup.hp.com>
35
36         * config/ia64/constraints.md ("U"): Make constraint vector only.
37
38 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
39
40         PR middle-end/25446
41         * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
42         always_inline attribute on the function decl.
43
44 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
45
46         PR middle-end/25445
47         * varasm.c (default_binds_local_p_1): Consult flag_whole_program
48         if we are compiling with -fPIC.
49
50 2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
51             Nigel Stephens  <nigel@mips.com>
52
53         * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
54         Define for MIPS32 and MIPS64.
55
56 2007-08-02  Nick Clifton  <nickc@redhat.com>
57
58         * config/host-hpux.c: Change copyright header to refer to version
59         3 of the GNU General Public License and to point readers at the
60         COPYING3 file and the FSF's license web page.
61         * config/alpha/predicates.md, config/alpha/vms-ld.c,
62         config/alpha/linux.h, config/alpha/alpha.opt,
63         config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
64         config/alpha/vms-unwind.h, config/alpha/ev4.md,
65         config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
66         config/alpha/alpha.h, config/alpha/sync.md,
67         config/alpha/openbsd.h, config/alpha/alpha.md,
68         config/alpha/alpha-modes.def, config/alpha/ev5.md,
69         config/alpha/alpha-protos.h, config/alpha/freebsd.h,
70         config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
71         config/alpha/constraints.md, config/alpha/osf.h,
72         config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
73         config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
74         config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
75         config/frv/frv-asm.h, config/frv/frv-protos.h,
76         config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
77         config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
78         config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
79         config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
80         config/s390/s390.opt, config/s390/s390-modes.def,
81         config/s390/fixdfdi.h, config/s390/constraints.md,
82         config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
83         config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
84         config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
85         config/m32c/m32c-pragma.c, config/m32c/m32c.h,
86         config/m32c/prologue.md, config/m32c/m32c.abi,
87         config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
88         config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
89         config/m32c/t-m32c, config/m32c/m32c-modes.def,
90         config/m32c/jump.md, config/m32c/shift.md,
91         config/m32c/m32c-protos.h, config/libgloss.h,
92         config/spu/spu-protos.h, config/spu/predicates.md,
93         config/spu/spu-builtins.h, config/spu/spu.c,
94         config/spu/spu-builtins.def, config/spu/spu-builtins.md,
95         config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
96         config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
97         config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
98         config/sparc/hypersparc.md, config/sparc/predicates.md,
99         config/sparc/linux.h, config/sparc/sp64-elf.h,
100         config/sparc/supersparc.md, config/sparc/cypress.md,
101         config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
102         config/sparc/niagara.md, config/sparc/sparc.md,
103         config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
104         config/sparc/sparc.opt, config/sparc/sync.md,
105         config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
106         config/sparc/ultra1_2.md, config/sparc/biarch64.h,
107         config/sparc/sparc.c, config/sparc/little-endian.opt,
108         config/sparc/sysv4-only.h, config/sparc/sparc.h,
109         config/sparc/linux64.h, config/sparc/freebsd.h,
110         config/sparc/sol2.h, config/sparc/rtemself.h,
111         config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
112         config/sparc/sparc-modes.def, config/sparc/sparclet.md,
113         config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
114         config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
115         config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
116         config/m32r/linux.h, config/m32r/constraints.md,
117         config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
118         config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
119         config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
120         config/i386/i386.md, config/i386/netware-crt0.c,
121         config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
122         config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
123         config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
124         config/i386/sol2.h, config/i386/constraints.md,
125         config/i386/netware-libgcc.c, config/i386/sysv5.h,
126         config/i386/predicates.md, config/i386/geode.md,
127         config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
128         config/i386/freebsd64.h, config/i386/vxworksae.h,
129         config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
130         config/i386/rtemself.h, config/i386/netbsd-elf.h,
131         config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
132         config/i386/netware.h, config/i386/i386-modes.def,
133         config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
134         config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
135         config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
136         config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
137         config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
138         config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
139         config/i386/xm-mingw32.h, config/i386/linux64.h,
140         config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
141         config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
142         config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
143         config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
144         config/i386/cygwin2.c, config/i386/i386-protos.h,
145         config/i386/sync.md, config/i386/openbsd.h,
146         config/i386/host-mingw32.c, config/i386/i386-aout.h,
147         config/i386/nto.h, config/i386/biarch64.h,
148         config/i386/i386-coff.h, config/i386/freebsd.h,
149         config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
150         config/i386/host-i386-darwin.c, config/i386/vxworks.h,
151         config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
152         config/darwin-protos.h, config/linux.opt, config/sol2.c,
153         config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
154         config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
155         config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
156         config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
157         config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
158         config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
159         config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
160         config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
161         config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
162         config/sh/superh64.h, config/sh/rtemself.h,
163         config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
164         config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
165         config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
166         config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
167         config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
168         config/avr/predicates.md, config/avr/constraints.md,
169         config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
170         config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
171         config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
172         config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
173         config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
174         config/c4x/c4x-modes.def, config/c4x/rtems.h,
175         config/c4x/predicates.md, config/c4x/c4x.h,
176         config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
177         config/xtensa/predicates.md, config/xtensa/xtensa.c,
178         config/xtensa/linux.h, config/xtensa/xtensa.h,
179         config/xtensa/elf.h, config/xtensa/xtensa.md,
180         config/xtensa/xtensa.opt, config/xtensa/constraints.md,
181         config/xtensa/xtensa-protos.h, config/dbx.h,
182         config/stormy16/predicates.md, config/stormy16/stormy16.md,
183         config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
184         config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
185         config/host-solaris.c, config/fr30/fr30.h,
186         config/fr30/predicates.md, config/fr30/fr30-protos.h,
187         config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
188         config/vxworksae.h, config/sol2-c.c, config/lynx.h,
189         config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
190         config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
191         config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
192         config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
193         config/host-linux.c, config/interix3.h, config/cris/cris.c,
194         config/cris/predicates.md, config/cris/linux.h,
195         config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
196         config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
197         config/cris/aout.opt, config/cris/cris-protos.h,
198         config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
199         config/iq2000/iq2000.h, config/iq2000/predicates.md,
200         config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
201         config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
202         config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
203         config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
204         config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
205         config/chorus.h, config/mn10300/mn10300.c,
206         config/mn10300/mn10300.opt, config/mn10300/predicates.md,
207         config/mn10300/mn10300.h, config/mn10300/linux.h,
208         config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
209         config/mn10300/mn10300.md, config/ia64/predicates.md,
210         config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
211         config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
212         config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
213         config/ia64/freebsd.h, config/ia64/ia64.md,
214         config/ia64/ia64-modes.def, config/ia64/constraints.md,
215         config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
216         config/gofast.h, config/rtems.h, config/sol2-10.h,
217         config/m68k/predicates.md, config/m68k/m68k.md,
218         config/m68k/linux.h, config/m68k/m68k-modes.def,
219         config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
220         config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
221         config/m68k/openbsd.h, config/m68k/m68k-aout.h,
222         config/m68k/m68k.opt, config/m68k/m68020-elf.h,
223         config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
224         config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
225         config/m68k/constraints.md, config/m68k/rtemself.h,
226         config/m68k/netbsd-elf.h, config/m68k/m68k.h,
227         config/m68k/uclinux.h, config/rs6000/power4.md,
228         config/rs6000/host-darwin.c, config/rs6000/6xx.md,
229         config/rs6000/linux.h, config/rs6000/eabi.h,
230         config/rs6000/aix41.opt, config/rs6000/xcoff.h,
231         config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
232         config/rs6000/eabialtivec.h, config/rs6000/8540.md,
233         config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
234         config/rs6000/windiss.h, config/rs6000/603.md,
235         config/rs6000/aix41.h, config/rs6000/cell.md,
236         config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
237         config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
238         config/rs6000/darwin.md, config/rs6000/darwin64.h,
239         config/rs6000/default64.h, config/rs6000/7xx.md,
240         config/rs6000/darwin.opt, config/rs6000/spe.md,
241         config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
242         config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
243         config/rs6000/7450.md, config/rs6000/linux64.h,
244         config/rs6000/constraints.md, config/rs6000/440.md,
245         config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
246         config/rs6000/rs6000.c, config/rs6000/aix52.h,
247         config/rs6000/rs6000.h, config/rs6000/power6.md,
248         config/rs6000/predicates.md, config/rs6000/altivec.md,
249         config/rs6000/aix64.opt, config/rs6000/rios1.md,
250         config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
251         config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
252         config/rs6000/darwin7.h, config/rs6000/dfp.md,
253         config/rs6000/linux64.opt, config/rs6000/sync.md,
254         config/rs6000/vxworksae.h, config/rs6000/power5.md,
255         config/rs6000/lynx.h, config/rs6000/biarch64.h,
256         config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
257         config/rs6000/eabispe.h, config/rs6000/e500.h,
258         config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
259         config/rs6000/netbsd.h, config/rs6000/e500-double.h,
260         config/rs6000/aix.h, config/rs6000/vxworks.h,
261         config/rs6000/40x.md, config/rs6000/aix51.h,
262         config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
263         config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
264         config/arc/arc.h, config/mcore/mcore-elf.h,
265         config/mcore/mcore-protos.h, config/mcore/predicates.md,
266         config/mcore/mcore.md, config/mcore/mcore.c,
267         config/mcore/mcore.opt, config/mcore/mcore.h,
268         config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
269         config/score/predicates.md, config/score/score-version.h,
270         config/score/score-protos.h, config/score/misc.md,
271         config/score/elf.h, config/score/score.c, config/score/mac.md,
272         config/score/score7.md, config/score/score.h,
273         config/score/score-conv.h, config/score/score-mdaux.c,
274         config/score/score.md, config/score/score.opt,
275         config/score/score-modes.def, config/score/score-mdaux.h,
276         config/score/mul-div.S, config/arm/uclinux-elf.h,
277         config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
278         config/arm/symbian.h, config/arm/linux-elf.h,
279         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
280         config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
281         config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
282         config/arm/strongarm-pe.h, config/arm/arm.h,
283         config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
284         config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
285         config/arm/arm-modes.def, config/arm/linux-eabi.h,
286         config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
287         config/arm/arm-cores.def, config/arm/arm-protos.h,
288         config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
289         config/arm/wince-pe.h, config/arm/neon.md,
290         config/arm/constraints.md, config/arm/neon.ml,
291         config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
292         config/arm/arm.opt, config/arm/arm926ejs.md,
293         config/arm/predicates.md, config/arm/iwmmxt.md,
294         config/arm/arm_neon.h, config/arm/unknown-elf.h,
295         config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
296         config/arm/neon-testgen.ml, config/arm/arm.md,
297         config/arm/xscale-coff.h, config/arm/pe.c,
298         config/arm/arm-generic.md, config/arm/pe.h,
299         config/arm/kaos-strongarm.h, config/arm/freebsd.h,
300         config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
301         config/arm/strongarm-elf.h, config/arm/cirrus.md,
302         config/arm/netbsd-elf.h, config/arm/vxworks.h,
303         config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
304         config/pa/predicates.md, config/pa/pa64-hpux.h,
305         config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
306         config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
307         config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
308         config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
309         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
310         config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
311         config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
312         config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
313         config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
314         config/pa/pa64-regs.h, config/pa/pa-modes.def,
315         config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
316         config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
317         config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
318         config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
319         config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
320         config/mips/linux64.h, config/mips/elforion.h,
321         config/mips/constraints.md, config/mips/generic.md,
322         config/mips/predicates.md, config/mips/4300.md,
323         config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
324         config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
325         config/mips/5k.md, config/mips/vr4120-div.S,
326         config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
327         config/mips/mips-protos.h, config/mips/6000.md,
328         config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
329         config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
330         config/mips/mips-modes.def, config/mips/vr.h,
331         config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
332         config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
333         config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
334         config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
335         config/vax/openbsd1.h, config/vax/netbsd.h,
336         config/vax/vax-protos.h, config/vax/netbsd-elf.h,
337         config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
338         config/h8300/rtems.h, config/h8300/predicates.md,
339         config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
340         config/h8300/h8300.md, config/h8300/h8300.opt,
341         config/h8300/coff.h, config/h8300/h8300-protos.h,
342         config/v850/v850.md, config/v850/predicates.md,
343         config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
344         config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
345         config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
346         config/mmix/mmix.h, config/mmix/predicates.md,
347         config/mmix/mmix-protos.h, config/mmix/mmix.md,
348         config/mmix/mmix.c, config/mmix/mmix.opt,
349         config/mmix/mmix-modes.def, config/bfin/bfin.opt,
350         config/bfin/rtems.h, config/bfin/bfin-modes.def,
351         config/bfin/predicates.md, config/bfin/bfin-protos.h,
352         config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
353         Likewise.
354
355 2007-08-02  Richard Sandiford  <richard@codesourcery.com>
356
357         * emit-rtl.c (reset_used_decls): Rename to...
358         (set_used_decls): ...this.  Set the used flag rather than clearing it.
359         (unshare_all_rtl_again): Update accordingly.  Set flags on argument
360         DECL_RTLs rather than resetting them.
361
362 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
363
364         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
365
366 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
367
368         * reload.c (find_reloads_address_part):  Pass correct MEMREFLOC
369         argument to find_reloads_address.
370
371 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
372
373         PR tree-optimization/32919
374         * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
375         * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
376         (coalesce_ssa_name): Call it.
377
378 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
379             David Ung  <davidu@mips.com>
380
381         * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
382         (__mips16_unorddf2, __mips16_floatunsidf): New.
383         * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
384         above functions.
385         * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
386
387 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
388
389         * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
390         Display new operands of OMP_SECTIONS and OMP_CONTINUE.
391         * tree.h (OMP_SECTIONS_CONTROL): New macro.
392         (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
393         * omp-low.c (get_ws_args_for, determine_parallel_type,
394         expand_omp_for_generic, expand_omp_for_static_nochunk,
395         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
396         Work with more precise CFG.
397         (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
398         (lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
399         OMP_CONTINUE.
400         * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
401         * gimple-low.c (lower_stmt): Ditto.
402         * tree-inline.c (estimate_num_insns_1): Ditto.
403         * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
404         (OMP_SECTIONS_SWITCH): New.
405         * tree-cfgcleanup.c (cleanup_omp_return): New.
406         (cleanup_tree_cfg_bb): Call cleanup_omp_return.
407         * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
408         and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
409         (tree_redirect_edge_and_branch): Handle omp constructs.
410
411         * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
412         with three arguments.
413
414 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
415
416         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
417         in loop closed ssa.
418
419 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
420
421         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
422         the loop structures may need fixing.
423         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
424         New functions.
425         (cleanup_tree_cfg_loop): Removed.
426         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
427         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
428         instead of running cleanup_tree_cfg_loop.
429         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
430         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
431         (tree_predictive_commoning): Declaration changed.
432         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
433
434 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
435
436         * doc/invoke.texi (l1-cache-size): Update documentation.
437         (l2-cache-size): Document.
438         * params.h (L2_CACHE_SIZE): New macro.
439         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
440         that L1_CACHE_SIZE is in kB now.
441         (L2_CACHE_SIZE_BYTES): New macro.
442         (tree_ssa_prefetch_arrays): Show size in kB.
443         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
444         and l2_cache_size fields.
445         * config/i386/driver-i386.c (describe_cache): Detect cache size
446         in kB.
447         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
448         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
449         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
450         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
451         (override_options): Set l1-cache-size and l2-cache-size to default
452         values if not specified otherwise.
453         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
454         (PARAM_L2_CACHE_SIZE): New.
455
456 2007-08-01  Nigel Stephens  <nigel@mips.com>
457             David Ung  <davidu@mips.com>
458             Thiemo Seufer  <ths@mips.com>
459             Chris Dearman  <chris@mips.com>
460             Richard Sandiford  <richard@codesourcery.com>
461
462         * config.gcc (mips*-sde-elf*): New stanza.
463         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
464         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
465         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
466         (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
467         (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
468         (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
469         to tmake_file.
470         * config/mips/sde.h: New file.
471         * config/mips/t-libgcc-mips16: Likewise.
472         * config/mips/t-sde: Likewise.
473         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
474         of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
475         _MIPS_FPSET and _MIPS_SZINT.
476         * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
477         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
478         insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
479         * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
480         * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
481         * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
482         * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
483         _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
484         _MIPS_SZPTR and _MIPS_FPSET.
485         (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
486         architecture is specified.
487         (MIPS_32BIT_OPTION_SPEC): New macro.
488
489 2007-07-31  Dan Hipschman  <dsh@google.com>
490
491         * gcc.c (end_going_arg): New function.
492         (do_spec_2): Use it.
493         (do_spec_1): Use it.
494
495 2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>
496
497         * ddg.c (add_cross_iteration_register_deps): Declare bb_info
498         only if ENABLE_CHECKING is defined.
499
500 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
501
502         * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
503         df_ru_add_problem, df_ru_get_bb_info): Removed.
504         (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
505         * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
506         df_ru_free_bb_info, df_ru_alloc,
507         df_ru_bb_local_compute_process_def,
508         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
509         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
510         df_ru_transfer_function, df_ru_free, df_ru_start_dump,
511         df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
512         df_ru_add_problem): Removed.
513
514 2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
515
516         PR target/32847
517         * pa.md (casesi32): Use match_scratch.  Revise insn condition.
518         (casesi32p, casesi64p): Likewise.
519         (casesi): Adjust for above.
520
521 2007-07-31  Richard Sandiford  <richard@codesourcery.com>
522
523         * mode-switching.c (create_pre_exit): Don't search past calls.
524
525 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
526
527         * config/mips/mips.h (ISA_HAS_SYNCI):  Add !TARGET_MIPS16 test.
528
529 2007-07-31  Revital Eres  <eres@il.ibm.com>
530
531         * ddg.c (add_deps_for_def): Rename to...
532         (add_cross_iteration_register_deps): This.  Change implementation
533         to use only reaching def and def-use chains to construct the
534         inter loop dependencies.
535         (add_deps_for_use): Remove function.
536         (build_inter_loop_deps): Call add_cross_iteration_register_deps
537         function to build the inter loop dependencies.
538         * modulo-sched.c (sms_schedule): Build only
539         reaching def and def-use chains for the propose of the ddg
540         construction.
541
542 2007-07-31  Julian Brown  <julian@codesourcery.com>
543
544         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
545         New define_insns. Use correct RTL.
546         (vec_set<mode>): Write as expander.
547
548 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
549
550         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
551         to an unallocated space.
552
553 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
554
555         * tree-data-ref.c
556         (split_constant_offset): Enable split_constant_offset to extract
557         constants from other statements.
558         * tree-vect-transform.c
559         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
560         to a temp var. Force base_offset to be simple.
561
562 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
563
564         * df-scan.c (df_scan_verify): Remove artificial limit on
565         the number of blocks for verification.
566         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
567         df_simulate_defs): Avoid unnecessary insn checking for defs.
568
569 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
570
571         gcc/
572         * config/m68k/lb1sf68.asm (FUNC): New macro.
573         (__mulsi3): Use it.
574         (__udivsi3): Likewise.
575         (__divsi3): Likewise.
576         (__umodsi3): Likewise.
577         (__modsi3): Likewise.
578         (__subdf3): Likewise.
579         (__adddf3): Likewise.
580         (__muldf3): Likewise.
581         (__divdf3): Likewise.
582         (__negdf2): Likewise.
583         (__cmpdf2): Likewise.
584         (__subsf3): Likewise.
585         (__addsf3): Likewise.
586         (__mulsf3): Likewise.
587         (__divsf3): Likewise.
588         (__negsf2): Likewise.
589         (__cmpsf2): Likewise.
590         (__eqdf2): Likewise.
591         (__nedf2): Likewise.
592         (__gtdf2): Likewise.
593         (__gedf2): Likewise.
594         (__ltdf2): Likewise.
595         (__ledf2): Likewise.
596         (__eqsf2): Likewise.
597         (__nesf2): Likewise.
598         (__gtsf2): Likewise.
599         (__gesf2): Likewise.
600         (__ltsf2): Likewise.
601         (__lesf2): Likewise.
602
603 2007-07-30  Ollie Wild  <aaw@google.com>
604
605         * c-ppoutput.c (print_lines_directives_only): New function.
606         (scan_translation_unit_directives_only): New function.
607         (preprocess_file): Add call to scan_translation_unit_directives_only.
608         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
609         (sanitize_cpp_opts): Add default flag_dump_macros setting for
610         -fdirectives-only.  Add errors for -fdirectives-only conflict with
611         -Wunused-macros and -traditional.
612         (finish_options): Add builtin macro initialization for
613         -fdirectives-only + -fpreprocessed.
614         * c.opt (fdirectives-only): New.
615         * doc/cppopts.texi (fdirectives-only): New.
616
617 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
618
619         * alias.c (record_set, memory_modified_1): Constify.
620         * bt-load.c (note_btr_set): Likewise.
621         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
622         * combine.c (set_nonzero_bits_and_sign_copies,
623         expand_field_assignment, record_dead_and_set_regs_1,
624         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
625         likely_spilled_retval_1): Likewise.
626         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
627         frv_io_handle_set): Likewise.
628         * config/mips/mips.c (mips_sim_record_set,
629         vr4130_true_reg_dependence_p_1): Likewise.
630         * config/mt/mt.c (insn_dependent_p_1): Likewise.
631         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
632         * config/sh/sh.c (flow_dependent_p_1): Likewise.
633         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
634         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
635         * ddg.c (mark_mem_store): Likewise.
636         * df-problems.c (df_urec_mark_reg_change): Likewise.
637         * function.c (update_epilogue_consts): Likewise.
638         * gcse.c (record_set_info, record_last_set_info,
639         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
640         reg_clear_last_set): Likewise.
641         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
642         Likewise.
643         * jump.c (reversed_comparison_code_parts): Likewise.
644         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
645         reg_is_set): Likewise.
646         * loop-iv.c (mark_altered): Likewise.
647         * mode-switching.c (reg_becomes_live): Likewise.
648         * optabs.c (no_conflict_move_test): Likewise.
649         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
650         Likewise.
651         * postreload.c (reload_combine_note_store, move2add_note_store):
652         Likewise.
653         * regmove.c (flags_set_1): Likewise.
654         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
655         Likewise.
656         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
657         Likewise. 
658         * resource.c (update_live_status): Likewise.
659         * rtl.h (set_of, note_stores): Likewise.
660         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
661         note_stores, parms_set): Likewise.
662         * sched-rgn.c (sets_likely_spilled_1): Likewise.
663         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
664         Likewise. 
665         * var-tracking.c (count_stores, add_stores): Likewise.
666
667 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
668
669         * alias.c (mems_in_disjoint_alias_sets_p,
670         fixed_scalar_and_varying_struct_p, aliases_everything_p,
671         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
672         write_dependence_p, mems_in_disjoint_alias_sets_p,
673         read_dependence, true_dependence, canon_true_dependence,
674         anti_dependence, output_dependence): Constify.
675         * combine.c (extended_count): Likewise.
676         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
677         * cselib.c (get_value_hash, references_value_p,
678         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
679         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
680         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
681         * function.c (contains, prologue_epilogue_contains,
682         sibcall_epilogue_contains): Likewise. 
683         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
684         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
685         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
686         reg_or_subregno): Likewise.
687         * recog.c (asm_noperands): Likewise.
688         * reload1.c (function_invariant_p): Likewise.
689         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
690         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
691         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
692         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
693         true_regnum, reg_or_subregno, condjump_in_parallel_p,
694         extended_count, prologue_epilogue_contains,
695         sibcall_epilogue_contains, function_invariant_p, true_dependence,
696         canon_true_dependence, read_dependence, anti_dependence,
697         output_dependence): Likewise.
698         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
699
700 2007-07-30  Julian Brown  <julian@codesourcery.com>
701
702         * config/arm/neon.md (V_ext): New mode attribute.
703         (neon_vget_lane<mode>): Replace with define_expand.
704         (neon_vget_lane<mode>_sext_internal)
705         (neon_vget_lane<mode>_zext_internal): New define_insns for double
706         and quad precision vectors.
707         (neon_vget_lanedi): Add bounds check. Remove dead comment.
708         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
709         have typeless 32-bit result.
710
711 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
712
713         PR tree-opt/32527
714         * tree-affine.h (aff_tree): The type of rest is sizetype for types
715         of pointers.
716         * tree-affine.c (aff_combination_scale): If type is a pointer type,
717         use sizetype for rest.
718         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
719         (aff_combination_convert): Don't convert rest for pointer types.
720
721 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
722
723         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
724
725         * tree-ssa-alias.c: Add alloc-pool.h.
726         (init_alias_info): Free alias_bitmap_obstack.
727         (delete_alias_info): Call delete_mem_ref_stats.
728         (get_mem_sym_stats_for): Use alloc_pool.
729         (init_mem_ref_stats): Do not delete mem_ref_stats here.
730         (delete_mem_sym_stats): Removed.
731         
732 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
733
734         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
735         functions cannot be represented as classical distance vectors.
736
737 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
738
739         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
740         * builtins.c (validate_arg, builtin_mathfn_code,
741         validate_arglist): Likewise.
742         * calls.c (call_expr_flags): Likewise.
743         * combine.c (reg_nonzero_bits_for_combine,
744         reg_num_sign_bit_copies_for_combine, get_last_value,
745         reg_truncated_to_mode): Likewise.
746         * emit-rtl.c (subreg_lowpart_p): Likewise.
747         * expr.c (highest_pow2_factor_for_target,
748         categorize_ctor_elements_1, categorize_ctor_elements,
749         count_type_elements, contains_packed_reference,
750         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
751         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
752         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
753         native_encode_int, native_encode_real, native_encode_complex,
754         native_encode_vector, native_encode_expr, native_interpret_int,
755         native_interpret_real, native_interpret_complex,
756         native_interpret_vector, native_interpret_expr): Likewise.
757         * function.c (use_register_for_decl): Likewise.
758         * gimplify.c (get_name): Likewise.
759         * langhooks-def.h (lhd_return_null_const_tree): New.
760         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
761         * langhooks.c (lhd_return_null_const_tree): New.
762         * langhooks.h (lang_get_callee_fndecl): Constify.
763         * output.h (constructor_static_from_elts_p): Likewise.
764         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
765         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
766         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
767         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
768         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
769         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
770         * rtlhooks-def.h (reg_nonzero_bits_general,
771         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
772         Likewise. 
773         * rtlhooks.c (reg_num_sign_bit_copies_general,
774         reg_nonzero_bits_general, reg_truncated_to_mode_general):
775         Likewise. 
776         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
777         * stor-layout.c (mode_for_size_tree): Likewise.
778         * tree-ssa-loop-im.c (memref_eq): Likewise.
779         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
780         * tree.c (contains_placeholder_p, type_list_equal,
781         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
782         Likewise. 
783         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
784         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
785         contains_placeholder_p, contains_packed_reference,
786         get_callee_fndecl, operand_equal_for_phi_arg_p,
787         warn_if_unused_value, is_body_block, native_encode_expr,
788         native_interpret_expr, fold_convertible_p, operand_equal_p,
789         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
790         validate_arglist, simple_cst_equal, type_list_equal,
791         use_register_for_decl, call_expr_flags, get_name,
792         highest_pow2_factor): Likewise.
793         (const_call_expr_arg_iterator_d,
794         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
795         first_const_call_expr_arg, more_const_call_expr_args_p,
796         FOR_EACH_CONST_CALL_EXPR_ARG): New.
797         * varasm.c (constructor_static_from_elts_p): Constify.
798
799 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
800
801         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
802         config/arm/neon-schedgen.ml, config/arm/neon.ml,
803         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
804         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
805         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
806         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
807         spelling conventions.
808         * doc/invoke.texi: Follow spelling conventions.
809
810 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
811             Revital Eres  <eres@il.ibm.com>
812
813         * modulo-sched.c (sms_schedule): Avoid loops which includes
814         auto-increment instructions.
815
816 2007-07-28  Richard Guenther  <rguenther@suse.de>
817
818         PR middle-end/32920
819         * fold-const.c (fold_cond_expr_with_comparison): Convert
820         operand zero of MIN/MAX_EXPR to correct type.
821
822 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
823
824         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
825         flags_from_decl_or_type): Constify.
826         * gcc.c (do_spec_1): Likewise.
827         * print-tree.c (dump_addr, print_node_brief): Likewise.
828         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
829         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
830         tree_purge_all_dead_eh_edges): Likewise.
831         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
832         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
833         Likewise. 
834         * tree.c (expr_location, expr_has_location, expr_locus,
835         expr_filename, expr_lineno, get_inner_array_type,
836         fields_compatible_p): Likewise.
837         * tree.h (get_inner_array_type, fields_compatible_p,
838         expr_location, expr_has_location, expr_locus, expr_filename,
839         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
840         setjmp_call_p, alloca_call_p): Likewise.
841
842 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
843
844         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
845         TV_FLOW_INSENSITIVE.
846
847         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
848         TV_CALL_CLOBBER.
849         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
850         (compute_flow_insensitive_aliasing): Ditto for
851         TV_FLOW_INSENSITIVE.    
852
853 2007-07-27  Jan Hubicka  <jh@suse.cz>
854
855         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
856         #if 0 block.
857
858         * attribs.c: Include hashtab.h
859         (attribute_hash): New.
860         (substring): New structure.
861         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
862         New function.
863         (init_attributes): Initialize attribute hash.
864         (decl_attributes): Use attribute hash.
865         * Makefile.in (attribs.c): Depend on hashtab.h.
866
867 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
868
869         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
870
871 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
872
873         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
874         __mips_dspr2 and __mips_dsp_rev macros.
875         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
876
877 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
878         
879        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
880
881 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
882
883         PR middle-end/32749
884         
885         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
886         and the updating of the live and do_not_gen sets.
887         (df_note_bb_compute): Added updating of live and do_not_gen sets
888         for regular defs so that the case of clobber inside conditional
889         call is processed correctly.
890         
891 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
892
893         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
894         operands with compatible type.
895
896 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
897
898         * expr.h (store_bit_field): Don't return a value.
899         * expmed.c (check_predicate_volatile_ok): New function.
900         (store_bit_field_1): New function, extracted from store_bit_field.
901         Take a fallback_p argument and return true if the operation succeeded.
902         Only use store_fixed_bit_field if fallback_p.  Don't recompute
903         mode_for_extraction; use op_mode instead.  Try forcing memories
904         into registers if the insv expander fails.
905         (store_bit_field): Use store_bit_field_1 with fallback_p true.
906         Don't return a value.
907         (convert_extracted_bit_field): New function, extracted from
908         store_bit_field.
909         (extract_bit_field_1): Likewise.  Take a fallback_p argument
910         and return NULL if the operation succeeded.  Only use
911         extract_fixed_bit_field if fallback_p.  Only calculate one
912         extraction mode.  Combine code for extv and extzv.  Try forcing
913         memories into registers if the ext(z)v expander fails.
914         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
915
916 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
917
918         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
919         into bitfields.
920         (df_ref): Likewise.  Put regno with other integer fields.
921
922 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
923
924         * df.h (df_mw_hardreg): Remove "loc" field.
925         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
926         local variable.
927         * df-problems.c (df_whole_mw_reg_unused_p): New function,
928         split out from df_set_unused_notes_for_mw.  Return false for
929         partial references.  Assert that mw_reg is a REG when returning true.
930         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
931         (df_whole_mw_reg_dead_p): New function, split out from
932         df_set_dead_notes_for_mw.  Return false for partial references.
933         Assert that mw_reg is a REG when returning true.
934         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
935         Remove redundant bitmap check.
936
937 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
938
939         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
940         ($(T)crtend.o): Likwise.
941         ($(T)crtbeginS.o): Likwise.
942         ($(T)crtendS.o): Likwise.
943         ($(T)crtfastmath.o): Likwise.
944
945 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
946
947         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
948         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
949         * basic-block.h (struct control_flow_graph): Added x_dom_computed
950         and x_n_bbs_in_dom_tree fields.
951
952 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
953
954         PR tree-optimization/32087
955         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
956         Do not call scale_bbs_frequencies_int with prob of zero.
957
958 2007-07-26  Julian Brown  <julian@codesourcery.com>
959
960         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
961         (neon_element_bits): Add prototypes.
962         * config/arm/arm.c (bounds_check, neon_lane_bounds)
963         (neon_const_bounds, neon_element_bits): New functions.
964         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
965         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
966         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
967         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
968         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
969         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
970         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
971         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
972         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
973         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
974         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
975         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
976         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
977
978 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
979
980         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
981         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
982
983 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
984             Julian Brown  <julian@codesourcery.com>
985
986         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
987         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
988         * config/arm/cortex-a8.md: New.
989         * config/arm/cortex-a8-neon.md: New.
990         * config/arm/neon-schedgen.ml: New.
991         * config/arm/neon.md (vqh_mnem): New.
992         (neon_type): New.
993         (Is_float_mode): New.
994         (Scalar_mul_8_16): New.
995         (Is_d_reg): New.
996         (V_mode_nunits): New.
997         (All instruction patterns): Annotate with neon_type attribute
998         values.
999         * config/arm/arm.md: Include cortex-a8.md.
1000         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
1001         values.
1002         Annotate instruction patterns accordingly.
1003         (generic_sched): Do not use generic scheduling for Cortex-A8.
1004         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
1005
1006 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1007
1008         * fold-const.c (fold_read_from_constant_string): Use
1009         build_int_cst_type.
1010         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1011
1012 2007-07-26  Nick Clifton  <nickc@redhat.com>
1013
1014         * tree-ssa-operands.h: Change copyright header to refer to version
1015         3 of the GNU General Public License and to point readers at the
1016         COPYING3 file and the FSF's license web page.
1017         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
1018         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
1019         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
1020         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
1021         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
1022         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
1023         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
1024         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
1025         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
1026         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
1027         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
1028         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
1029         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
1030         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
1031         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
1032         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
1033         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
1034         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
1035         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
1036         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
1037         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
1038         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
1039         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
1040         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
1041         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
1042         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
1043         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
1044         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
1045         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
1046         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
1047         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
1048         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
1049         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
1050         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
1051         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
1052         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
1053         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
1054         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
1055         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
1056         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
1057         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
1058         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
1059         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
1060         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
1061         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
1062         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
1063         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
1064         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
1065         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
1066         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
1067         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
1068         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
1069         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
1070         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
1071         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
1072         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
1073         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
1074         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
1075         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
1076         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
1077         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
1078         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
1079         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
1080         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
1081         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
1082         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
1083         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
1084         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
1085         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
1086         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
1087         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
1088         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
1089         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
1090         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
1091         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
1092         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
1093         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
1094         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
1095         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
1096         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
1097         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
1098         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
1099         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
1100         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
1101         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
1102         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
1103         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
1104         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
1105         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
1106         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
1107         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
1108         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
1109         vecprim.h, basic-block.h, tree-ssa-structalias.c,
1110         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
1111         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
1112         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
1113         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
1114         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
1115         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
1116         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
1117         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
1118         convert.c, convert.h, langhooks-def.h, reload1.c,
1119         tree-ssa-operands.c: Likewise.
1120
1121 2007-07-26  Jan Hubicka  <jh@suse.cz>
1122
1123         * tree-ssa-live.c: Include debug.h and flags.h.
1124         (mark_scope_block_unused): New function.
1125         (remove_unused_scope_block_p): New function.
1126         (remove_unused_locals): Remove unused blocks too.
1127
1128 2007-07-25  Ian Lance Taylor  <iant@google.com>
1129
1130         * combine.c (combine_max_regno): Remove.  Remove all uses.
1131         (struct reg_stat_struct): Rename from struct reg_stat.
1132         (reg_stat_type): Define, and declare VECs.
1133         (reg_stat): Change from pointer to VEC.  Change all uses.
1134         (combine_split_insns): New static function.
1135         (try_combine, find_split_point): Call it instead of split_insns.
1136
1137 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1138
1139         * cfghooks.c (split_block): Fix the information about loop latch.
1140
1141 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1142
1143         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
1144
1145 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1146
1147         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1148         Scan the new edge for loop exit info.
1149
1150 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
1151
1152         * config/darwin.c: Include debug.h.
1153
1154 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
1155
1156         PR target/32218
1157         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
1158
1159 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
1160
1161         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
1162         (HARD_REGNO_MODE_OK): Ditto.
1163         (MODES_TIEABLE_P): Ditto.
1164         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
1165         (CLASS_MAX_NREGS): Ditto.
1166         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
1167         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
1168         (divdf3_internal_thr): Removed.
1169         * config/ia64/div.md: New file.
1170         * config/ia64/constraints.md: Add H constraint.
1171
1172 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1173
1174         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
1175         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
1176         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
1177         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
1178         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
1179         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
1180         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
1181         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
1182         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
1183         dump_sbitmap_file, debug_sbitmap, popcount_table,
1184         sbitmap_popcount): Constify.
1185         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
1186         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
1187         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
1188         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
1189         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
1190         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
1191         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
1192         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
1193         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
1194         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
1195         sbitmap_popcount, sbitmap_verify_popcount): Constify.
1196
1197 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1198
1199         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
1200         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
1201         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
1202         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
1203         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
1204         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
1205         bitmap_intersect_p, bitmap_intersect_compl_p,
1206         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
1207         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
1208         Constify.
1209         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
1210         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
1211         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
1212         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
1213         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
1214         debug_bitmap, debug_bitmap_file, bitmap_print,
1215         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
1216         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
1217
1218 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
1219
1220         * config/darwin.c (darwin_override_options): Additional fix for
1221         debug info formats that don't support var tracking.
1222
1223 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1224
1225         * cselib.c (entry_and_rtx_equal_p): Constify.
1226         * gengtype.c (output_mangled_typename, write_types, write_local):
1227         Likewise.
1228         * gengtype.h (const_type_p): New.
1229         * see.c (eq_descriptor_extension, hash_descriptor_extension):
1230         Constify.
1231         * tlink.c (scan_linker_output): De-constify.
1232         * tree-ssa-loop-im.c (memref_eq): Constify.
1233         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
1234         (shared_bitmap_hash, shared_bitmap_eq): Constify.
1235
1236 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1237
1238         * c-common.c (fname_as_string, c_type_hash): Constify.
1239         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1240         * cgraph.c (edge_hash, edge_eq): Likewise.
1241         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
1242         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
1243         reg_attrs_htab_eq): Likewise.
1244         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
1245         Likewise.
1246         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
1247         const_decl_t, const_state_t, const_automata_list_el_t): New.
1248         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
1249         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
1250         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
1251         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
1252         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
1253         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
1254         compare_max_occ_cycle_nums, out_state_arcs_num,
1255         compare_transition_els_num, units_cmp, state_reservs_cmp):
1256         Constify.
1257         * genmodes.c (cmp_modes): Likewise.
1258         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
1259         * gimplify.c (compare_case_labels): Likewise.
1260         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
1261         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
1262         * matrix-reorg.c (mtt_info_hash): Likewise.
1263         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
1264         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
1265         (htab_hash_bucket, htab_hash_elem): Constify.
1266         * tree-browser.c (TB_parent_eq): Likewise.
1267         * tree-scalar-evolution.c (hash_scev_info): Likewise.
1268         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
1269         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
1270         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
1271         Constify.
1272         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
1273         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
1274         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
1275         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
1276         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
1277         New.
1278         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
1279         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
1280         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
1281         * tree-ssa-threadupdate.c (redirection_data_hash,
1282         redirection_data_eq): Likewise. 
1283         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
1284         * tree-ssa.c (var_ann_eq): Likewise.
1285         * tree-vrp.c (compare_case_labels): Likewise.
1286         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
1287         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
1288         tree_not_check_failed, tree_class_check_failed,
1289         tree_range_check_failed, tree_not_class_check_failed,
1290         omp_clause_check_failed, omp_clause_range_check_failed,
1291         tree_contains_struct_check_failed, tree_operand_check_failed):
1292         Likewise. 
1293         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
1294         tree_not_check_failed, tree_class_check_failed,
1295         tree_range_check_failed, tree_not_class_check_failed,
1296         tree_operand_check_failed, omp_clause_operand_check_failed,
1297         tree_operand_length): Likewise. 
1298         * var-tracking.c (const_variable): New.
1299         (variable_htab_hash, variable_htab_eq): Constify.
1300         * varasm.c (const_desc_hash): Likewise.
1301
1302 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1303
1304         * expr.c (handled_component_p): Constify.
1305         * fold-const.c (fit_double_type): Likewise.
1306         * real.h (real_value_from_int_cst): Likewise.
1307         * tree-flow-inline.h (gimple_in_ssa_p,
1308         gimple_aliases_computed_p, gimple_addressable_vars,
1309         gimple_call_clobbered_vars, gimple_referenced_vars,
1310         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
1311         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
1312         may_aliases, end_readonly_imm_use_p, has_zero_uses,
1313         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
1314         is_label_stmt, is_global_var, phi_ssa_name_p,
1315         factoring_name_p, is_call_clobbered, tree_common_ann,
1316         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
1317         unmodifiable_var_p, array_ref_contains_indirect_ref,
1318         ref_contains_array_ref, lookup_subvars_for_var,
1319         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
1320         gimple_mem_ref_stats): Likewise.
1321         * tree-flow.h (tree_common_ann, var_ann, function_ann,
1322         may_aliases, is_exec_stmt, is_label_stmt,
1323         ref_contains_array_ref, array_ref_contains_indirect_ref,
1324         var_can_have_subvars, overlap_subvar, is_call_clobbered,
1325         unmodifiable_var_p): Likewise.
1326         * tree-gimple.c (is_gimple_min_invariant): Likewise.
1327         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
1328         * tree.c (type_hash_list, attribute_hash_list, tree_size,
1329         cst_and_fits_in_hwi, real_value_from_int_cst,
1330         build_real_from_int_cst, integer_zerop, integer_onep,
1331         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
1332         tree_floor_log2, real_zerop, real_onep, real_twop,
1333         real_minus_onep, really_constant_p, purpose_member, chain_member,
1334         list_length, fields_length, int_size_in_bytes, bit_position,
1335         int_bit_position, byte_position, int_byte_position, expr_align,
1336         array_type_nelts, tree_node_structure,
1337         type_contains_placeholder_1, iterative_hash_pointer,
1338         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
1339         tree_map_base_eq, type_hash_list, type_hash_eq,
1340         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
1341         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
1342         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
1343         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
1344         int_fits_type_p, get_containing_scope, decl_function_context,
1345         decl_type_context, omp_clause_operand_check_failed,
1346         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
1347         * tree.h (omp_clause_operand_check_failed, tree_size,
1348         build_real_from_int_cst, array_type_nelts, purpose_member,
1349         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
1350         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
1351         is_attribute_p, check_qualified_type, expr_align,
1352         int_size_in_bytes, bit_position, int_bit_position, byte_position,
1353         int_byte_position, list_length, fields_length, initializer_zerop,
1354         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
1355         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
1356         tree_node_structure, handled_component_p, get_containing_scope,
1357         decl_function_context, decl_type_context, real_zerop,
1358         type_num_arguments, fit_double_type, really_constant_p,
1359         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
1360         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
1361         real_twop, real_minus_onep, int_cst_value): Likewise.
1362
1363 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1364
1365         * cfglayout.c (insn_scope, insn_line): Constify.
1366         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
1367         const_double_htab_hash, const_double_htab_eq,
1368         mem_attrs_htab_hash): Likewise.
1369         * loop-iv.c (biv_eq): Likewise.
1370         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
1371         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
1372         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
1373         Likewise. 
1374         * rtl-error.c (location_for_asm, diagnostic_for_asm,
1375         error_for_asm, warning_for_asm, _fatal_insn,
1376         _fatal_insn_not_found): Likewise. 
1377         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
1378         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
1379         rtl_check_failed_type2, rtl_check_failed_code1,
1380         rtl_check_failed_code2, rtl_check_failed_code_mode,
1381         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
1382         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
1383         rtl_check_failed_type2, rtl_check_failed_code1,
1384         rtl_check_failed_code2, rtl_check_failed_code_mode,
1385         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
1386         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
1387         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
1388         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
1389         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
1390         rtx_unstable_p, get_integer_term, get_related_value,
1391         offset_within_block_p, reg_mentioned_p, count_occurrences,
1392         reg_referenced_p, reg_used_between_p, no_labels_between_p,
1393         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
1394         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
1395         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
1396         find_constant_src, find_reg_fusage, find_regno_fusage,
1397         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
1398         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
1399         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
1400         computed_jump_p, auto_inc_p, in_expr_list_p,
1401         remove_node_from_expr_list, loc_mentioned_in_p,
1402         label_is_jump_target_p, reversed_comparison_code_parts,
1403         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
1404         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
1405         print_inline_rtx): Likewise.
1406         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
1407         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
1408         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
1409         get_integer_term, get_related_value, offset_within_block_p,
1410         count_occurrences, reg_mentioned_p, no_labels_between_p,
1411         reg_used_between_p, reg_referenced_p, single_set_2,
1412         multiple_sets, set_noop_p, refers_to_regno_p,
1413         reg_overlap_mentioned_p, dead_or_set_p,
1414         covers_regno_no_parallel_p, covers_regno_p,
1415         dead_or_set_regno_p, find_reg_note, find_regno_note,
1416         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
1417         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
1418         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
1419         side_effects_p, may_trap_p_1, may_trap_p,
1420         may_trap_after_code_motion_p, may_trap_or_fault_p,
1421         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
1422         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
1423         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
1424         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
1425         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
1426         Likewise. 
1427         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
1428         warning_for_asm): Likewise.
1429         * tree.h (print_rtl): Likewise.
1430         * varasm.c (get_pool_mode): Likewise.
1431
1432 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1433
1434         * c-lex.c (c_lex_with_flags, lex_string): Constify.
1435         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
1436         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1437         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
1438         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
1439         * ddg.c (compare_sccs): Likewise.
1440         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
1441         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
1442         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
1443         decimal_do_fix_trunc, decimal_real_to_integer,
1444         decimal_real_to_integer2, decimal_real_maxval): Likewise.
1445         * dse.c (const_group_info_t): New.
1446         (invariant_group_base_eq, invariant_group_base_hash): Constify.
1447         * dwarf2out.c (const_dw_die_ref): New.
1448         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
1449         * tree-browser.c (TB_parent_eq): Likewise.
1450         * unwind-dw2-fde.c (__register_frame_info_bases,
1451         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
1452         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
1453         Likewise.
1454         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
1455         * unwind-dw2.c (uw_frame_state_for): Likewise.
1456         * value-prof.c (histogram_hash, histogram_eq): Likewise.
1457         * value-prof.h (const_histogram_value): New.
1458
1459 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
1460
1461         * config/mips/mips.c (machine_function): Add
1462         initialized_mips16_gp_pseudo_p.
1463         (mips16_gp_pseudo_reg): Do not emit the initialization of
1464         mips16_gp_pseudo_rtx when being called from the gimple cost-
1465         calculation routines; emit it on the first use outside those
1466         routines.
1467
1468 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1469
1470         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
1471         New.
1472         
1473         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1474         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
1475         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
1476         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
1477         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
1478         Preserve const-ness of parameters through use of __typeof(),
1479         also constify and tidy.
1480         
1481         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
1482         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
1483         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
1484         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
1485         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
1486         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
1487         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
1488         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
1489         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
1490
1491 2007-07-25  Julian Brown  <julian@codesourcery.com>
1492             Mark Shinwell  <shinwell@codesourcery.com>
1493
1494         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
1495         (alpha_mangle_type): This.
1496         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1497         (TARGET_MANGLE_TYPE): Define this instead.
1498         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
1499         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
1500         (arm_init_neon_builtins): Fix comment.
1501         (arm_mangle_map_entry): New.
1502         (arm_mangle_map): New.
1503         (arm_mangle_type): New.
1504         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
1505         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
1506         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1507         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1508         (TARGET_MANGLE_TYPE): Define this instead.
1509         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
1510         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
1511         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1512         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1513         (TARGET_MANGLE_TYPE): Define this instead.
1514         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
1515         to...
1516         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
1517         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1518         (TARGET_MANGLE_TYPE): Define this instead.
1519         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
1520         (s390_mangle_type): This.
1521         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1522         (TARGET_MANGLE_TYPE): Define this instead.
1523         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
1524         (sparc_mangle_type): This.
1525         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1526         (TARGET_MANGLE_TYPE): Define this instead.
1527         * cp/mangle.c (write_type): Call mangle_type target hook on all
1528         types before mangling.  Use original type, not main variant, as
1529         argument.
1530         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
1531         (TARGET_MANGLE_TYPE): This.
1532         * target.h (gcc_target): Rename mangle_fundamental_type to
1533         mangle_type.
1534         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
1535         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
1536
1537 2007-07-25  Julian Brown  <julian@codesourcery.com>
1538             Paul Brook  <paul@codesourcery.com>
1539             Joseph Myers  <joseph@codesourcery.com>
1540             Mark Shinwell  <shinwell@codesourcery.com>
1541
1542         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
1543         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
1544         (with_fpu): Allow --with-fpu=neon.
1545         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1546         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1547         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
1548         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
1549         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
1550         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
1551         (neon_emit_pair_result_insn, neon_disambiguate_copy)
1552         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
1553         (output_move_neon): Add prototypes.
1554         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
1555         (all_fpus): Add FPUTYPE_NEON.
1556         (fp_model_for_fpu): Add NEON field.
1557         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
1558         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
1559         in registers.
1560         (arm_legitimate_address_p): Don't support fancy addressing for NEON
1561         structure moves.
1562         (thumb2_legitimate_address_p): Likewise.
1563         (neon_valid_immediate): Recognize and prepare constants suitable for
1564         NEON instructions.
1565         (neon_immediate_valid_for_move): New function. Recognize and prepare
1566         immediates for NEON move instructions.
1567         (neon_immediate_valid_for_logic): New function. Recognize and
1568         prepare immediates for NEON logic instructions.
1569         (neon_output_logic_immediate): New function. Create asm string
1570         suitable for outputting immediate logic instructions.
1571         (neon_pairwise_reduce): New function. Implement reduction using
1572         pairwise operations.
1573         (neon_expand_vector_init): New function. Expand a (possibly
1574         non-constant) vector initialization.
1575         (neon_vector_mem_operand): New function. Memory operands supported
1576         for quad-word loads/stores to/from ARM or NEON registers. Don't
1577         allow base+offset addressing for core regs.
1578         (neon_struct_mem_operand): New function. Valid mems for NEON
1579         structure moves.
1580         (coproc_secondary_reload_class): Enable NEON registers to be loaded
1581         from neon_vector_mem_operand addresses without a secondary register.
1582         (add_minipool_forward_ref): Handle >8-byte minipool entries.
1583         (add_minipool_backward_ref): Likewise.
1584         (dump_minipool): Likewise.
1585         (push_minipool_fix): Likewise.
1586         (output_move_quad): New function. Output quad-word moves, loads and
1587         stores using ARM registers.
1588         (output_move_vfp): Add support for vectors in VFP (NEON) D
1589         registers.
1590         (output_move_neon): Output a NEON load/store to/from a quadword
1591         register.
1592         (arm_print_operand): Implement new codes:
1593         - 'c' for unadorned integers (without a # sign).
1594         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
1595         mode.
1596         - 'e', 'f' for the low and high D parts of a NEON Q register.
1597         - 'q' outputs a NEON Q register.
1598         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
1599         - 'T' prints NEON opcode features from a coded bitmask.
1600         - 'F' is similar to T, but signed/unsigned codes both print as
1601         'i'.
1602         - 't' is similar to T, but 'u' is printed instead of 'p'.
1603         - 'O' prints 'r' if NEON instruction should perform rounding (as
1604         specified by bitmask), else prints nothing.
1605         - '#' is a punctuation character to stop operand numbers from
1606         running together with following digits in the assembler
1607         strings for instructions (when using mode attributes).
1608         (arm_assemble_integer): Handle extra NEON vector modes. Permute
1609         constant vectors in big-endian mode, where necessary.
1610         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
1611         Handle EI, OI, CI, XI modes.
1612         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
1613         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
1614         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
1615         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
1616         (neon_builtin_type_bits): Add enumeration, one bit for each vector
1617         type.
1618         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
1619         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
1620         to turn v8qi, etc. into bits defined above.
1621         (neon_itype): New enumeration. Classifications of NEON builtins.
1622         (neon_builtin_datum): Define struct. Contains information about
1623         a single builtin (with multiple modes).
1624         (CF): Define helper macro for...
1625         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
1626         modes.
1627         (neon_builtin_data): New array. Define information about builtins
1628         for use during initialization/expansion.
1629         (arm_init_neon_builtins): New function.
1630         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
1631         true.
1632         (neon_builtin_compare): New function.
1633         (locate_neon_builtin_icode): New function. Find an insn code for a
1634         builtin given a function code for that builtin. Also return type of
1635         builtin (NEON_BINOP, NEON_UNOP etc.).
1636         (builtin_arg): New enumeration. Types of arguments for builtins.
1637         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
1638         Takes a variable argument list of builtin_arg types, terminated by
1639         NEON_ARG_STOP.
1640         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
1641         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
1642         (neon_emit_pair_result_insn): New function. Support returning pairs
1643         of vectors via a pointer.
1644         (neon_disambiguate_copy): New function. Set up operands for a
1645         multi-word copy such that registers do not get clobbered.
1646         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
1647         ARM_BUILTIN_NEON_BASE.
1648         (arm_file_start): Set float-abi attribute for NEON.
1649         (arm_vector_mode_supported_p): Enable NEON vector modes.
1650         (arm_mangle_map_entry): New.
1651         (arm_mangle_map): New.
1652         (arm_mangle_vector_type): New.
1653         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
1654         when appropriate.
1655         (TARGET_NEON): New macro. Target supports NEON.
1656         (fputype): Add FPUTYPE_NEON.
1657         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
1658         for vectorization based on command-line arg.
1659         (NEON_REGNO_OK_FOR_NREGS): Define.
1660         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
1661         (VALID_NEON_STRUCT_MODE): Define.
1662         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
1663         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
1664         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
1665         (consttable_16): Add pattern for outputting 16-byte minipool
1666         entries.
1667         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
1668         vec-common.md).
1669         (vec-common.md, neon.md): Include md files.
1670         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
1671         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
1672         (memory_constraint "Ut", "Un", "Us"): Define.
1673         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
1674         (MMX_char): New mode attribute.
1675         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
1676         (*add<mode>3_iwmmxt): New insn pattern.
1677         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
1678         (*sub<mode>3_iwmmxt): New insn pattern.
1679         (mulv4hi3): Rename to...
1680         (*mulv4hi3_iwmmxt): This.
1681         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
1682         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
1683         (uminv4hi3, uminv2si3): Remove. Replace with...
1684         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
1685         (*umin<mode>3_iwmmxt): These.
1686         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
1687         (ashr<mode>3_iwmmxt): This new pattern.
1688         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
1689         (lshr<mode>3_iwmmxt): This new pattern.
1690         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
1691         (ashl<mode>3_iwmmxt): This new pattern.
1692         * config/arm/neon-docgen.ml: New file. Generate documentation for
1693         intrinsics.
1694         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
1695         * config/arm/arm_neon.h: New (autogenerated).
1696         * config/arm/neon-testgen.ml: New file. Generate NEON tests
1697         automatically.
1698         * config/arm/neon.md: New file. Define NEON instructions.
1699         * config/arm/neon.ml: New file. Abstract description of NEON
1700         instructions, used to generate arm_neon.h header, documentation and
1701         tests.
1702         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
1703         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
1704         support.
1705         * doc/extend.texi (ARM Built-in Functions): Rename and remove
1706         extraneous comma.
1707         (ARM NEON Intrinsics): New subsection.
1708         * doc/arm-neon-intrinsics.texi: New (autogenerated).
1709
1710 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
1711
1712         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
1713         prototype.
1714
1715 2007-07-24  Jan Hubicka  <jh@suse.cz>
1716
1717         * regclass.c (move_table): New type.
1718         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
1719         (init_move_cost): Break out from ...
1720         (init_reg_sets_1): ... here; simplify computation of
1721         have_regs-of_mode and contains_reg_of_mode.
1722         (record_reg_classes): Unswitch internal loops.
1723         (copy_cost): Trigger lazy initialization of move cost
1724         (record_address_regs): Likewise.
1725
1726 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
1727
1728         * config/darwin.c (darwin_override_options): Don't force on
1729         flag_var_tracking_uninit when no debug info is requested.
1730
1731 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1732
1733         * cfgloop.c (init_loops_structure): New function.
1734         (flow_loops_find): Create root of the loop tree unconditionally.
1735
1736 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
1737
1738         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1739
1740 2007-07-24  Jan Hubicka  <jh@suse.cz>
1741
1742         * caller-save.c: Include ggc.h, gt-caller-save.h
1743         (reg_save_code, reg_restore_code): Rename to ...
1744         (cached_reg_save_code, cached_reg_restore_code): ... those.
1745         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
1746         (reg_save_code, reg_restore_code): New functions.
1747         (init_caller_save): Do not intialize
1748         reg_save_code/reg_restore_code tables.
1749         * Makefile.in: (gt-caller-save.h): New.
1750
1751 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1752
1753         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1754         with the mode of the original operand instead of
1755         integer_one_node.
1756
1757 2007-07-23  Jan Hubicka  <jH@suse.cz>
1758
1759         * i386.c (ix86_secondary_memory_needed): Break out to...
1760         (inline_secondary_memory_needed): ... here.
1761         (ix86_memory_move_cost): Break out to ...
1762         (inline_memory_move_cost): ... here; add support for IN value of 2 for
1763         maximum of input and output; fix handling of Q_REGS on 64bit.
1764         (ix86_secondary_memory_needed): Microoptimize.
1765
1766 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
1767
1768         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
1769         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1770         stmts_from_loop, known_dependences_p, build_rdg): New.
1771         * tree-data-ref.h: Depends on graphds.h.
1772         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
1773         (build_rdg): Declared.
1774         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
1775
1776 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
1777
1778         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1779         ccp_min_invariant.
1780
1781 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
1782             Jakub Jelinek  <jakub@redhat.com>
1783
1784         PR middle-end/PR28690
1785         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
1786         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
1787         and MEM_POINTER operands over REG and MEM operands.
1788         (swap_commutative_operands_p): Change return value to bool.
1789         * rtl.h: Update the corresponding prototype.
1790         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
1791         instead of gen_rtx_PLUS.
1792         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
1793         value to bool.  Change function arguments to rtx's and update code
1794         to match.
1795         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
1796         calls to match the new declaration.
1797         * simplify-rtx.c (simplify_associative_operation): Don't
1798         reorder simplify_binary_operation arguments.
1799
1800 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1801
1802         * config/mips/mips.c (override_options): Use mips_costs to derive
1803         the default branch cost.
1804         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
1805         than mips_costs.
1806         * config/mips/mips.opt (mbranch-cost=): New option.
1807         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1808
1809 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1810
1811         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
1812         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
1813         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
1814         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
1815
1816 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1817
1818         * config/mips/constraints.md (ks): New constraint.
1819         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
1820         (*add<mode>3_mips16): ...here.
1821
1822 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
1823
1824         * optabs.h (enum optab_index): Add new OTI_signbit.
1825         (signbit_optab): Define corresponding macro.
1826         (enum insn_code signbit_optab[]): Remove array.
1827         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
1828         (expand_copysign_absneg): If back end provides signbit insn, use it
1829         instead of bit operations on floating point argument.
1830         * builtins.c (enum insn_code signbit_optab[]): Remove array.
1831         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
1832         availability of signbit insn.
1833
1834         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
1835         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
1836         SSE mode is not active.
1837         (isinf<mode>2): Disable for mfpmath=sse,387.
1838
1839 2007-07-22  Ben Elliston  <bje@au.ibm.com>
1840
1841         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
1842         `class' parameter.
1843         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
1844
1845 2007-07-20  Richard Guenther  <rguenther@suse.de>
1846
1847         * tree-cfg.c (verify_expr): COND_EXPRs can have any
1848         integral typed condition.
1849         * tree-ssa.c (useless_type_conversion_p): Do not preserve
1850         booleanness.  Only preserve conversions from a non-base
1851         type to a base type, not in general between types with
1852         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
1853         * tree.def (COND_EXPR): Document that the condition
1854         can be of any integral type.
1855
1856 2007-07-20  Nigel Stephens  <nigel@mips.com>
1857             Richard Sandiford  <richard@codesourcery.com>
1858
1859         * config/mips/mips.h (mips_dwarf_regno): Declare.
1860         (DBX_REGISTER_NUMBER): Remove redundant brackets.
1861         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
1862         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
1863         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
1864         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1865         (REG_CLASS_NAMES): Update accordingly.
1866         * config/mips/mips.c (mips_dwarf_regno): New array.
1867         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1868         (mips_subword): Remove special handling for accumulator registers.
1869         (override_options): Initiailize mips_dwarf_regno.  Remove use
1870         of ACC_HI_REG_P.
1871         (mips_swap_registers): New function.
1872         (mips_conditional_register_usage): Swap accumulator registers
1873         around if TARGET_LITTLE_ENDIAN.
1874         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
1875         * config/mips/constraints.md (h, l): Use the endianness to choose
1876         between MD0_REG and MD1_REG.
1877         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
1878         alternative-dependent template.
1879
1880 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
1881
1882         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
1883         no_new_pseudos.
1884
1885 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1886
1887         * function.c (thread_prologue_and_epilogue_insns): Fix exit
1888         predecessor fallthru flags.
1889
1890 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1891
1892         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
1893         of compare to the same type.
1894         * cfgloopmanip.c (add_loop): Update information about loop exits.
1895         (loop_version): Remove the innermost loop requirement.
1896         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
1897         to sizetype for pointers.
1898
1899 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1900
1901         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
1902         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
1903         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
1904
1905         * config/dfp-bit.c: Empty for TFmode conversions.
1906
1907 2007-07-18  Caroline Tice  <ctice@apple.com>
1908         
1909         * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
1910         and handle them correctly; check that src is not NULL before
1911         trying to use it.
1912         (find_src_set_src): Likewise.
1913         
1914 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
1915         
1916         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
1917         (struct alignment_context, init_alignment_context): New.
1918         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
1919         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
1920         (XCHAL_HAVE_S32C1I): Likewise.
1921         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
1922         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
1923         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
1924         (ATOMIC, HQI): New macros.
1925         (memory_barrier, *memory_barrier): New.
1926         (sync_lock_releasesi): New.
1927         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
1928         (sync_lock_test_and_set<mode>): New.
1929         (sync_<atomic><mode>): New.
1930         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
1931         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
1932         (xtensa_expand_atomic): New.
1933         
1934 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1935
1936         PR target/30652
1937
1938         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
1939         transformation for builtin ISNORMAL.
1940         (expand_builtin): Handle BUILT_IN_ISNORMAL.
1941         * builtins.def (BUILT_IN_ISNORMAL): New.
1942         * doc/extend.texi: Document isnormal.
1943
1944 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1945
1946         PR target/30652
1947
1948         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
1949         optabs infrastructure.  Provide generic implementation for
1950         FINITE/ISFINITE.
1951         (expand_builtin): Handle FINITE/ISFINITE.
1952         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
1953         (fold_builtin_1): Likewise.
1954
1955         * builtins.def (BUILT_IN_ISFINITE): New.
1956
1957         * doc/extend.texi: Document isfinite.
1958
1959 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1960
1961         PR target/30652
1962         PR middle-end/20558
1963
1964         * builtins.c (expand_builtin_interclass_mathfn): Provide a
1965         generic fallback for isinf.
1966         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
1967         calculation code ...
1968         * real.c (get_max_float): ... to here.
1969         * real.h (get_max_float): New.
1970
1971 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1972
1973         PR middle-end/32668
1974
1975         * builtin-attrs.def (ATTR_TYPEGENERIC,
1976         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
1977
1978         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
1979         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1980         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
1981         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
1982
1983         * c-common.c (handle_type_generic_attribute): New.
1984         (c_common_attribute_table): Add "type generic".
1985
1986         * c-typeck.c (convert_arguments): Handle "type generic" functions.
1987
1988 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
1989
1990         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
1991         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
1992         properly.
1993
1994 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1995
1996         PR target/32808
1997         * config/cris/cris.c (cris_print_index): Don't use XEXP before
1998         checking that the operand is an expression.
1999
2000 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
2001             Danny Smith  <dannysmith@users.sourceforge.net>
2002
2003         PR/other 30335
2004         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
2005         file mapping object in local namespace if Windows version later
2006         than NT4
2007
2008 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2009
2010         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
2011         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
2012         arm_cannot_force_const_mem.
2013         (arm_cannot_force_const_mem): New function.
2014         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
2015         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
2016         of arm_tls_referenced_p.
2017         * config/arm/arm.md (movsi): Split out-of-section constants when
2018         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
2019         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
2020
2021 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2022
2023         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
2024
2025 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2026
2027         * config/mips/mips.md (*extendqihi2): Convert the destination
2028         to SImode.
2029
2030 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2031
2032         * config/pa/fptr.c: Update license header.
2033         * config/pa/milli64.S: Likewise.
2034
2035 2007-07-17  Nick Clifton  <nickc@redhat.com>
2036
2037         * COPYING_v3: New file.  Contains version 3 of the GNU General
2038         Public License.
2039         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
2040         Lesser General Public License.
2041         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
2042         the GNU General Public License.
2043
2044 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
2045
2046         PR rtl-optimization/32773
2047         * cfglayout.c (force_one_exit_fallthru): New function.
2048         (cfg_layout_finalize): Use it.
2049
2050 2007-07-16  Richard Guenther  <rguenther@suse.de>
2051             Uros Bizjak  <ubizjak@gmail.com>
2052
2053         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
2054         before forcing it to gimple operand.
2055
2056 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2057             David Ung  <davidu@mips.com>
2058
2059         * config/mips/mips.h (TUNE_24K): Define.
2060         (TUNE_MACC_CHAINS): Add TUNE_24K.
2061         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
2062         imadd.
2063         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
2064         (r74k_int_madd): .. this new reservation.
2065         (define_bypass): Fixed bypasses for r74k_int_madd to use
2066         mips_linked_madd_p.
2067         * config/mips/24k.md (define_bypass): Define new
2068         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
2069
2070 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2071             Nigel Stephens  <nigel@mips.com>
2072
2073         * config/mips/mips.md:  Include 20kc.md.
2074         * config/mips/20kc.md: New file.
2075         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
2076         (mips_adjust_cost): Tweak for 20Kc.
2077         (mips_issue_rate): Likewise.
2078         * config/mips/mips.h (TUNE_20KC): Define.
2079
2080 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
2081
2082         * config/rs6000/rs6000.c (struct processor_cost): Add
2083         cache_line_size, l1_cache_lines, and simultaneous_prefetches
2084         fields.
2085         (*_cost): Add cache information.
2086         (rs6000_override_options): Set cache parameters.
2087
2088 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2089
2090         PR bootstrap/3456
2091         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
2092         * doc/install.texi (mips-sgi-irix6): pthread support works now.
2093
2094 2007-07-16  Paul Brook  <paul@codesourcery.com>
2095
2096         PR target/32753
2097         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
2098         (cirrus_thumb2_movsi_insn): Ditto.
2099
2100 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
2101
2102         * config/rs6000/darwin-fallback.c (interpret_libc): Change
2103         CR2_REGNO to R_CR2.
2104
2105 2007-07-15  Andrew Haley  <aph@redhat.com>
2106
2107         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
2108         before looking in the context.
2109
2110 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2111
2112         PR middle-end/32398
2113         PR middle-end/32769
2114         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
2115         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
2116         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2117         (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
2118         to generate .CALLINFO statement.
2119         (hppa_expand_prologue): Set rp_saved.
2120         (hppa_expand_epilogue): Use rp_saved.
2121         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
2122         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
2123
2124 2007-07-14  Dirk Mueller  <dmueller@suse.de>
2125
2126         * omega.c (coalesce): Fix memory leak on early exit.
2127         * matrix-reorg.c (check_allocation_function): Likewise.
2128         * tree-vect-transform.c (vect_get_new_vect_var): free result
2129         of concat().
2130         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2131         pass pointer to edge vector
2132         (partition_hot_cold_basic_blocks): Fix memory leak.
2133         * collect2.c (prefix_from_string): Free temporary storage.
2134         * reload1.c (fixup_abnormal_edges): Free sbitmap.
2135
2136 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2137
2138         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
2139         (DO_GLOBAL_DTORS_BODY): Likewise.
2140
2141 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
2142             Nigel Stephens  <nigel@mips.com>
2143
2144         * config/mips/mips.c (mips_classify_symbol): Don't return
2145         SYMBOL_SMALL_DATA for constant pool addresses if
2146         TARGET_EMBEDDED_DATA is true.
2147
2148 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
2149
2150         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
2151         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
2152         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
2153         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
2154         __builtin_ia32_storehps, __builtin_ia32_storelps,
2155         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
2156         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
2157         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
2158         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
2159         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
2160         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
2161         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
2162         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
2163         using def_builtin_const.
2164
2165 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
2166
2167         PR tree-optimization/32705
2168         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
2169         (simplify_binary_expression): Use SSA_VAL consistently.
2170
2171 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
2172
2173         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
2174         (SPEFSCR_REGNO): Delete definition.
2175         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
2176         COUNT_REGISTER_REGNUM -> CTR_REGNO.
2177         * config/rs6000/rs6000.h: Do not define *_REGNO.
2178         LINK_REGISTER_REGNUM -> LR_REGNO.
2179         COUNT_REGISTER_REGNUM -> CTR_REGNO.
2180         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
2181         COUNT_REGISTER_REGNUM -> CTR_REGNO.
2182         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
2183         R_VRSAVE, R_VSCR. Use them.
2184         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
2185         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
2186         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
2187         * config/rs6000/aix.h: Define R_LR.  Use it.
2188         
2189 2007-07-13  Caroline Tice  <ctice@apple.com>
2190         
2191         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
2192         flag_var_tracking is explicitly turned off (i.e. when variable
2193         tracking is not feasible); otherwise, turn flag_var_tracking on when
2194         flag_var_tracking_uninit is on.
2195         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
2196         note definitions, to allow recording of initialization status in the
2197         notes.
2198         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
2199         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
2200         determine if two note locations are equal.
2201         (output_loc_list): Don't output list entries whose start & end labels
2202         are the same.
2203         (reg_loc_descriptor): Add parameter for initialization status; pass it
2204         to other loc descriptor functions.
2205         (one_reg_loc_descriptor): Add parameter for initialization status;
2206         check its value and add DW_OP_GNU_uninit to returned loc descr if
2207         appropriate.
2208         (multiple_reg_loc_descriptor): Add parameter for initialization
2209         status;
2210         pass init status argument to other loc descriptor functions; check
2211         value of intialization parameter and add DW_OP_GNU_uninit to returned
2212         loc descr if appropriate.
2213         (based_loc_descr): Add parameter for initialization status; add new
2214         variable for return value; check value of initialization parameter and
2215         add DW_OP_GNU_uninit to returned loc descr if appropriate.
2216         (concatn_mem_loc_descriptor): Add parameter for initialization status;
2217         pass init status argument to other loc descriptor functions; check
2218         value of intialization parameter and add DW_OP_GNU_uninit to returned
2219         loc descr if appropriate.
2220         (mem_loc_descriptor): Likewise.
2221         (concat_loc_descriptor): Likewise.
2222         (concatn_loc_descriptor): Likewise.
2223         (loc_descriptor): Add parameter for initialization status; pass it as
2224         argument to other loc descriptor function calls.
2225         (loc_descriptor_from_tree_1): Add appropriate initialization status
2226         to loc descriptor function calls.
2227         (add_location_or_const_value_attribute): Get initialization status
2228         from VAR_LOCATION note; add initialization status to loc descriptor
2229         function calls.
2230         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
2231         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
2232         status is uninitialized, add "[uninint]" to output.
2233         * common.opt (fvar-tracking-uninit): New option, similar to
2234         fvar-tracking, to turn on tracking of uninitialized variables; creates
2235         a new global flag, flag_var_tracking_uninit.
2236         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
2237         (enum var_init_status): New type, for var initialization status field.
2238         * var-tracking.c (struct location_chain_def): Two new fields, init,
2239         for initialization status, and set_src for the assignment value expr.
2240         (unshare_variable): New parameter for initialization status;
2241         initialize new init and set_src fields.
2242         (var_reg_set): New parameters for initialization status and value;
2243         pass them to set_variable_part.
2244         (var_mem_set): Likewise.
2245         (get_init_value): New function.
2246         (var_reg_delete_and_set): New initialization status & value
2247         parameters; add call to get_init_value if status is unknown; pass new
2248         parameters to clobber_variable_part and var_reg_set.
2249         (var_mem_delete_and_set): Likewise.
2250         (var_reg_delete): Pass null set_src value to clobber_variable_part.
2251         (var_mem_delete): Likewise.
2252         (variable_union): Pass status to unshare_variable; initialize new init
2253         and set_src fields. If flag_var_tracking_uninit is not set, force
2254         status to initialized.
2255         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
2256         used later to get the set_src value.
2257         (find_src_status): New function.
2258         (find_src_set_src): New function.
2259         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
2260         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
2261         MO_SET, get set_src value and pass it to var_reg_delete_and_set
2262         and var_mem_delete_and_set.
2263         (dump_variable): Print out "[uninit]" if appropriate.
2264         (set_variable_part): Add new initialization and set_src parameters;
2265         pass status to unshare_variable; set node->init and node- >set_src
2266         fields and modify slot in hash table appropriately; save the init and
2267         set_src values if appropriate and assign to the new node.
2268         (clobber_variable_part): New set_src parameter; if two nodes have
2269         same variable and same location but different set_src (assignment)
2270         values, clobber old node.
2271         (delete_variable_part): Pass init status to unshare_variable.
2272         (emit_note_insn_var_location): Add initialized var; assign var's init
2273         status to new 'initialized'; pass new init status field to calls to
2274         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
2275         status to initialized.
2276         (emit_notes_in_bb): Pass initialization status to calls to
2277         var_reg_set, var_mem_set, var_reg_delete_and_set and
2278         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
2279         var_reg_delete_and_set and var_mem_delete_and_set; call
2280         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
2281         make up for change in add_stores.
2282         (vt_add_function_parameters): Add status to calls to
2283         set_variable_part.
2284         * config/darwin.c (darwin_override_options): Turn on uninitialized
2285         tracking automatically, if var_tracking is on and the system is
2286         10.5 or higher.
2287         
2288 2007-07-13  Sa Liu  <saliu@de.ibm.com>
2289
2290         * config.gcc: Add options for arch and tune on SPU.
2291         * config/spu/predicates.md: Add constant operands 0 and 1.
2292         * config/spu/spu-builtins.def: Add builtins for double precision 
2293         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
2294         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
2295         spu_testsv.
2296         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
2297         a CELLEDP target.
2298         * config/spu/spu-protos.h: Add new function prototypes. 
2299         * config/spu/spu.c (spu_override_options): Check options -march and
2300         -mtune.
2301         (spu_comp_icode): Add comparison code for DFmode and vector mode.
2302         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
2303         mode comparison.
2304         (spu_const_from_int): New.  Create a vector constant from 4 ints.
2305         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
2306         (spu_emit_vector_compare): New.  Emit vector compare.
2307         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
2308         * config/spu/spu.h: Add options -march and -mtune.  Define processor
2309         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
2310         CANONICALIZE_COMPARISON.
2311         * config/spu/spu.md: Add new insns for double precision compare
2312         and double precision vector compare.  Add vcond and smax/smin patterns
2313         to enable DFmode vector conditional expression.
2314         * config/spu/spu.opt: Add options -march and -mtune.
2315         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
2316         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
2317         both CELL and CELLEDP targets: spu_testsv.
2318         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
2319         values.
2320
2321 2007-07-13  Richard Guenther  <rguenther@suse.de>
2322
2323         PR tree-optimization/32721
2324         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
2325         TREE_THIS_VOLATILE on the folded reference.
2326         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
2327         if the array reference has TREE_THIS_VOLATILE set.
2328
2329 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2330
2331         PR other/32188
2332         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
2333
2334 2007-07-13  Andreas Schwab  <schwab@suse.de>
2335
2336         * gengtype-lex.l: Allow declarations to be indented.
2337
2338 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
2339
2340         * ginclude/tgmath.h: New.
2341         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
2342         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
2343         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
2344         * configure: Regenerate.
2345
2346 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2347
2348         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
2349         correct index when setting register save state for xd
2350         registers.
2351
2352 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2353
2354         * config/sh/sh.c (mark_use): Remove.
2355
2356 2007-07-12  Paul Brook  <paul@codesourcery.com>
2357
2358         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
2359         reg does not overlap return value.
2360
2361 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
2362
2363         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
2364         (set_expression_vuses): Ditto.
2365         (init_pre): Initialize expression_vuses.
2366
2367 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
2368
2369         * config/i386/sse.md (storentdf, storentsf): New.
2370
2371 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
2372
2373         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
2374         FUNCTION_DECL.
2375         * tree.c (build_decl_stat): Move code from here...
2376         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
2377         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
2378         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
2379         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
2380         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
2381         FUNCTION_BOUNDARY.
2382
2383 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
2384             Devang Patel  <dpatel@apple.com>
2385
2386         PR tree-optimization/25413
2387         * targhooks.c (default_builtin_vector_alignment_reachable): New.
2388         * targhooks.h (default_builtin_vector_alignment_reachable): New.
2389         * tree.h (contains_packed_reference): New.
2390         * expr.c (contains_packed_reference): New.
2391         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
2392         (vect_enhance_data_refs_alignment): Call
2393         vector_alignment_reachable_p.
2394         * target.h (vector_alignment_reachable): New builtin.
2395         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
2396         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
2397         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
2398
2399 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
2400
2401         * target.h (builtin_vectorization_cost): Add new target builtin.
2402         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
2403         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
2404         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
2405         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
2406         uninitialized variables.
2407         * tree-vect-transform.c (cost_for_stmt): New function.
2408         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
2409         using cost 1 for all scalar stmts. Be less conservative when
2410         estimating the number of prologue/epulogue iterations. Call
2411         targetm.vectorize.builtin_vectorization_cost. Return
2412         min_profitable_iters-1.
2413         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
2414         initialization cost instead of TARG_VEC_STMT_COST. Use
2415         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
2416         epilogue code. Fix epilogue cost computation.
2417         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
2418         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
2419         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
2420         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
2421         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
2422         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
2423
2424 2007-07-12  Richard Guenther  <rguenther@suse.de>
2425
2426         * gimplify.c (gimplify_conversion): Make sure that the result
2427         from maybe_fold_offset_to_reference is trivially convertible
2428         to the desired type before doing the simplification.
2429         (gimplify_expr): Likewise.
2430         * fold-const.c (fold_binary): Use the correct types for
2431         building the simplified expression.
2432
2433 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
2434
2435         PR rtl-optimization/32729
2436         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
2437         that fallthru to exit.
2438
2439 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2440
2441         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
2442         (symDTPOFF2reg): Likewise.
2443
2444 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
2445
2446         PR tree-optimization/32663
2447         
2448         * tree.h (VALUE_HANDLE_VUSES): Remove.
2449         (struct tree_value_handle): Remove vuses.
2450
2451         * tree-vn.c (create_value_handle_for_expr): Don't set
2452         VALUE_HANDLE_VUSES. 
2453
2454         * tree-ssa-pre.c (expression_vuses): New.
2455         (alloc_expression_id): Set up expression_vuses.
2456         (get_expression_vuses): New.
2457         (set_expression_vuses): Ditto.
2458         (clear_expression_ids): Modify for expression_vuses.
2459         (phi_translate_1): Ditto.
2460         (phi_translate_set): Ditto.
2461         (value_dies_in_block_x): Ditto
2462         (valid_in_sets): Ditto.
2463         (add_to_sets): Ditto.
2464         (find_existing_value_expr): Ditto.
2465         (create_value_handle_for_expr): Ditto.
2466         (make_values_for_stmt): Ditto.
2467         (vuse_equiv): Remove.
2468
2469 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
2470
2471         * Makefile.in (mostlyclean): Remove object files.
2472
2473 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2474
2475         * toplev.c (no_new_pseudos): Deleted.
2476         * rtl.h (no_new_pseudos): Deleted.
2477         * tree-pass.h (pass_no_new_pseudos): Deleted. 
2478         * passes.c (pass_no_new_pseudos): Deleted.
2479         * final.c (rest_of_clean_state): Removed no_new_pseudos.
2480         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
2481         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
2482         reload_completed.
2483         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
2484         * rtlhooks.c (gen_lowpart_general): Ditto.
2485         * optabs.c (prepare_operand): Ditto.
2486         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
2487         no_new_pseudos.
2488         * modulo-sched.c (rest_of_handle_sms): Ditto.
2489         * see.c (rest_of_handle_see): Ditto.
2490         * ifcvt.c (if_convert): Ditto.
2491         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
2492         reload_completed.
2493         * init-regs.c (gate_initialize_regs): Deleted set of
2494         no_new_pseudos.
2495         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
2496         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
2497         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
2498         
2499 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
2500
2501         PR target/32661
2502         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
2503         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
2504         (*vec_extractv2di_1_rex64): New insn pattern.
2505
2506 2007-07-11  David Daney  <ddaney@avtrex.com>
2507
2508         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
2509         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
2510         for SIGNAL_UNWIND_RETURN_COLUMN.
2511         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
2512         (DWARF_FRAME_REGNUM): Rewrite.
2513         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
2514
2515 2007-07-11  Nick Clifton  <nickc@redhat.com>
2516
2517         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
2518         delta and use gen_int_mode in place of GET_INT instead.
2519
2520 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
2521
2522         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
2523         and letter field.
2524
2525 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
2526
2527         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
2528         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
2529         types or not.
2530         * params.h (VERIFY_CANONICAL_TYPES): Remove.
2531         (USE_CANONICAL_TYPES): New.
2532         * doc/invoke.texi (verify-canonical-types): Remove.
2533         (use-canonical-types): Add.
2534
2535 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2536
2537         * config/spu/spu.c (spu_optimization_options): Remove setting of
2538         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
2539         (spu_override_options): Move it here.
2540
2541 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
2542
2543         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
2544         * config/mips/mips.c (mips_cpu_info_table): Mention
2545         MIPS_ISA_LEVEL_SPEC in the comment.
2546
2547 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2548
2549         PR tree-optimization/32713
2550         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
2551
2552 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
2553
2554         PR middle-end/30482
2555         * c-opts.c (c_common_post_options): Do not change flag_complex_method
2556         conditional to flag_isoc99.
2557         (c_common_init_options): Do it here, unconditionally.
2558
2559 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2560
2561         PR tree-optimization/32589
2562         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
2563         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
2564         * tree-ssa-propagate.c (valid_gimple_expression_p): New
2565         predicate, extracted from...
2566         (set_rhs): ...here.  Call it for the expression on entry.
2567         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
2568         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
2569         (simplify_binary_expression): Use valid_gimple_expression_p
2570         to validate the simplification.
2571         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
2572
2573 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
2574
2575         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
2576         DWARF2_DEBUG on 32 bit target too.
2577         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
2578
2579 2007-07-11  Nick Clifton  <nickc@redhat.com>
2580
2581         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
2582         version for 64-bit hosts.
2583
2584 2007-07-10  David Daney  <ddaney@avtrex.com>
2585
2586         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
2587         predicate.
2588         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
2589         call.
2590         * config/mips/mips.c (mips_expand_synci_loop): New function.
2591         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
2592         (UNSPEC_RDHWR): Same.
2593         (UNSPEC_SYNCI): Same.
2594         (UNSPEC_SYNC): Same.
2595         (clear_cache): New expand.
2596         (sync): New insn.
2597         (synci): Same.
2598         (rdhwr): Same.
2599         (clear_hazard): Same.
2600         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
2601         function.
2602         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
2603         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
2604
2605 2007-07-10  Ian Lance Taylor  <iant@google.com>
2606
2607         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
2608         no_new_pseudos.
2609
2610 2007-07-10  David Daney  <ddaney@avtrex.com>
2611
2612         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
2613         * builtins.c (expand_builtin___clear_cache): New function.
2614         (expand_builtin): Call expand_builtin___clear_cache for
2615         BUILT_IN_CLEAR_CACHE case.
2616         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
2617         * doc/md.texi (clear_cache): Document new instruction pattern.
2618         * testsuite/gcc.dg/builtins-64.c: New test.
2619
2620 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
2621
2622         * config/cris/cris.md ("movsi"): Fix typo in last change.
2623
2624 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
2625
2626         PR 32617
2627         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
2628         FUNCTION_DECLs.
2629         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
2630         * varasm.c (assemble_start_function): Honor DECL_ALIGN
2631         for FUNCTION_DECLs.  Don't use align_functions_log if
2632         DECL_USER_ALIGN.
2633         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
2634         even for FUNCTION_DECLs.
2635         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
2636         FUNCTION_DECLs.
2637         * tree.h (DECL_ALIGN): Update for new location of 'align'.
2638         (DECL_FUNCTION_CODE): Update for new location and name of
2639         'function_code'.
2640         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
2641         (struct tree_decl_common): Move 'align' and 'off_align' out
2642         of union, ensure they're still on a 32-bit boundary.  Remove
2643         other fields in union 'u1'.
2644         (struct tree_function_decl): Add field 'function_code' replacing
2645         'u1.f' in tree_decl_common.
2646         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
2647         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
2648         (Variable Attributes): Cross-reference 'aligned' attribute
2649         to Function Attributes.
2650         * flags.h (force_align_functions_log): Delete.
2651         * toplev.c (force_align_functions_log): Delete.
2652
2653 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
2654
2655         PR target/32708
2656         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
2657         (*vec_concatv2di_rex): New insn pattern.
2658
2659 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2660
2661         PR target/32538
2662         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
2663
2664 2007-07-10  Ian Lance Taylor  <iant@google.com>
2665
2666         Replace no_new_pseudos in backends.
2667         * rtl.h (can_create_pseudo_p): Define.
2668         * config/darwin.c (machopic_indirect_data_reference): Use
2669         can_create_pseudo_p () instead of no_new_pseudos.
2670         (machopic_indirect_data_reference): Likewise.
2671         (machopic_legitimize_pic_address): Likewise.
2672         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
2673         (alpha_emit_set_const_1): Likewise.
2674         (alpha_emit_set_const): Likewise.
2675         (alpha_emit_conditional_move): Likewise.
2676         (alpha_split_conditional_move): Likewise.
2677         * config/alpha/alpha.md (various splitters): Likewise.
2678         (movti): Likewise.
2679         * config/arm/arm.c (legitimize_pic_address): Likewise.
2680         (arm_load_pic_register): Likewise.
2681         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
2682         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
2683         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
2684         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
2685         * config/cris/cris.md (movsi): Likewise.
2686         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
2687         (symGOTOFF2reg_hilo): Likewise.
2688         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
2689         * config/h8300/h8300.md (insv, extzv): Likewise.
2690         * config/i386/i386.c (ix86_expand_move): Likewise.
2691         (ix86_expand_vector_move): Likewise.
2692         (ix86_prepare_fp_compare_args): Likewise.
2693         (ix86_expand_carry_flag_compare): Likewise.
2694         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
2695         (tls_dynamic_gnu2_combine_32): Likewise.
2696         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
2697         * config/ia64/ia64.c (ia64_expand_move): Likewise.
2698         (ia64_expand_movxf_movrf): Likewise.
2699         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
2700         (m32c_split_move): Likewise.
2701         (m32c_expand_insv): Likewise.
2702         * config/m68k/m68k.md (movsi): Likewise.
2703         * config/mips/mips.c (mips_force_temporary): Likewise.
2704         (mips_split_symbol): Likewise.
2705         (mips_move_integer): Likewise.
2706         (mips_legitimize_const_move): Likewise.
2707         * config/mn10300/mn10300.md (movsi): Likewise.
2708         * config/pa/pa.c (emit_move_sequence): Likewise.
2709         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2710         (rs6000_got_register): Likewise.
2711         (create_TOC_reference): Likewise.
2712         (rs6000_machopic_legitimize_pic_address): Likewise.
2713         * config/rs6000/rs6000.md (add<mode>3): Likewise.
2714         (various splitters): Likewise.
2715         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
2716         (movsi_got): Likewise.
2717         * config/s390/s390.c (emit_symbolic_move): Likewise.
2718         * config/s390/s390.md (movhi, movqi): Likewise.
2719         (load_multiple, store_multiple): Likewise.
2720         * config/score/score.c (score_force_temporary): Likewise.
2721         * config/sh/sh.c (prepare_move_operands): Likewise.
2722         (prepare_cbranch_operands): Likewise.
2723         (emit_fpu_switch): Likewise.
2724         (fpscr_set_from_mem): Likewise.
2725         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
2726         (adddi3, subsi3): Likewise.
2727         (various splitters): Likewise.
2728         (divsi_inv_fp_combine): Likewise.
2729         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
2730         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
2731         (sne): Likewise.
2732         * config/sh/predicates.md (xor_operand): Likewise.
2733         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
2734         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
2735         (movdi_pic_label_ref): Likewise.
2736         * config/spu/spu.c (spu_split_immediate): Likewise.
2737         * config/alpha/alpha.md (various splitters): Remove test
2738         !no_new_pseudos || reload_completed.
2739         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
2740         no_new_pseudos.
2741         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2742         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2743         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2744         * config/score/score.c (th_output_mi_thunk): Likewise.
2745         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2746         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2747
2748 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2749
2750         PR rtl-optimization/32664
2751         * mode-switching.c (create_pre_exit): Skip barrier insns.
2752
2753 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2754
2755         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
2756         force_gimple_operand_bsi.
2757         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
2758         rewrite_use_compare): Ditto.
2759         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
2760         Ditto.
2761         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
2762         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2763         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
2764         * tree-profile.c (prepare_instrumented_value,
2765         tree_gen_interval_profiler, tree_gen_pow2_profiler,
2766         tree_gen_one_value_profiler, tree_gen_ic_profiler,
2767         tree_gen_ic_func_profiler, tree_gen_average_profiler,
2768         tree_gen_ior_profiler): Ditto.
2769         * tree-ssa-reassoc.c (negate_value): Ditto.
2770         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
2771         Use force_gimple_operand_bsi.
2772         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2773         * tree-if-conv.c (add_to_dst_predicate_list,
2774         find_phi_replacement_condition): Ditto.
2775         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
2776         Call mark_symbols_for_renaming for new statements.
2777         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
2778
2779 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2780
2781         * cfghooks.c (remove_edge): New function.
2782         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
2783         loop exit rescans.
2784         * cfghooks.h (remove_edge): Declare.
2785         * cfg.c (remove_edge): Renamed to remove_edge_raw.
2786         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
2787
2788 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
2789
2790         * optabs.h: Added declaration for signbit_optab.  
2791         * optabs.c: (init_optabs): Added initialization for signbit_optab.
2792         * genoptinit.c (optabs): Added entry for signbit insns.  
2793         * builtins.c (expand_builtin_signbit): Added code to use a signbit
2794         insn, if available.  
2795         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
2796         * config/s390/s390.md (signbit<mode>2): New expander.  
2797
2798 2007-07-09  Richard Guenther  <rguenther@suse.de>
2799
2800         PR middle-end/32698
2801         * fold-const.c (fold_plusminus_mult_expr): Move constant
2802         arguments second to allow decomposing.
2803
2804 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
2805
2806         Revert:
2807         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2808         PR debug/23551
2809         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2810         Disregard DECL_FROM_INLINE.
2811
2812 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2813
2814         PR target/27855
2815         * doc/invoke.texi: Add ftree-reassoc flag.
2816         * common.opt (ftree-reassoc): New flag.
2817         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
2818         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
2819
2820 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2821
2822         PR tree-optimization/32681
2823         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
2824         saved in second_edge->aux when first_bb is a loop header.
2825
2826 2007-07-09  Jan HUbicka  <jh@suse.cz>
2827
2828         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
2829
2830 2007-07-09  Richard Guenther  <rguenther@suse.de>
2831
2832         * c-decl.c (start_function): Do not promote return type.
2833
2834 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2835
2836         * function.c (do_warn_unused_parameter): Do not warn if
2837         TREE_NO_WARNING is set.
2838
2839 2007-07-08  Andreas Schwab  <schwab@suse.de>
2840
2841         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
2842
2843 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
2844
2845         Revert this patch:
2846         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2847
2848         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2849         apply to assembly language, too.
2850         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2851
2852 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
2853
2854         Revert (note the sccvn portions are *not* reverted)
2855         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2856
2857         Fix PR tree-optimization/23488
2858
2859         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2860         handles.
2861         * tree-flow-inline.h (get_value_handle): Ditto.
2862         * tree-ssa-pre.c (decl_vh_map): New.
2863         (decl_node_pool): New.
2864         (can_value_number_operation): Support DECL_P.
2865         (can_PRE_operation): Ditto.
2866         (create_expression_by_pieces): Ditto.
2867         (find_existing_value_expr): Modify to differnetiate between
2868         addressing and top level.
2869         (create_value_handle_for_expr): Handle DECL's.
2870         (poolify_tree): Ditto.
2871         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2872         (make_values_for_stmt): Handle DECL's properly.
2873         (init_pre): Reorg to not init useless things during FRE.
2874         (fini_pre): Ditto.
2875         * tree-flow.h: Include pointer-set.h.
2876         (decl_vh_map): Declare.
2877         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2878
2879 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
2880
2881         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
2882         the constraint description.
2883         * doc/md.texi: Update documentation of AVR constraints.
2884
2885 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
2886
2887         * auto-inc-dec.c, config/arm/arm.c,
2888         config/m32r/constraints.md, config/mips/mips.md,
2889         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
2890         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
2891         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
2892         typos.  Follow spelling conventions.
2893         * doc/invoke.texi, doc/rtl.texi: Fix typos.
2894
2895         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2896         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2897
2898         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
2899         realloc_vuse): Remove.
2900         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
2901         and realloc_vuse.
2902
2903 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2904
2905         Fix PR tree-optimization/23488
2906
2907         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
2908         (try_to_simplify): Ditto.
2909         (visit_use): Ditto.
2910         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2911         handles.
2912         * tree-flow-inline.h (get_value_handle): Ditto.
2913         * tree-ssa-pre.c (decl_vh_map): New.
2914         (decl_node_pool): New.
2915         (can_value_number_operation): Support DECL_P.
2916         (can_PRE_operation): Ditto.
2917         (create_expression_by_pieces): Ditto.
2918         (find_existing_value_expr): Modify to differnetiate between
2919         addressing and top level.
2920         (create_value_handle_for_expr): Handle DECL's.
2921         (poolify_tree): Ditto.
2922         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2923         (make_values_for_stmt): Handle DECL's properly.
2924         (init_pre): Reorg to not init useless things during FRE.
2925         (fini_pre): Ditto.
2926         * tree-flow.h: Include pointer-set.h.
2927         (decl_vh_map): Declare.
2928         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2929                 
2930 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2931
2932         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2933         apply to assembly language, too.
2934         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2935
2936 2007-07-06  Ian Lance Taylor  <iant@google.com>
2937             Zack Weinberg  <zackw@panix.com>
2938
2939         PR middle-end/32441
2940         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
2941
2942 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2943
2944         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
2945         (prefetch): Likewise if "pref" would be used.
2946
2947 2007-07-06  Josh Conner  <jconner@apple.com>
2948
2949         PR middle-end/32602
2950         PR middle-end/32603
2951         * calls.c (store_one_arg): Handle arguments which are partially
2952         on the stack when detecting argument overlap.
2953
2954 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
2955
2956         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
2957         chosen during find_reloads.
2958
2959 2007-07-06  Richard Guenther  <rguenther@suse.de>
2960
2961         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
2962         TYPE_ARG_TYPES for verification of argument types.  Use
2963         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
2964         parameters as variable arguments.
2965
2966 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
2967
2968         * libgcc2.h (word_type): Type definition removed.
2969         (cmp_return_type, shift_count_type): Type definitions added.
2970         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2971         replaced with shift_count_type.
2972         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2973         cmp_return_type.
2974         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
2975         changed from word_type to Wtype.
2976         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2977         replaced with shift_count_type.
2978         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2979         cmp_return_type.
2980         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
2981         and libgcc_shift_count attribute added.
2982         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
2983         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
2984         (TARGET_INITIALIZER): New target hooks added.
2985         * targhooks.c (default_libgcc_cmp_return_mode,
2986         default_libgcc_shift_count_mode): Default implementations for the new
2987         target hooks added.
2988         * targhooks.h (default_libgcc_cmp_return_mode,
2989         default_libgcc_shift_count_mode): Function prototypes added.
2990         * target.h (struct gcc_target): Fields for the new target hooks added.
2991         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
2992         as library call.
2993         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
2994         library call.
2995
2996         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
2997         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
2998
2999         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
3000         s390_libgcc_shift_count_mode): Functions added.
3001         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
3002         Target hooks defined.
3003
3004 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
3005
3006         * config/mips/mips.c (compute_frame_size): Restore the original
3007         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
3008         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
3009         Document why the difference is needed.
3010
3011 2007-07-06  Richard Guenther  <rguenther@suse.de>
3012
3013         * c-common.c (boolean_increment): Use correctly typed
3014         constant.
3015
3016 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
3017
3018         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
3019         the topmost argument register is not also included in the save mask.
3020         (mips16e_collect_argument_save_p): Take a pointer to the argument
3021         register, rather than a pointer to the number of arguments.
3022         (mips16e_collect_argument_saves): Only include argument saves
3023         that aren't in the register mask.
3024
3025 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
3026
3027         PR rtl-optimization/32450
3028         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
3029         to ensure that instructions are not moved into the prologue when
3030         profiling is on.  Remove unused prologue_end variable.
3031         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
3032         as a scheduling barrier.
3033
3034 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
3035
3036         PR debug/23551
3037         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3038         Disregard DECL_FROM_INLINE.
3039
3040 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
3041
3042         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
3043         IORing with a constant.
3044
3045 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
3046
3047         PR rtl-optimization/32475
3048         * df-scan.c (df_def_record_1): Add a use of the stack pointer
3049         for every definition of the stack pointer.
3050
3051 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
3052
3053         * arm.c (vfp3_const_double_index): Copy signed results of
3054         REAL_VALUE_TO_INT into unsigned vars.
3055
3056 2007-07-05  Richard Guenther  <rguenther@suse.de>
3057
3058         PR middle-end/32639
3059         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
3060         FUNCTION_TYPE.
3061         * tree-ssa.c (useless_type_conversion_p): Check canonical
3062         types early.
3063
3064 2007-07-05 Anatoly Sokolov <aesok@post.ru>
3065
3066         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
3067         zero_extendhisi2): Change to define_insn_and_split. 
3068         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
3069
3070 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
3071
3072         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
3073         pass_match_asm_constraints): New.
3074         * passes.c (init_optimization_passes): Add new pass.
3075         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
3076         * function.h (struct function): Add has_asm_statement bit.
3077         (current_function_has_asm_statement): New.
3078         * tree-pass.h (pass_match_asm_constraints): New.
3079
3080 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
3081
3082         * config/mips/mips.c (mips_file_start): Avoid declaration
3083         after code.
3084
3085 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3086
3087         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
3088
3089 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
3090
3091         * rtl.def (NOTE): Change print format string to print
3092         operand 5 as a note insn name.
3093
3094 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3095             David Ung  <davidu@mips.com>
3096
3097         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
3098         * doc/invoke.texi: (MIPS Options): Document them.
3099
3100 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3101             David Ung  <davidu@mips.com>
3102
3103         Add support for SmartMIPS ASE.
3104
3105         * optabs.c (expand_binop_directly): New, broken out from...
3106         (expand_binop): Here.  Make it try rotating in the other
3107         direction even when the second operand isn't constant.
3108         * config/mips/mips.md (*lwxs): New.
3109         * config/mips/mips.opt (msmartmips): New.
3110         * config/mips/mips.c (mips_lwxs_address_p): New.
3111         (mips_rtx_costs): Make it recognize scaled indexed addressing.
3112         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3113         __mips_smartmips when compiling for TARGET_SMARTMIPS.
3114         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
3115         (ISA_HAS_LWXS): New.
3116         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
3117         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
3118         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
3119         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
3120         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
3121         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
3122         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
3123
3124 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
3125
3126         * tree-vectorizer.c (new_loop_vec_info): Initialize
3127         LOOP_VINFO_COST_MODEL_MIN_ITERS.
3128         * tree-vectorizer.h (_loop_vec_info): Added new filed
3129         min_profitable_iters.
3130         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
3131         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
3132         * tree-vect-analyze.c (vect_analyze_operations): Set
3133         LOOP_VINFO_COST_MODEL_MIN_ITERS.
3134         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
3135         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
3136         Fix calculation of peel_iters_prologue. Move consideration of epilogue
3137         and prologue cost to after they are computed.
3138         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
3139         TARG_VEC_STMT_COST.
3140         (vect_model_simple_cost): Takes additional argument dt. Consider cost
3141         of creating vectors from scalars according to dt.
3142         (vect_model_store_cost): Likewise.
3143         (vectorizable_call): Use dt array instead of scalar dt. Call
3144         vect_model_simple_cost with additional argument dt.
3145         (vectorizable_assignment): Likewise.
3146         (vectorizable_operation): Likewise.
3147         (vectorizable_type_demotion): Likewise.
3148         (vectorizable_type_promotion): Likewise.
3149         (vectorizable_store): Use dt array instead of scalar dt. Call
3150         vect_model_store_cost with additional argument dt.
3151         (vect_do_peeling_for_loop_bound): Don't call
3152         vect_estimate_min_profitable_iters. Instead, lookup
3153         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
3154         "may not be profitable".
3155
3156 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
3157
3158         PR testsuite/32014
3159         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
3160         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
3161         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
3162         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
3163
3164 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
3165
3166         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
3167         addressing modes cheaper.
3168
3169 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
3170
3171         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
3172         (dw_ranges_struct): Rename block_num to num.  Adjust.
3173         (dw_ranges_by_label_struct): New.
3174         (ranges_by_label, ranges_by_label_allocated,
3175         ranges_by_label_in_use): New variables.
3176         (add_ranges_num): Factored most of the code out of...
3177         (add_ranges): ... this one.  Rewrite in terms of the former.
3178         (add_ranges_by_labels): New.
3179         (output_ranges): Output by-label ranges.
3180         (dwarf2out_finish): Output range for multiple-section
3181         compile_unit.  Output standard DW_AT_low_pc in addition to
3182         unexpected DW_AT_entry_pc.
3183
3184 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
3185
3186         PR tree-optimization/32604
3187         PR tree-optimization/32606
3188
3189         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
3190         (compute_antic_safe): Removed.
3191         (ANTIC_SAFE_LOADS): Ditto.
3192         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
3193         (execute_pre): Don't call compute_antic_safe.
3194         (vuse_equiv): New function.
3195         (make_values_for_stmt): Use it
3196         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
3197         not always true.
3198
3199 2007-07-04 Anatoly Sokolov <aesok@post.ru>
3200
3201         PR target/31331
3202         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
3203         rather than a decl. 
3204         (avr_attribute_table): Make "naked" attribute apply to function types
3205         rather than to decls.
3206         (avr_handle_fntype_attribute): New function.
3207
3208 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
3209
3210         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
3211         after \.
3212
3213 2007-07-04  David Ung  <davidu@mips.com>
3214             Joseph Myers  <joseph@codesourcery.com>
3215
3216         * config/mips/mips.md (type): Add logical, signext and move.
3217         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
3218         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
3219         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
3220         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
3221         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
3222         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
3223         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
3224         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
3225         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
3226         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
3227         movv2sf_hardfloat_64bit): Use the new types.
3228         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
3229         *movdf_softfloat, *movdf_mips16): Use "multi".
3230         (extendqihi2): Replace with a define_expand.
3231         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
3232         Based on extend<SHORT:mode><GPR:mode>2 patterns.
3233         * config/mips/74k.md (r74k_int_logical): New reservation and
3234         bypasses.
3235         (r74k_int_arith): Remove "slt".
3236         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
3237         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
3238         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
3239         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
3240         reservations for "arith".
3241
3242 2007-07-04  Richard Guenther  <rguenther@suse.de>
3243
3244         * tree-ssa.c (useless_type_conversion_p): Add handling for
3245         scalar float and vector types.  Only call the types_compatible_p
3246         langhook for aggregate types as last resort.  Follow the
3247         rules.
3248
3249 2007-07-04  Richard Guenther  <rguenther@suse.de>
3250
3251         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
3252         the same as NOP_EXPR.
3253
3254 2007-07-04  Nick Clifton  <nickc@redhat.com>
3255
3256         * target.h (struct gcc_target): Add target_help field.
3257         * target-def.h (TARGET_HELP): New.
3258         (TARGET_INITIALIZER): Use TARGET_HELP.
3259         * opts.c (command_handle_option): Invoke target_help function, if
3260         defined, when the user has specified --target-help on the command
3261         line.
3262         * doc/invoke.texi: Mention that --target-help might print
3263         additional information.
3264         * doc/tm.texi: Document TARGET_HELP hook.
3265
3266         * arm.c (TARGET_HELP): Override default definition.
3267         (arm_target_help): New - display a wrapped list of cores and
3268         architectures supported.
3269
3270 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3271
3272         * config/gcc/v850/v850.c (expand_prologue): Make sure
3273         GEN_INT() argument is sign extended rather than zero extended.
3274         (expand_epilogue): Likewise.
3275         (output_move_double): Delete.
3276         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
3277         * config/gcc/v850/v850.md (movdi): Delete.
3278         (*movdi_internal): Delete.
3279         (movdf): Delete.
3280         (*movdf_internal): Delete.
3281
3282 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
3283
3284         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
3285         unless compiling RTP PIC.
3286
3287 2007-07-04  Richard Guenther  <rguenther@suse.de>
3288
3289         PR tree-optimization/32482
3290         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
3291         original ssa name if we didn't find a shift expression.
3292         Fix shift constant for bit zero test.
3293
3294 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
3295
3296         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
3297
3298 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
3299
3300         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
3301         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
3302         * config/arm/vxworks.h (ASM_SPEC): Delete.
3303         (SUBTARGET_EXTRA_ASM_SPEC): Define.
3304
3305 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
3306
3307         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
3308         (DDR_REVERSED_P): New.
3309         * tree-data-ref.c (initialize_data_dependence_relation,
3310         build_classic_dist_vector): Set DDR_REVERSED_P.
3311
3312 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
3313
3314         PR middle-end/32457
3315         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
3316         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
3317         init_omega_for_ddr_1): Use non conservative number of iterations
3318         estimations.
3319         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
3320         (analyze_siv_subscript): Remove FIXME and reinitialization of 
3321         last_conflicts to chrec_dont_know.
3322         * testsuite/gfortran.dg/vect/pr32457.f90: New.
3323
3324 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
3325
3326         * tree.c (maybe_canonicalize_argtypes): Improve description.
3327
3328 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
3329
3330         * tree.c (maybe_canonicalize_argtypes): New.
3331         (build_function_type): Set canonical type.
3332         (build_method_type_directly): Ditto.
3333         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
3334         properly.
3335
3336 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3337
3338         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
3339         like PLUS_EXPR.
3340         (rewrite_use_nonlinear_expr): Likewise.
3341
3342 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
3343
3344         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
3345
3346 2007-07-04  Ben Elliston  <bje@au.ibm.com>
3347
3348         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
3349         of this file.
3350
3351         * c-objc-common.c (c_types_compatible_p): Fix indentation.
3352
3353         * doc/tm.texi (Run-time Target): Capitalise "CPU".
3354         (Exception Handling): Likewise.
3355
3356 2007-07-03  Jan Hubicka  <jh@suse.cz>
3357
3358         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
3359
3360 2007-07-03  Eric Christopher  <echristo@apple.com>
3361
3362         * doc/cppopts.texi: Add conflicting option note to -dM.
3363         * doc/invoke.texi: Add note about possible conflicts with
3364         -E for -dCHARS and note that -dM will not produce
3365         any results if there is no machine dependent reorg.
3366         
3367 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
3368
3369         * tree.h (DECL_ALIGN): Back out previous change.
3370
3371 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
3372
3373         * configure.ac: Test for .dtprelword support on MIPS.
3374         * configure, config.in: Regenerate.
3375         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
3376         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3377
3378 2007-07-03  Julian Brown  <julian@codesourcery.com>
3379
3380         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
3381         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
3382         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
3383         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
3384         capability.
3385         (all_fpus): Add FPUTYPE_VFP3.
3386         (fp_model_for_fpu): Add VFPv3 field.
3387         (arm_rtx_costs_1): Give cost to VFPv3 constants.
3388         (vfp3_const_double_index): New function. Return integer index of
3389         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
3390         isn't suitable.
3391         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
3392         and argument represents a valid RTX for a VFPv3 constant.
3393         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
3394         two instructions.
3395         (vfp_emit_fstmd): Similar, for fstmd.
3396         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
3397         constants, represented as integer indices.
3398         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
3399         VFP_REGNO_OK_FOR_DOUBLE macros.
3400         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
3401         (arm_file_start): Set float-abi attribute for VFPv3, and output
3402         correct ".fpu" assembler directive.
3403         (arm_dbx_register_numbering): Add FIXME.
3404         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
3405         (fputype): Add FPUTYPE_VFP3.
3406         (FIXED_REGISTERS): Add 32 registers for D16-D31.
3407         (CALL_USED_REGISTERS): Likewise.
3408         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
3409         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
3410         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
3411         (D7_VFP_REGNUM): New.
3412         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
3413         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
3414         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
3415         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
3416         (REG_ALLOC_ORDER): Adjust for VFPv3.
3417         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
3418         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
3419         VFP_LO_REGS, VFP_HI_REGS.
3420         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
3421         (IS_VFP_CLASS): Define macro.
3422         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
3423         IS_VFP_CLASS.
3424         (REGISTER_MOVE_COST): Likewise.
3425         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
3426         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
3427         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
3428         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
3429         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
3430         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
3431         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
3432         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
3433         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
3434         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
3435         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
3436         where appropriate for single-word registers.
3437         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
3438         As above. Fix type attributes.
3439         * config/arm/constraints.md (register_contraint "t"): Define.
3440         (register_constraint "w"): Change to D0-D15, or D0-D31 for
3441         VFPv3/NEON.
3442         (register_constraint "x"): Define.
3443         (constraint "Dv"): Define.
3444
3445 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
3446
3447         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
3448
3449 2007-07-03  Tom Tromey  <tromey@redhat.com>
3450
3451         * c-parser.c (objc_pq_context): Removed.
3452         (objc_need_raw_identifier): Likewise.
3453         (c_parser) <objc_pq_context>: New field.
3454         <objc_need_raw_identifier>: Likewise.
3455         (OBJC_NEED_RAW_IDENTIFIER): Removed.
3456         (c_lex_one_token): Update.
3457         (c_parser_objc_protocol_definition): Update.
3458         (c_parser_objc_method_definition): Update.
3459         (c_parser_objc_methodproto): Update.
3460         (c_parser_declspecs): Update.
3461
3462 2007-07-03  David Ung  <davidu@mips.com>
3463
3464         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
3465
3466 2007-07-03  David Ung  <davidu@mips.com>
3467             Richard Sandiford  <richard@codesourcery.com>
3468
3469         * doc/invoke.texi: Document -march=74kf3_2.
3470         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
3471         (TUNE_74K): Check for it.
3472         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
3473         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
3474         * config/mips/mips.md (cpu): Add 74kf3_2.
3475         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
3476         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
3477         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
3478         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
3479         74kf3_2 to the CPU list.
3480         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
3481         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
3482         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
3483         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
3484         (r74kf3_2_fxfer_from_c1): New insn reservations.
3485
3486 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
3487             David Ung  <davidu@mips.com>
3488
3489         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
3490         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
3491         and 74k[fx].  Document aliases for the new options.
3492         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
3493         (PROCESSOR_24KF2_1): ...this.
3494         (PROCESSOR_24KX): Rename to...
3495         (PROCESSOR_24KF1_1): ...this.
3496         (PROCESSOR_74KF): Rename to...
3497         (PROCESSOR_74KF2_1): ...this.
3498         (PROCESSOR_74KX): Rename to...
3499         (PROCESSOR_74KF1_1): ...this.
3500         (TUNE_74K): Update PROCESSOR_* names.
3501         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
3502         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
3503         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
3504         (mips_rtx_cost_data): Update processor names in comments.
3505         (mips_issue_rate): Update PROCESSOR_* names.
3506         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
3507         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
3508         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
3509         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
3510         Update cpu attribute names.
3511         (r24k_fpu_iss): Rename this reservation to...
3512         (r24kf2_1_fpu_iss): ...this and update all uses.
3513         (r24kx_fpu_iss): Rename this reservation to...
3514         (r24kf1_1_fpu_iss): ...this and update all uses.
3515         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
3516         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
3517         Update cpu attribute names.
3518
3519 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3520
3521         * config/m32r/constraints.md: New file.
3522         * config/m32r/m32r.c: Include tm-constrs.h.
3523         (small_data_operand): Use satisfies_constraint_* instead of macro.
3524         (addr24_operand, gen_compare): Likewise.
3525         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
3526         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
3527         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3528         EXTRA_CONSTRAINT): Likewise.
3529         * config/m32r/m32r.md: Include constraints.md.
3530         (*movsi_insn): Use satisfies_constraint_* instead of macro.
3531         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
3532         * config/m32r/predicates.md (conditional_move_operand): Likewise.
3533         (two_insn_const_operand, int8_operand, uint16_operand,
3534         reg_or_int16_operand, reg_or_uint16_operand,
3535         reg_or_cmp_int16_operand, cmp_int16_operand,
3536         seth_add3_operand): Likewise.
3537
3538 2007-07-03  Eric Christopher  <echristo@gmail.com>
3539
3540         * libgcc2.h: Conditionally declare __bswapsi2 and
3541         __bswapdi2.
3542         
3543 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3544
3545         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
3546         defined.
3547
3548 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3549
3550         PR target/28307
3551         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
3552         (__gthrw_pragma): Provide default definition.
3553         (__gthrw2): Use it.
3554         * gthr-posix.c (__gthrw_pragma): Define.
3555
3556 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
3557
3558         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
3559         before declaring inequality.
3560
3561 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3562
3563         * combine.c (recog_for_combine): Log the success or failure of
3564           matching new insn patterns against the machine description in
3565           detailed dumps.
3566
3567 2007-07-03  Revital Eres  <eres@il.ibm.com>
3568
3569         * ddg.c (print_sccs): New function.
3570         (check_sccs): New function.
3571         (create_ddg_all_sccs): Use it.
3572         * ddg.h (print_sccs): Declare.
3573         * modulo-sched.c (sms_order_nodes): Call print_sccs.
3574
3575 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
3576
3577         * targhooks.h (default_mode_for_suffix): New function declaration.
3578         * targhooks.c (default_mode_for_suffix): New default target hook.
3579         * target.h (struct c): New structure in the targetm struct.
3580         (mode_for_suffix): New target hook as part of struct c.
3581         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
3582         default_mode_for_suffix.
3583         (TARGET_C): New define.
3584         * c-lex.c: Include "target.h".
3585         (interpret_float): Use targetm.c.mode_for_suffix to determine
3586         the mode for a given non-standard suffix.
3587         Makefile.in (c-lex.o): Depend on $(TARGET_H).
3588
3589         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
3590         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
3591
3592         * doc/extend.texi (Floating Types): New node.  Document __float80 and
3593         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
3594
3595 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3596
3597         PR target/32506
3598         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
3599         predicate instead of target_operand.
3600         (divsi3_i1_media, divsi3_media_2): Likewise.
3601
3602 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3603
3604         * tree.h (alias_sets_might_conflict_p): Rename into
3605         alias_sets_must_conflict_p.
3606         * alias.c (alias_sets_might_conflict_p): Likewise.
3607         (alias_sets_conflict_p): Use it.
3608         (objects_must_conflict_p): Likewise.
3609         * c-common.c (strict_aliasing_warning): Adjust.
3610
3611 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3612
3613         * rtlhooks.c (gen_lowpart_if_possible): Check for
3614         invalid subreg before calling gen_lowpart_SUBREG.
3615
3616 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
3617
3618         * config/darwin9.h: Add copyright notice.
3619         (LINK_COMMAND_SPEC): Add comment.
3620         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
3621         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
3622         DARWIN_LIBSYSTEM_HAS_UNWIND.
3623
3624 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3625
3626         PR libgomp/32468
3627         * omp-low.c (check_combined_parallel): New function.
3628         (lower_omp_parallel): Call it via walk_stmts, set
3629         OMP_PARALLEL_COMBINED if appropriate.
3630         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
3631         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
3632         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
3633         don't consider it as combined parallel.
3634
3635 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3636
3637         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3638         (gcc_tooldir): Likewise.
3639         * configure: Regenerate.
3640         * Makefile.in (libsubdir_to_prefix): New variable, based on the
3641         old configure.ac gcc_tooldir setting.
3642         (prefix_to_exec_prefix): New variable.
3643         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3644         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3645
3646 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
3647
3648         Fix PR tree-optimization/32583
3649         Fix PR tree-optimization/32584
3650         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
3651         (phi_translate_set): Use phi_translate directly now.
3652         (make_values_for_stmt): Don't value number RHS if we already know
3653         it is constant.
3654
3655 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
3656             Jim Wilson <wilson@specifix.com>
3657
3658         PR target/31684
3659         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
3660         copy_insn.
3661
3662 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3663             Richard Sandiford  <richard@codesourcery.com>
3664             Nigel Stephens  <nigel@mips.com>
3665
3666         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
3667         (mips16e_output_save_restore): Declare.
3668         (mips16e_save_restore_pattern_p): Likewise.
3669         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
3670         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
3671         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
3672         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
3673         (BITSET_P): New global macro, extracted from...
3674         (mips_for_each_saved_reg): ...here.
3675         (mips16e_save_restore_info): New struct.
3676         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
3677         (mips16e_save_restore_regs): New variable.
3678         (mips_split_plus, mips16e_find_first_register): New functions.
3679         (mips16e_mask_registers): New function.
3680         (compute_frame_size): Expand the commentary before the function.
3681         Enforce the MIPS16e save and restore register range restrictions.
3682         Pad the general register save area at the low end.
3683         (mips16e_save_restore_reg, mips16e_build_save_restore)
3684         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
3685         (mips16e_output_save_restore, mips16e_collect_propagate_value)
3686         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
3687         New functions.
3688         (mips_expand_prologue, mips_expand_epilogue): Handle
3689         GENERATE_MIPS16E_SAVE_RESTORE.
3690         * config/mips/mips.md (*mips16e_save_restore): New pattern.
3691
3692 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
3693
3694         PR tree-optimization/31966
3695         PR tree-optimization/32533
3696         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
3697         "basic_block" description as its third argument.  Update function
3698         calls to get destination bb from "edge" argument.  Save "cond" into
3699         aux field of the edge.  Update prototype for changed arguments.
3700         (if_convertible_loop_p): Clear aux field of incoming edges if bb
3701         contains phi node.
3702         (find_phi_replacement_condition): Operate on incoming edges, not
3703         on predecessor blocks.  If there is a condition saved in the
3704         incoming edge aux field, AND it with incoming bb predicate.
3705         Return source bb of the first edge.
3706         (clean_predicate_lists): Clean aux field of outgoing node edges.
3707         (tree_if_conversion): Do not initialize cond variable. Move
3708         variable declaration into the loop.
3709         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
3710         initializations of new_stmt, arg0 and arg1 variables.
3711
3712 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3713
3714         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
3715         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
3716
3717 2007-07-02  Richard Guenther  <rguenther@suse.de>
3718
3719         * tree-ssa.c (useless_type_conversion_p): Document
3720         future intent as defining the middle-end type system.
3721         Re-structure to call langhook last, group by type class,
3722         mark questionable parts.
3723
3724 2007-07-02  Richard Guenther  <rguenther@suse.de>
3725
3726         * tree-flow.h (types_compatible_p): Declare.
3727         * tree-ssa.c (types_compatible_p): New function.
3728         * ipa-type-escape.c (discover_unique_type): Use
3729         types_compatible_p instead of lang_hooks.types_compatible_p.
3730         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3731         * tree-vn.c (expressions_equal_p): Likewise.
3732         * tree.c (fields_compatible_p): Likewise.
3733         * tree-ssa-dom.c (avail_expr_eq): Likewise.
3734         (cprop_operand): Use useless_type_conversion_p instead of
3735         lang_hooks.types_compatible_p.
3736         * tree-inline.c (setup_one_parameter): Likewise.
3737         (declare_return_variable): Likewise.
3738         * tree-nrv.c (tree_nrv): Likewise.
3739         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
3740         (maybe_fold_offset_to_component_ref): Likewise.
3741         (maybe_fold_offset_to_reference): Likewise.
3742         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3743         (merge_alias_info): Likewise.
3744         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3745         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3746         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
3747         * tree-tailcall.c (find_tail_calls): Likewise.
3748         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3749         * gimplify.c (canonicalize_addr_expr): Likewise.
3750         (fold_indirect_ref_rhs): Likewise.
3751         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
3752         (cpt_same_type): Likewise.
3753         (check_pointer_types_r): Swap parameters to cpt_same_type
3754         where appropriate.
3755         * fold-const.c (fold_convert): Revert fix for PR15988.
3756         * tree-inline.c (setup_one_parameter): Instead fix it here by
3757         using fold_build1 instead of fold_convert and checking for
3758         error_mark_node.  Convert only if the conversion is necessary.
3759
3760 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
3761
3762         * configure.ac: Check for .gnu_attribute on Power.
3763         * configure: Regenerate.
3764         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
3765         attribute for floating-point ABI.
3766
3767 2007-07-02  Ira Rosen  <irar@il.ibm.com>
3768
3769         PR tree-optimization/32230
3770         PR tree-optimization/32477
3771         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
3772         address is a constant.
3773
3774 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3775
3776         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
3777         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
3778         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
3779         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
3780         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
3781         64-bit targets.  Add support for *-elfoabi*.
3782         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
3783         different settings if $(tm_defines) does not select the EABI.
3784         (MULTILIB_EXCLUSIONS): Define in those circumstances.
3785         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
3786         (MIPS_ARCH_OPTION_SPEC): Likewise.
3787         (MIPS_ISA_LEVEL_SPEC): Likewise.
3788         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
3789         * config/mips/elfoabi.h: New file.
3790
3791 2007-07-02  Richard Guenther  <rguenther@suse.de>
3792
3793         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
3794         (useless_type_conversion_p): ... this.
3795         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
3796         (useless_type_conversion_p): ... this.
3797         * builtins.c (fold_builtin_memory_op): Rename
3798         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
3799         * tree-cfg.c (verify_expr): Likewise.
3800         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
3801         * tree-ssa-ccp.c (ccp_fold): Likewise.
3802         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3803         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
3804         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3805         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
3806         * tree-ssa-pre.c (eliminate): Likewise.
3807         * tree-ssa.c (delete_tree_ssa): Likewise.
3808         (tree_ssa_useless_type_conversion): Likewise.
3809         * tree.c (build2_stat): Likewise.
3810
3811 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3812
3813         Fix PR tree-optimization/32571
3814         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
3815         simplifying them.
3816
3817 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3818
3819         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
3820         and other expected operations explicitly, change default to
3821         gcc_unreachable. 
3822
3823 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
3824
3825         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
3826         PARALLEL.
3827         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3828         (tls_load_dot_plus_eight): Move the label number into the unspec.
3829         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
3830
3831 2007-07-01  Andreas Schwab  <schwab@suse.de>
3832
3833         * dwarf2out.c (initial_return_save): Define only if used.
3834
3835 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
3836
3837         Unreverting Richard's Revert of:
3838
3839         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3840
3841         * dce.c (deletable_insn_p_1): New function, split out from...
3842         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3843         specially, not those inside PARALLELs.  Remove BODY argument
3844         and adjust recursive call accordingly.
3845         (prescan_insns_for_dce): Update call to delete_insn_p.
3846
3847 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
3848             Revital Eres  <eres@il.ibm.com>
3849
3850         * ddg.c (create_ddg_all_sccs): Fix missed
3851         initialization of scc_nodes.
3852
3853 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
3854
3855         PR middle-end/32559
3856         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
3857         X + ~X to 1 only for INTEGRAL_TYPE_P type.
3858
3859 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
3860
3861         * configure.ac: Check for .gnu_attribute on MIPS.
3862         * configure, config.in: Regenerate.
3863         * config/mips/mips.c (mips_file_start): If supported, output
3864         attribute for floating-point ABI.
3865
3866 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
3867
3868         PR target/32433
3869         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
3870         (ffs_cmove): New expander to expand using ctz pattern.
3871         (*ffs_cmove): Remove pattern.
3872         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
3873         (ffsdi2): Expand using ctz pattern.
3874         (*ffs_rex64): Remove pattern.
3875
3876 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3877
3878         PR rtl-optimization/32296
3879         * pa.md (return): Delete pattern.
3880         (return_internal): Remove "(const_int 1)" from pattern.
3881         (epilogue): Use return_internal pattern for trivial returns.
3882         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
3883         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
3884
3885 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3886
3887         * tree-ssa-pre.c (is_exception_related): New function
3888         (can_value_number_operation): Use it.
3889
3890 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3891         
3892         Fix PR tree-optimization/32540
3893         Fix PR tree-optimization/31651
3894
3895         * tree-ssa-sccvn.c: New file.
3896
3897         * tree-ssa-sccvn.h: Ditto.
3898         
3899         * tree-vn.c: Include tree-ssa-sccvn.h
3900         (val_expr_paid_d): Removed.
3901         (value_table): Ditto.
3902         (vn_compute): Ditto.
3903         (val_expr_pair_hash): Dit