OSDN Git Service

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