]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Move crtstuff support to toplevel libgcc
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
237490bf 12011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2
3 * config.gcc (extra_parts): Remove.
4 (*-*-freebsd*): Remove extra_parts.
5 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
6 *-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
7 (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
8 Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
9 *-*-netbsdelf[2-9]*.
10 (*-*-openbsd*): Remove t-libc-ok from tmake_file.
11 (alpha*-*-linux*): Remove extra_parts.
12 (alpha*-*-freebsd*): Likewise.
13 (bfin*-linux-uclibc*): Likewise.
14 (fr30-*-elf): Likewise.
15 (moxie-*-elf): Likewise.
16 (moxie-*-uclinux*): Likewise.
17 (h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
18 (h8300-*-elf*): Likewise.
19 (hppa*64*-*-hpux11*): Remove extra_parts.
20 (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
21 tmake_file.
22 (x86_64-*-elf*): Likewise.
23 (i[34567]86-*-freebsd*): Remove tmake_file.
24 (x86_64-*-freebsd*): Likewise.
25 (x86_64-*-netbsd*): Likewise.
26 (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
27 t-libc-ok from tmake_file.
28 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
29 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
30 i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from tmake_file.
31 Remove extra_parts.
32 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
33 Remove i386/t-crtstuff from tmake_file.
34 (i[34567]86-*-lynxos*): Likewise.
35 Remove extra_parts.
36 (ia64*-*-elf*): Remove extra_parts.
37 (ia64*-*-freebsd*): Likewise.
38 (ia64*-*-linux*): Likewise.
39 (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
40 (m32r-*-elf*): Remove extra_parts.
41 (m32rle-*-elf*): Likewise.
42 (m32r-*-rtems*): Likewise.
43 (m68k-*-elf*, fido-*-elf*): Likewise.
44 (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
45 (m68k-*-rtems*): Remove extra_parts.
46 (mep-*-*): Likewise.
47 (microblaze*-linux*): Likewise.
48 (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
49 (mips*-*-linux*): Likewise.
50 (powerpc-*-lynxos*): Likewise.
51 (s390x-ibm-tpf*): Likewise.
52 (score-*-elf): Likewise.
53 Remove tmake_file.
54 (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
55 sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
56 sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
57 Remove sh/t-superh from tmake_file for sh*-superh-elf.
58 Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
59 (sh-*-rtems*): Remove sh/t-elf from tmake_file.
60 (sh-wrs-vxworks): Likewise.
61 (sparc-*-linux*): Remove extra_parts.
62 (sparc64-*-linux*): Likewise.
63 (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
64 (xstormy16-*-elf): Likewise.
65 (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
66 (am33_2.0-*-linux*): Remove extra_parts.
67 * configure.ac (extra_parts): Don't substitute.
68 * configure: Regenerate.
69 * crtstuff.c: Move to ../libgcc.
70 * Makefile.in (CRTSTUFF_CFLAGS): Remove.
71 (EXTRA_PARTS): Remove.
72 (CRTSTUFF_T_CFLAGS): Remove.
73 (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
74 (GCC_EXTRA_PARTS): Remove.
75 (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
76 CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
77 Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
78 ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
79 ($(T)crtbeginT.o): Remove.
80 * config/alpha/t-vms (EXTRA_PARTS): Remove.
81 ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
82 * config/alpha/vms-dwarf2.asm: Move to
83 ../libgcc/config/alpha/vms-dwarf2.S.
84 * config/alpha/vms-dwarf2eh.asm: Move to
85 ../libgcc/config/alpha/vms-dwarf2eh.S.
86 * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
87 * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
88 * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
89 ($(T)crti.o, $(T)crtn.o): Remove.
90 * config/arm/t-linux: Remove comment.
91 * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
92 * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
93 ($(T)crti.o, $(T)crtn.o): Remove.
94 * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
95 * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
96 * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
97 * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
98 * config/bfin/t-bfin (EXTRA_PARTS): Remove.
99 ($(T)crti.o, $(T)crtn.o): Remove.
100 * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
101 ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
102 (EXTRA_MULTILIB_PARTS): Remove.
103 * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
104 EXTRA_MULTILIB_PARTS): Remove.
105 * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
106 ($(T)crtlibid.o): Remove.
107 (EXTRA_MULTILIB_PARTS): Remove.
108 * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
109 * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
110 * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
111 (EXTRA_MULTILIB_PARTS): Remove.
112 (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
113 * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
114 CRTSTUFF_T_CFLAGS_S): Remove.
115 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
116 * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
117 * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
118 * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
119 * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
120 * config/frv/frvbegin.c, config/frv/frvend.c: Move to
121 ../libgcc/config/frv.
122 * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
123 (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
124 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
125 (CRTSTUFF_T_CFLAGS): Remove.
126 * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
127 * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
128 * config/h8300/t-elf: Remove.
129 * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
130 Move to ../libgcc/config/i386.
131 * config/i386/t-crtstuff: Remove.
132 * config/i386/t-i386elf: Remove.
133 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
134 * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
135 * config/ia64/crtbegin.asm: Move to
136 ../libgcc/config/ia64/crtbegin.S.
137 * config/ia64/crtend.asm: Move to
138 ../libgcc/config/ia64/crtend.S.
139 * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
140 * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
141 * config/ia64/t-vms: Remove.
142 * config/ia64/vms-crtinit.asm: Move to
143 ../libgcc/config/ia64/vms-crtinit.S.
144 * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
145 * config/m32r/initfini.c: Move to ../libgcc/config/m32r.
146 * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
147 * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
148 ($(T)crtinit.o, $(T)crtfini.o): Remove.
149 (m32rx, m32r2): Remove.
150 (EXTRA_MULTILIB_PARTS): Remove.
151 * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
152 * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
153 * config/m68k/t-crtstuff: Remove.
154 * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
155 * config/m68k/t-m68kelf: Remove.
156 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
157 * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
158 * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
159 * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
160 (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
161 * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
162 (EXTRA_MULTILIB_PARTS): Remove.
163 * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
164 * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
165 * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
166 EXTRA_PARTS): Remove.
167 ($(T)crti$(objext), $(T)crtn$(objext)): Remove.
168 * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
169 * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
170 * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
171 ($(T)crti.o, $(T)crtn.o): Remove.
172 (EXTRA_MULTILIB_PARTS): Remove.
173 * config/mips/t-isa3264: Likewise.
174 * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
175 * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
176 (CRTSTUFF_T_CFLAGS): Remove.
177 * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
178 ($(T)crti.o, $(T)crtn.o): Remove.
179 (EXTRA_MULTILIB_PARTS): Remove.
180 * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
181 Remove.
182 ($(T)crti.o, $(T)crtn.o): Remove.
183 * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
184 * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
185 (EXTRA_MULTILIB_PARTS): Remove.
186 ($(T)crti.o, $(T)crtn.o): Remove.
187 * config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
188 * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
189 * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
190 * config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
191 * config/pa/stublib.c: Move to libgcc/config/pa.
192 * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
193 * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
194 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
195 (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
196 (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
197 ($(T)libgcc_stub.a): Remove.
198 * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
199 (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
200 (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
201 (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
202 ($(T)libgcc_stub.a): Remove.
203 * config/rs6000/eabi-cn.asm: Move to
204 ../../../libgcc/config/rs6000/eabi-cn.S.
205 * config/rs6000/eabi-ci.asm: Move to
206 ../../../libgcc/config/rs6000/eabi-ci.S.
207 * config/rs6000/sol-ci.asm: Move to
208 ../../../libgcc/config/rs6000/sol-ci.S.
209 * config/rs6000/sol-cn.asm: Move to
210 ../../../libgcc/config/rs6000/sol-cn.S.
211 * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
212 (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
213 * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
214 Remove.
215 (EXTRA_MULTILIB_PARTS): Remove.
216 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
217 (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
218 ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
219 $(T)ncrtn$(objext)): Remove.
220 (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
221 * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
222 * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
223 * config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
224 * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
225 * config/score/t-score-elf: Remove.
226 * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
227 * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
228 * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
229 * config/sh/lib1funcs-4-300.asm: Move to
230 ../../../libgcc/config/sh/lib1funcs-4-300.S.
231 * config/sh/lib1funcs-Os-4-200.asm: Move to
232 ../libgcc/config/sh/lib1funcs-Os-4-200.S.
233 * config/sh/t-elf: Remove.
234 * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
235 * config/sh/t-linux64: Remove.
236 * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
237 * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
238 (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
239 ($(T)ic_invalidate_array_4-100.o)
240 ($(T)libic_invalidate_array_4-100.a)
241 ($(T)ic_invalidate_array_4-200.o)
242 ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
243 ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
244 ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
245 ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
246 ($(T)libgcc-4-300.a): Remove.
247 * config/sh/t-superh: Remove.
248 * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
249 * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
250 * config/spu/cache.S: Move to ../libgcc/config/spu.
251 * config/spu/cachemgr.c: Move to ../libgcc/config/spu.
252 * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
253 (EXTRA_MULTILIB_PARTS): Remove.
254 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
255 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
256 ($(T)cache64k.o, $(T)cache128k.o): Remove.
257 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
258 * config/t-libc-ok: Remove.
259 * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
260 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
261 * config/t-netbsd: Remove.
262 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
263 * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
264 * config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
265 ($(T)vcrt0.o, $(T)pcrt0.o): Remove.
266 * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
267 * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
268 * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
269 * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
270 Remove.
271 (EXTRA_MULTILIB_PARTS): Remove.
272 * config/xtensa/t-linux: Remove.
273 * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
274
272c5687 2752011-11-02 Uros Bizjak <ubizjak@gmail.com>
276
277 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use
278 CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2.
279
a997b0d8 2802011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
281
282 PR translation/45116
283 * Makefile.in (slibdir): Remove, don't export.
284 (SHLIB_NM_FLAGS): Remove.
285 (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
286 SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
287 SHLIB_MAPFILES, SHLIB_NM_FLAGS.
288 (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
289 (gcc.o): Pass SHLIB instead of SHLIB_LINK.
290 (gccspec.o): Likewise.
291 (installdirs): Don't create $(DESTDIR)$(slibdir).
292 * configure.ac (slibdir): Remove.
293 * configure: Regenerate.
294 * libgcc-libsystem.ver: Move to ../libgcc/config.
295 * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
296 * config/libgcc-glibc.ver: Move to ../libgcc/config.
297 * config/t-libunwind (SHLIB_LC): Remove.
298 * config/t-linux (SHLIB_MAPFILES): Remove.
299 * config/t-slibgcc-dummy: Rename to config/t-slibgcc.
300 * config/t-slibgcc-elf-ver: Remove.
301 * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
302 ../libgcc/config.
303 * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
304 to ../libgcc/config/alpha.
305 * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
306 SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
307 SHLIB_SYMVECX2, SHLIB_LINK): Remove.
308 * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
309 * config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
310 * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
311 SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
312 * config/arm/t-symbian (SHLIB_LC): Remove.
313 * config/bfin/libgcc-bfin.ver: Move to
314 ../libgcc/config/bfin/libgcc-glibc.ver.
315 * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
316 * config/c6x/libgcc-c6xeabi.ver: Move to
317 ../libgcc/config/c6x/libgcc-eabi.ver.
318 * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
319 * config/cris/libgcc.ver: Move to
320 ../libgcc/config/cris/libgcc-glibc.ver.
321 * config/cris/t-linux (SHLIB_MAPFILES): Remove.
322 * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
323 * config/frv/t-linux (SHLIB_MAPFILES): Remove.
324 * config/i386/darwin-libgcc.10.4.ver: Move to
325 ../libgcc/config/i386/libgcc-darwin.10.4.ver.
326 * config/i386/darwin-libgcc.10.5.ver: Move to
327 ../libgcc/config/i386/libgcc-darwin.10.5.ver.
328 * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
329 * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
330 SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
331 SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
272c5687 332 SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove.
a997b0d8 333 * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
334 SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
335 * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
336 ../libgcc/config/i386.
337 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
338 ../libgcc/config/i386.
339 * config/i386/t-linux: Move to ../libgcc/config/i386.
340 * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
341 * config/i386/t-mingw-w32 (SHLIB_LC): Remove.
342 * config/i386/t-mingw-w64: Likewise.
343 * config/i386/t-mingw32: Remove.
344 * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
345 to ../libgcc/config/ia64.
346 * config/ia64/t-glibc: Remove.
347 * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
348 * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
349 * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
350 SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
351 * config/ia64/vms_symvec_libgcc_s.opt: Remove.
352 * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
353 * config/m32r/t-linux (SHLIB_MAPFILES): Remove.
354 * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
355 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
356 * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
357 * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
358 Move to ../libgcc/config/pa.
359 * config/rs6000/darwin-libgcc.10.4.ver: Move to
360 ../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
361 * config/rs6000/darwin-libgcc.10.5.ver: Move to
362 ../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
363 * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
364 SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
365 * config/rs6000/t-aix52: Likewise.
366 * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
367 ../libgcc/config/sh.
368 * config/sparc/libgcc-sparc-glibc.ver: Move to
369 ../libgcc/config/sparc/libgcc-glibc.ver.
370 * config/sparc/t-linux: Move to ../libgcc/config/sparc.
371 * config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
372 * config/xtensa/libgcc-xtensa.ver: Move to
373 ../libgcc/config/xtensa/libgcc-glibc.ver.
374 * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
375 t-slibgcc in tmake_file.
376 Remove t-slibgcc-nolc-override for *-*-freebsd[34],
377 *-*-freebsd[34].* with pthreads.
378 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
379 *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
380 t-slibgcc-elf-ver with t-slibgcc in tmake_file.
381 (*-*-netbsd*): Likewise.
382 (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
383 (*-*-*vms*): Add t-slibgcc to tmake_file.
384 (alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
385 (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
386 tmake_file.
387 (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
388 arm*-*-linux-*eabi.
389 (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
390 tmake_file.
391 (crisv32-*-linux*, cris-*-linux*): Likewise.
392 (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
393 pa/t-slibgcc-dwarf-ver from tmake_file.
394 (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
395 tmake_file.
396 Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
397 (hppa*64*-*-hpux11*): Likewise.
398 (hppa[12]*-*-hpux11*): Likewise.
399 (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
400 tmake_file.
401 (x86_64-*-darwin*): Likewise.
402 (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
403 Add t-slibgcc to tmake_file.
404 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
405 Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
406 i[34567]86-w64-*.
407 Remove i386/t-mingw-pthread from tmake_file.
408 (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
409 (ia64*-*-hpux*): Add t-slibgcc to tmake_file.
410 (ia64-hp-*vms*): Likewise.
411 (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
412 tmake_file.
413 (m32rle-*-linux*): Likewise.
414 (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
415 (microblaze*-linux*): Remove t-slibgcc-elf-ver,
416 t-slibgcc-nolc-override from tmake_file.
417 (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
418 tmake_file.
419 (powerpc-*-darwin*): Likewise.
420 (powerpc64-*-darwin*): Likewise.
421 (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
422 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
423 (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
424 t-slibgcc to tmake_file.
425 (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
426 (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
427 (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
428 (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
429 (sparc-*-linux*): Remove sparc/t-linux from tmake_file.
430 (sparc64-*-linux*): Likewise.
431 (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
432 tmake_file.
433 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
434 x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
435 from tmake_file.
436
97ec7931 4372011-11-02 Richard Guenther <rguenther@suse.de>
438
439 PR tree-optimization/50902
440 * tree-vect-stmts.c (vectorizable_load): Properly convert
441 an invariant initializer element.
442
3aa6ac67 4432010-11-02 Richard Guenther <rguenther@suse.de>
444
445 PR tree-optimization/50890
446 * gimple.h (gimple_fold_call): Remove.
447 * gimple-fold.c (fold_stmt_1): Move all call related code to ...
448 (gimple_fold_call): ... here. Make static. Update the
449 cannot-inline flag on direct calls.
450 * ipa-inline.c (early_inliner): Copy the cannot-inline flag
451 from the statements to the edges.
452
62aab493 4532011-11-01 Ian Lance Taylor <iant@google.com>
454
455 * godump.c (struct macro_hash_value): Define.
456 (macro_hash_hashval): New static function.
457 (macro_hash_eq, macro_hash_del): New static functions.
458 (go_define): Use macro_hash_value to store values in macro_hash.
459 Replace an old value on a redefinition. Don't print anything to
460 go_dump_file.
461 (go_undef): Delete the entry from the hash table.
462 (go_output_typedef): For an enum, use macro_hash_value, and don't
463 print anything to go_dump_file.
464 (go_print_macro): New static function.
465 (go_finish): Traverse macro_hash with go_print_macro.
272c5687 466 (dump_go_spec_init): Update macro_hash creation for macro_hash_value.
62aab493 467
b625e58b 4682011-11-02 Alan Modra <amodra@gmail.com>
469
470 * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
471
8fe701f5 4722011-11-01 Paolo Carlini <paolo.carlini@oracle.com>
473
474 PR c++/44277
475 * doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
476
ef419a26 4772011-11-01 Andrew Stubbs <ams@codesourcery.com>
478
479 * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
480
4e5a7a2f 4812011-11-01 Uros Bizjak <ubizjak@gmail.com>
482
483 * config/i386/i386.md (splitters for int-float conversion): Use
d3f277f4 484 SUBREG_REG on SUBREGs in splitter constraints.
4e5a7a2f 485
c152f9e5 4862011-11-01 Jakub Jelinek <jakub@redhat.com>
487
488 * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
489 prototype.
490 * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
491 function.
4e5a7a2f 492 * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
c152f9e5 493 (ssepackfltmode): New mode attr.
494 (vec_pack_ufix_trunc_<mode>): New expander.
495
4e5a7a2f 4962011-11-01 Uros Bizjak <ubizjak@gmail.com>
140386b5 497
4e5a7a2f 498 PR target/50940
140386b5 499 * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
500 Compare <ssevecmode>mode with V4SFmode, not V4SImode.
501
fef79628 5022011-11-01 Peter Bergner <bergner@vnet.ibm.com>
503
504 * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
505 * config/rs6000/476.h: New file.
506 * config/rs6000/476.opt: Likewise.
507 * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
508 (SET_TARGET_LINK_STACK): Likewise.
509 (TARGET_ASM_CODE_END): Define.
510 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
511 TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
512 (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
513 code if TARGET_LINK_STACK.
514 (rs6000_emit_load_toc_table): Likewise.
515 (output_function_profiler): Likewise
516 (macho_branch_islands): Likewise
517 (machopic_output_stub): Likewise
518 (get_ppc476_thunk_name): New function.
519 (rs6000_code_end): Likewise.
520 * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
521 Convert to a define_expand.
522 (load_toc_v4_PIC_1_normal): New define_insn.
523 (load_toc_v4_PIC_1_476): Likewise.
524 (load_toc_v4_PIC_1b_normal): Likewise.
525 (load_toc_v4_PIC_1b_476): Likewise.
526
fd2db4d6 5272011-11-01 Georg-Johann Lay <avr@gjlay.de>
528
529 PR target/50910
530 * config/avr/avr.opt (-mbranch-cost=): New option.
531 * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
532 * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
533 * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
4e5a7a2f 534 (*addhi3_zero_extend1): Remove % in constraint of operand 1.
fd2db4d6 535 (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
536
9375b71f 5372011-11-01 Tom de Vries <tom@codesourcery.com>
538
539 PR tree-optimization/50908
540 * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
541 before update_vuses, test for 1 predecessor rather than two.
542 (delete_block_update_dominator_info): New function, part of it factored
543 out of ...
544 (replace_block_by): Use delete_block_update_dominator_info. Call
545 update_vuses after deleting bb1 and updating dominator info, instead of
546 before.
547
efa273f5 5482011-11-01 David S. Miller <davem@davemloft.net>
549
3b9d400e 550 * config/sparc/sparc.c (vector_init_faligndata): New function.
551 (sparc_expand_vector_init): Use it for V4HImode on VIS1.
552
efa273f5 553 * config/sparc/sparc.c (sparc_expand_vcond): New function.
554 * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
555 * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
556 (vconduv8qiv8qi): Likewise.
557
c206bb4e 5582011-11-01 Alexandre Oliva <aoliva@redhat.com>
559
560 PR debug/50869
561 * cselib.c (cfa_base_preserved_regno): Initialize.
562 (cselib_expand_value_rtx_1): Don't expand it.
563 * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
564 Check it's only zero if result is NULL.
565
d6b69370 5662011-11-01 Jakub Jelinek <jakub@redhat.com>
567
f155d038 568 * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
569 expander.
570
d6b69370 571 * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
572 (sseintvecmodelower): New mode iterator.
573 (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
574 (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
575 (floatunsv4siv4sf2): Macroize into...
576 (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
577
d86c078a 5782011-10-31 David S. Miller <davem@davemloft.net>
579
9eb6eca9 580 * config/sparc/sparc.md (cmask patterns): Allow zero operand.
581
d86c078a 582 * dwarf2out.c (cached_next_real_insn): New.
583 (dwarf2out_end_epilogue): Set it to NULL_RTX.
584 (dwarf2out_var_location): Remove cached_next_real_insn local static.
585
5f813a0a 5862011-10-31 Richard Henderson <rth@redhat.com>
587
588 * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
589 (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
590 (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
591 (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
592 (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
593 (floatv4siv4df2): Rename from avx_cvtdq2pd256.
594 (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
595 (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
596 * config/i386/i386.md (splitters for int-float conversion): Likewise.
597 * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
598 (bdesc_args): Likewise.
599 (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
600 (ix86_vectorize_builtin_conversion): Remove.
601 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
602
ad2ffc0d 6032011-10-31 Martin Jambor <mjambor@suse.cz>
604
605 * ipa-prop.c (mark_modified): Moved up in the file.
606 (is_parm_modified_before_call): Renamed to
607 is_parm_modified_before_stmt, moved up in the file.
608 (load_from_unmodified_param): New function.
609 (compute_complex_assign_jump_func): Also attempt to create pass
610 through jump functions for values loaded from (addressable)
611 parameters.
612
f381ff7c 6132011-10-31 Jakub Jelinek <jakub@redhat.com>
614
615 * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
616 in a loop and has different type from op0, cast it to op0's type
617 before the loop first. For slp give up. Don't crash if op1_vectype
618 is NULL.
619
e54aa8a4 6202011-10-31 Paul Brook <paul@codesourcery.com>
621
622 * cgraphunit.c: Don't mark clones as static constructors.
623
34e28383 6242011-10-31 David Edelsohn <dje.gcc@gmail.com>
625
626 * gcc-ar: Do not include stdio.h.
627
6282011-10-31 Diego Novillo <dnovillo@google.com>
2436e5d5 629
630 * tree-streamer-out.c (pack_ts_base_value_fields): Emit
631 TYPE_ADDR_SPACE.
632 * tree-streamer-in.c (unpack_ts_base_value_fields): Read
633 TYPE_ADDR_SPACE.
634
4ef5ea12 6352011-10-30 David S. Miller <davem@davemloft.net>
636
c5cdc12d 637 * config/sparc/sparc.c (vector_init_bshuffle): New function.
638 (vector_init_fpmerge): New function.
639 (sparc_expand_vector_init): Use them to improve non-const cases.
640
4ef5ea12 641 * dwarf2out.c (dwarf2out_var_location): When processing several
642 consecutive location notes, cache the result of next_real_insn().
643
eea5ff47 6442011-10-30 Uros Bizjak <ubizjak@gmail.com>
645
646 * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
647 avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
648 (vec_dupv4sf): Remove expander.
649 (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
650 (vec_dupv2df): Remove expander.
651 (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
652 (*vec_concatv2df): Merge *vec_concatv2df_sse3.
653 (*vec_dupv4si): Merge *vec_dupv4si_avx.
654 (*vec_dupv2di): Merge *vec_dupv2di_sse3.
655
b423d9f7 6562011-10-30 Dmitry Plotnikov <dplotnikov@ispras.ru>
657
658 * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
659 * optabs.c (supportable_convert_operation): New function.
660 * optabs.h (supportable_convert_operation): New prototype.
661 * tree-vect-stmts.c (vectorizable_conversion): Change condition and
662 behavior for NONE modifier case.
663 * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
664
40dfedc8 6652011-10-30 Jakub Jelinek <jakub@redhat.com>
666
667 * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
668 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
669 function.
670 (vect_vect_recog_func_ptrs): Add it.
671
fa1ad02f 6722011-10-30 David S. Miller <davem@davemloft.net>
673
674 * reorg.c (label_before_next_insn): New function.
675 (relax_delay_slots): Use it instead of prev_label.
676 * rtl.h (prev_label): Delete declaration.
677 * emit-rtl.c (prev_label): Remove.
678
6c3ff102 6792011-10-30 Revital Eres <revital.eres@linaro.org>
680
681 * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
682 as BB_DISABLE_SCHEDULE.
683 (mark_loop_unsched): New function.
684 (sms_schedule): Call it.
685
e202682d 6862011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
687
688 PR target/50617
689 * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
690 (cmpib_comparison_operator): Likewise.
691 (following_cal, output_and, output_ior, output_move_double,
692 output_fp_move_double, output_block_move, output_block_clear,
693 output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
694 output_movb, output_parallel_movb, output_parallel_addb, output_call,
695 output_indirect_call, output_millicode_call, output_mul_insn,
696 output_div_insn, output_mod_insn, singlemove_string,
697 output_arg_descriptor, output_global_address, print_operand,
698 legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
699 fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
700 emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
701 hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
702 attr_length_indirect_call, return_addr_rtx, function_arg_padding,
703 insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
704 output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
705 hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
706 compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
707 reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
708 exported functions and variables with "pa_".
709 * config/pa/predicates.md: Likewise.
710 * config/pa/pa64-hpux.h: likewise.
711 * config/pa/som.h: Likewise.
712 * config/pa/elf.h: Likewise.
713 * config/pa/pa64-linux.h: Likewise.
714 * config/pa/pa.md: Likewise.
715 * config/pa/pa.c: Likewise.
716 * config/pa/pa-linux.h: Likewise.
717 * config/pa/pa.h: Likewise.
718 * config/pa/constraints.md: Likewise.
719
9f689820 7202011-10-29 Uros Bizjak <ubizjak@gmail.com>
721
722 * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
723 Update all uses.
724 (xop_shl<mode>3): Rename from xop_lshl<mode>3. Update all uses.
725 * config/i386/i386.c: Update all uses.
726
885c8b76 7272011-10-29 Uros Bizjak <ubizjak@gmail.com>
728
729 * config/i386/i386.md (lshlv16qi3): Remove expander.
730 (lshrv16qi3): New expander.
731 (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
732 using any_shiftrt code iterator. Cleanup.
733 (ashlv16qi3): Cleanup.
734 (ashrv2di3): Ditto.
735
f784d2ac 7362011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
737
738 PR target/50691
885c8b76 739 * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
740 references.
f784d2ac 741 (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
742 and TLS_MODEL_LOCAL_DYNAMIC symbol references.
743
a12b9b80 7442011-10-29 Georg-Johann Lay <avr@gjlay.de>
745
746 PR target/50887
747 * config/avr/avr.opt (-maccumulate-args): New option.
748 * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
749 avr_starting_frame_offset.
750 (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
751 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
752 (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
753 (UNSPECV_WRITE_SP): New constant.
754 (*addhi3_sp_R): Rewrite to...
755 (*addhi3_sp): ...this new insn.
756 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
757 (movhi_sp_r): ...this new insn.
758 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
759 (avr_starting_frame_offset): New.
760 * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
761 (avr_starting_frame_offset): New function.
762 (avr_outgoing_args_size): New static function.
763 (avr_initial_elimination_offset): Use it.
764 (avr_simple_epilogue): Use it.
765 (avr_asm_function_end_prologue): Use it.
766 (expand_epilogue): Use it.
767 (expand_prologue): Use it. Break out code to...
768 (avr_prologue_setup_frame): ...this new static function.
769 (avr_can_eliminate): Allow eliminating to frame pointer if there
770 is one.
771 (avr_frame_pointer_required_p): Use frame pointer if target has a
772 nonlocal label.
773 * config/avr/constraints.md (R): Remove.
774 (Csp): New constraint.
775 * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
776
3b9a92b3 7772011-10-29 Andi Kleen <ak@linux.intel.com>
778
779 * gcc-ar.c (target_machine): Add.
780
5b96044e 7812011-10-29 Anatoly Sokolov <aesok@post.ru>
782
783 * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
784 cris_constant_index_p, cris_base_p, cris_index_p,
785 cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
786 cris_legitimate_address_p): New functions.
787 (TARGET_LEGITIMATE_ADDRESS_P): Define.
788 (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
789 from rtx to const_rtx.
790 (cris_print_operand_address, cris_address_cost,
791 cris_side_effect_mode_ok): Use
792 cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
793 cris_biap_index_p and cris_bdap_index_p.
794 * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
795 BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
796 REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
797 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
798 cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
799 cris_biap_index_p and cris_bdap_index_p.
800 * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
801 cris_base_p.
802 * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
803 cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
804 prototype.
805 (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
806
25a28b44 8072011-10-21 Andi Kleen <ak@linux.intel.com>
808
809 * ggc-page (PAGE_ALIGN): Add.
810 (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
811 Replace ROUND_UP with PAGE_ALIGN.
812
4a2f812e 8132011-10-20 Andi Kleen <ak@linux.intel.com>
814
815 * ggc-page (alloc_anon): Add check argument.
816 (alloc_page): Add fallback to 1 page allocation.
817 Adjust alloc_anon calls to new argument.
818
e8b7c612 8192011-10-18 Andi Kleen <ak@linux.intel.com>
820
821 * ggc-page (release_pages): First free large continuous
822 chunks in the madvise path.
823
76f0411d 8242011-10-18 Andi Kleen <ak@linux.intel.com>
825
826 * ggc-page.c (alloc_pages): Always round up entry_size.
827
46215dc9 8282011-10-19 Andi Kleen <ak@linux.intel.com>
829
830 * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
831 (native): Add gcc-ar, gcc-nm, gcc-ranlib.
832 (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
885c8b76 833 gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
46215dc9 834 (install): Depend on install-gcc-ar.
835 (install-gcc-ar): Add.
836 (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
837 * gcc-ar.c: Add new file.
838
9174dc2d 8392011-10-28 Pat Haugen <pthaugen@us.ibm.com>
840
841 * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
842 * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
843 type for V2DF.
844 (VStype_div): Use vector types for V2DF/V4SF.
845 (VStype_sqrt): Use *sqrt types.
846 (VS_spdp_type): Change type to vecdouble.
847 (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
848 vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
849 vsx_xvcvspuxds): Likewise.
850 (*vsx_fms<mode>4): Set type via <VStype_mul>.
851 (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
852 <VStype_simple>.
853 * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
854 (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
855 power7-dsqrt): Correct insn latency.
856 (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
857 (power7-veccmp): Delete.
858 (power7-vecfloat): Correct latency/dispatch/VSU values.
859 (define_bypass "power7-vecfloat"): Correct latency and types.
860 (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
861 (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
862
8e73e3ae 8632011-10-28 Uros Bizjak <ubizjak@gmail.com>
864
865 * config/i386/i386.md (shift_insn): Rename code attribute from
866 shiftrt_insn. Also handle ashift RTX.
867 (shift): Rename code attribute from shiftrt. Also handle ashift RTX.
3297e0a4 868 (vshift): New code attribute.
8e73e3ae 869 (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
3297e0a4 870 (any_lshift): Move and rename code iterator from ...
871 * config/i386/sse.md (lshift): ... here.
8e73e3ae 872 (lshift_insn): Remove code attribute.
873 (lshift): Remove code attribute.
874 (vlshr<mode>3): Use lshiftrt RTX.
3297e0a4 875 (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
876 (vashl<mode>3, ashlv16qi3): Use ashift RTX.
8e73e3ae 877 (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>. Use
878 any_lshift code iterator. Update asm template.
3297e0a4 879 (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
880 usign any_lshift code iterator.
881 * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
882 mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
8e73e3ae 883 * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
884
325f05ac 8852011-10-28 Georg-Johann Lay <avr@gjlay.de>
886
887 PR target/49313
888 * config/avr/avr.md (parityhi2): Expand allowing pseudos.
889 (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
890 to the libgcc insn.
891 (*parityqihi2): Same for 8-bit parity.
892
9887aad3 8932011-10-28 Julian Brown <julian@codesourcery.com>
894
895 PR rtl-optimization/47918
9887aad3 896 * reload1.c (set_initial_label_offsets): Use initial offsets
897 for labels on the nonlocal_goto_handler_labels chain.
898
053e7007 8992011-10-28 Iain Sandoe <iains@gcc.gnu.org>
900
8e73e3ae 901 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
053e7007 902 Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
903 (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm.
904 (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
905 config/t-darwin.
906 * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
907 (GP_SAVE_INLINE): Likewise.
908 (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
909 RESTORE_FP_SUFFIX): Set to empty strings.
910 * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
911 (debug_stack_info): Print savres_strategy.
912 (rs6000_savres_routine_name): Implement for Darwin.
913 (rs6000_make_savres_rtx): Adjust used register for Darwin.
914 (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
915 (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
916 (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
917 * config/rs6000/darwin-gpsave.asm: New file.
918
7d079352 9192011-10-28 Jakub Jelinek <jakub@redhat.com>
920
921 * config/i386/sse.md (VI4SD_AVX2): Removed.
922 (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
923 (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
924 Add another expander using VI48_128 iterator for
925 TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
926 for TARGET_AVX2.
927 (vlshr<mode>3): Likewise. Change register_operand predicate to
928 nonimmediate_operand on last operand in the VI12_128 expander.
929 (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
930 (vashrv4si3, vashrv8si3): New expanders.
931 (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
932 avx2_<lshift>vv2di): Removed.
933 (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
934 (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
935 iterator. Simplify pattern.
936
b84346c6 9372010-10-28 Richard Guenther <rguenther@suse.de>
938
939 PR driver/50876
940 * lto-wrapper.c (get_options_from_collect_gcc_options):
941 Properly count arguments.
942 (run_gcc): Use an obstack to collect argv, properly separate
943 switches and their arguments.
944
702ee50d 9452011-10-28 Jakub Jelinek <jakub@redhat.com>
946
947 * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
948 vector mode from vectype's mode.
949
5998acf1 9502011-10-28 Chung-Lin Tang <cltang@codesourcery.com>
951
952 PR rtl-optimization/49720
953 * simplify-rtx.c (simplify_relational_operation_1): Detect
954 infinite recursion condition in "(eq/ne (plus x cst1) cst2)
955 simplifies to (eq/ne x (cst2 - cst1))" case.
956
417491d1 9572011-10-27 David S. Miller <davem@davemloft.net>
958
9c304cc0 959 * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
960 (*snedi_zero): Likewise.
961 (*snedi_zero_trunc): Likewise.
962 (snedi_special_vis3): New expander.
963 (*snedi_zero_vis3): New insn.
964 (*snedi_zero_trunc_vis3): Likewise.
965 (*sltu_insn_vis3): Likewise.
966 (*sltu_insn_vis3_trunc): Likewise.
967 (addxc): Likewise.
968 (*addxc_trunc_sp64_vis3): Likewise.
969 * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
970 gen_snedi_special_vis3 expander, and try GTU/LTU addx based
971 sequences on DImode values.
972
3b0af68d 973 * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
974 constraint.
975
417491d1 976 * regcprop.c (copyprop_hardreg_forward_1): Reject the
977 transformation when we narrow the mode on big endian.
978
d1db24b5 9792011-10-27 Jakub Jelinek <jakub@redhat.com>
980
83c4576f 981 * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
982 vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
983 (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
984
d1db24b5 985 * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
986 overrides for -masm=intel memory.
987 * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
988 sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
989 sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
990 sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
991 (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
992 sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
993 (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
994
05d4e04f 9952011-10-27 Martin Jambor <mjambor@suse.cz>
996
997 * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
998 to parm_ainfo.
999 (ipa_compute_jump_functions_for_edge): Likewise.
1000 (ipa_compute_jump_functions): Likewise.
1001 (ipa_analyze_indirect_call_uses): Likewise.
1002 (ipa_analyze_call_uses): Likewise.
1003 (ipa_analyze_params_uses): Likewise.
1004 (ipa_analyze_node): Likewise.
1005
7e3c9723 10062011-10-27 Uros Bizjak <ubizjak@gmail.com>
1007
1008 PR target/50875
8e73e3ae 1009 * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
7e3c9723 1010 constraints. Change alternative 1 to "x,m,1".
1011
7c154220 10122011-10-27 Jakub Jelinek <jakub@redhat.com>
1013
d5fe1e53 1014 * Makefile.in (build/gencheck.o): Depend on tree.def and
1015 c-family/c-common.def.
1016
7c154220 1017 * tree-ssa-strlen.c: Include expr.h.
1018 (get_stridx): Don't use c_strlen, instead use string_constant
1019 and compute string length from it.
1020 * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
1021
99bef0c5 10222011-10-27 Eric Botcazou <ebotcazou@adacore.com>
1023
1024 PR rtl-optimization/46603
1025 PR bootstrap/50879
1026 * reload.c (push_reload): In the out case, restore previous behavior
1027 for subregs that don't have word mode.
1028
6e8421cb 10292011-10-27 Ian Lance Taylor <iant@google.com>
1030
1031 * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
7e3c9723 1032 CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
6e8421cb 1033 (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
1034 defined.
1035
c919ba70 10362011-10-27 Richard Henderson <rth@redhat.com>
1037
1038 * optabs.c (expand_vec_perm): Use the correct mode for scaling the
1039 selector. Save the qimode constant selector for later use by the
1040 qimode vec_perm pattern.
1041
6d004ec3 10422011-10-27 Bernd Schmidt <bernds@codesourcery.com>
1043
1044 * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
1045 to unit_req_factor to the right enum type.
1046 (get_unit_operand_masks, reshuffle_units, try_rename_operands,
1047 hwloop_optimize): Remove unused variables.
1048
eab22dca 10492010-10-27 Richard Guenther <rguenther@suse.de>
1050
1051 PR middle-end/50731
1052 * tree-vect-generic.c (do_binop): Handle scalar operands.
1053
9525a1bb 10542011-08-27 Uros Bizjak <ubizjak@gmail.com>
1055
1056 PR target/37191
1057 * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
1058 from different units in a single alternative.
1059
6c53772f 10602011-10-26 David S. Miller <davem@davemloft.net>
1061
9ec4ffaa 1062 * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
1063 if we're comparing DImode and comparison is other than EQ or NE.
1064
40d0b2ad 1065 * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
1066 LEU/LTU/GEU/GTU is attempted.
1067 * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
1068 and split.
1069 (*neg_seqsi_sign_extend): Likewise.
1070 (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
1071 *neg_sgeu_extend_sp64): New insns.
1072
6c53772f 1073 * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
1074 * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
1075 (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
1076 (*mov<I:mode>_cc_reg_sp64): Likewise.
1077 (*movsf_cc_v9): Likewise.
1078 (*movsf_cc_reg_sp64): Likewise.
1079 (*movdf_cc_v9): Likewise.
1080 (*movdf_cc_reg_sp64): Likewise.
1081 (*movtf_cc_hq_v9): Likewise.
1082 (*movtf_cc_reg_hq_sp64): Likewise.
1083 (*movtf_cc_v9): Likewise.
1084 (*movtf_cc_reg_sp64): Likewise.
1085 * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
1086 (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
1087
8ffd11f4 10882011-10-26 Eric Botcazou <ebotcazou@adacore.com>
1089
1090 * reload.c (reload_inner_reg_of_subreg): Change type of return value
1091 and type of OUTPUT parameter to bool and adjust. Document MODE and
1092 OUTPUT parameters. Use HARD_REGISTER_P. Reorder final condition
1093 and improve associated comment.
1094 (push_reload): Clarify and update comments about reloading of subregs.
1095 Adjust calls to reload_inner_reg_of_subreg. Compute the class upfront
1096 for the reloading of subregs in the out case as well.
1097
d59975de 10982011-10-26 Alexandre Oliva <aoliva@redhat.com>
1099
1100 PR debug/50826
1101 * var-tracking.c (rtx_debug_expr_p): New.
1102 (use_type): Don't use debug exprs to track non-VTA variables.
1103
77ecaaba 11042011-10-26 Jeff Law <law@redhat.com>
1105
1106 * doc/invoke.texi (sink-frequency-threshold): Document.
1107 * tree-ssa-sink.c: Include params.h.
1108 (select_best_block): New function.
1109 (statement_sink_location): Use it.
1110 * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
1111
8ffd11f4 11122011-10-26 Iain Sandoe <iains@gcc.gnu.org>
13e2f0a0 1113
1114 PR target/48108
1115 * config/darwin.c (top level): Amend comments concerning LTO output.
1116 (lto_section_num): New variable. (darwin_lto_section_e): New GTY.
1117 (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
1118 (LTO_NAMES_SECTION): Rename.
1119 (darwin_asm_named_section): Record LTO section counts and switches
1120 in a vec of darwin_lto_section_e.
1121 (darwin_file_start): Remove unused code.
1122 (darwin_file_end): Put an LTO section termination label. Handle
1123 output of the wrapped LTO sections, index and names table.
1124
e0ec8173 11252011-10-26 Alan Modra <amodra@gmail.com>
1126
1127 * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
1128 declaration.
1129 (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
1130 (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx. Use
1131 simple_return in pattern, emit instruction, and set jump_label.
1132 (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx. Use
1133 simple_return rather than return.
1134 (emit_cfa_restores): New function.
1135 (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
1136 Add missing cfa_restores for SAVE_WORLD. Add missing LR cfa_restore
1137 when using out-of-line gpr restore. Add missing LR and FP regs
1138 cfa_restores for out-of-line fpr restore. Consolidate code setting
1139 up cfa_restores. Formatting. Use LR_REGNO define.
1140 (rs6000_output_mi_thunk): Use simple_return rather than return.
1141 * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
1142 (return_internal*): Likewise.
1143 (any_return, return_pred, return_str): New iterators.
1144 (return, conditional return insns): Provide both return and
1145 simple_return variants.
1146 * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
1147 (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
1148 Move r11 and r0 later to suit shrink-wrapping.
1149
eefcf076 11502011-10-26 Richard Guenther <rguenther@suse.de>
1151
1152 * lto-wrapper.c (run_gcc): Properly init/free obstack.
1153
de084923 11542011-10-26 Jakub Jelinek <jakub@redhat.com>
1155
1156 * config/i386/i386.md (UNSPEC_VSIBADDR): New.
1157 * config/i386/predicates.md (vsib_address_operand,
1158 vsib_mem_operator): New predicates.
1159 * config/i386/i386.c (ix86_print_operand_address): Handle
1160 UNSPEC_VSIBADDR addresses.
1161 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
1162 avx2_gatherdi<mode>256): Adjust expanders to use MEM with
1163 UNSPEC_VSIBADDR address.
1164 (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
1165 Adjust insns to use MEM with UNSPEC_VSIBADDR address.
1166
c7d1c875 11672011-10-26 Tom de Vries <tom@codesourcery.com>
1168
1169 PR tree-optimization/50763
1170 * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
1171 phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
1172
00d389c8 11732011-10-26 Richard Guenther <rguenther@suse.de>
1174
1175 PR lto/41844
9525a1bb 1176 * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
00d389c8 1177 (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
1178 * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
1179 (run_gcc): Use it. Filter out language specific options.
1180
e1f53ecd 11812011-10-26 Andreas Tobler <andreast@fgznet.ch>
1182
1183 * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
1184 32-bit target does.
1185
5d3a7a30 11862011-10-25 Paolo Carlini <paolo.carlini@oracle.com>
1187
4d3e0743 1188 PR driver/46617
5d3a7a30 1189 * gcc.c (main): Fix fatal_error string for translation.
1190
9a14ac4f 11912011-10-25 Ian Lance Taylor <iant@google.com>
1192
1193 * tree-eh.c (do_return_redirection): Remove return_value_p
1194 parameter. Change all callers.
1195 (lower_try_finally_nofallthru): Remove local return_val.
1196 (lower_try_finally_onedest): Likewise.
1197 (lower_try_finally_copy): Likewise.
1198 (lower_try_finally_switch): Likewise.
1199
b9da0a05 12002011-10-25 H.J. Lu <hongjiu.lu@intel.com>
1201
1202 * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
1203 remove "&& !TARGET_64BIT"
1204 (*mmx_maskmovq_rex): Removed.
1205
6211b3f4 12062011-10-25 Eric Botcazou <ebotcazou@adacore.com>
1207
1208 PR rtl-optimization/46603
1209 * reload.c (push_reload): In the out case, reload the subreg as well
1210 as the reg if it has word mode.
1211
7ea9280f 12122011-10-25 Eric Botcazou <ebotcazou@adacore.com>
1213
1214 * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
1215 suppress debug info for the parent type.
1216
85a98f46 12172011-10-25 Eric Botcazou <ebotcazou@adacore.com>
1218
1219 * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
1220
4b50824b 12212011-10-25 Richard Henderson <rth@redhat.com>
1222
0ace5a41 1223 * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
1224 (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
1225
0da2935d 1226 * config/rs6000/altivec.md (vec_extract_evenv8hi,
1227 vec_extract_evenv16qi, vec_extract_oddv4si,
1228 vec_extract_oddv4sf): Remove.
1229
535780a5 1230 * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
1231 vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
1232 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
1233 vec_interleave_highv4sf, vec_interleave_lowv4sf,
1234 vec_interleave_highv4si, vec_interleave_lowv4si,
1235 vec_interleave_highv8hi, vec_interleave_lowv8hi,
1236 vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
1237
6620d7d7 1238 * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
1239 [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
1240 [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
1241 * optabs.c (expand_binop): Implement vec_interleave_high_optab,
1242 vec_interleave_low_optab, vec_extract_even_optab,
1243 vec_extract_odd_optab with expand_vec_perm.
1244 (can_vec_perm_for_code_p): New.
1245 * optabs.h: Update.
1246 * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
1247 fallback via can_vec_perm_for_code_p.
1248 (vect_strided_load_supported): Likewise.
1249 * tree-vect-generic.c (expand_vector_operations_1): Never lower
1250 VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
1251 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
1252
e21c468f 1253 * target.def (vec_perm_const_ok): Change parameters to mode and
1254 array of indicies.
1255 * doc/tm.texi: Rebuild.
1256 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
1257 parameters to mode and array of indicies.
1258 * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
1259 * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
1260 Change parameters to mode and array of indicies.
1261 (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
1262 (expand_vec_perm): Rename from expand_vec_perm_expr. Change
1263 parameters to mode and rtx inputs. Try lowering to QImode
1264 vec_perm_const before trying fully variable permutation.
1265 * optabs.h: Update decls.
1266 * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
1267 VECTOR_CST to pass to can_vec_perm_p.
1268 * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
1269 from int pointer to unsigned char pointer.
1270 (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
1271 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
1272
4b50824b 1273 * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
1274 (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
1275 VEC_INTERLEAVE_LOW_EXPR): Likewise.
1276
85a98f46 12772011-10-25 Mike Stump <mikestump@comcast.net>
3ea04b3a 1278
1279 * reload.c (regno_clobbered_p): Fix typo.
1280
85a98f46 12812011-10-25 Dodji Seketeli <dodji@redhat.com>
5ebe2143 1282
7e3c9723 1283 * input.c (expand_location): Rewrite using linemap_resolve_location
1284 and linemap_expand_location. Add a comment.
5ebe2143 1285
d6152abc 12862011-10-25 Jakub Jelinek <jakub@redhat.com>
1287
1288 PR tree-optimization/50596
1289 * tree-vect-stmts.c (vect_mark_relevant): Only use
1290 FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
1291 (vectorizable_store): If is_pattern_stmt_p look through
1292 VIEW_CONVERT_EXPR on lhs.
1293 * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
1294 Use unsigned type instead of signed.
1295 (vect_recog_bool_pattern): Optimize also stores into bool memory in
1296 addition to casts from bool to integral types.
1297 (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
1298 created, don't create it again.
1299
63ea70c3 13002011-10-25 Kai Tietz <ktietz@redhat.com>
1301
1302 * config/i386/i386.c (ix86_frame_pointer_required): Require
1303 frame-pointer, if setjmp is used for 32-bit ms-abi.
1304
4d8e0d6d 13052011-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1306
1307 * builtins.c (set_builtin_user_assembler_name): Remove extra
1308 newline added in October 11th, 2011 change.
1309
4aa70596 13102011-10-24 David S. Miller <davem@davemloft.net>
1311
7abb12da 1312 * config/sparc/little-endian.opt: Delete.
1313 * config.gcc: Remove references to config/sparc/little-endian.opt
1314 * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
1315 * config/sparc/linux64.h: Delete references to -mlittle-endian.
1316 * config/sparc/netbsd-elf.h: Likewise.
1317 * config/sparc/openbsd64.h: Likewise.
1318 * config/sparc/sparc.h: Likewise.
1319 * config/sparc/sp64-elf.h: Likewise and delete overrides for
1320 BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
1321 * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
1322 to MASK_LITTLE_ENDIAN.
1323 * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
1324
9525a1bb 1325 * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
1326 Only use D, Y, and Z constraints in vector insns.
0db4cb41 1327
4aa70596 1328 * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
1329 (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
1330 called *movsi_insn.
1331 (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
1332 into *movdi_insn_sp32.
1333 (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
1334 one pattern called *movdi_insn_sp64.
1335 (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
1336 Consolidate into one pattern called *movsf_insn.
1337 (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
1338 *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
1339 into *movdf_insn_sp32.
1340 (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
1341 *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
1342 *movdf_insn_sp64.
1343 (*zero_extendsidi2_insn_sp64_novis3,
1344 *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
1345 called *zero_extendsidi2_insn_sp64.
1346 (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
1347 Consolidate into one pattern named *sign_extendsidi2_insn.
1348 (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
1349 Consolidate into one pattern named *mov<VM32:mode>_insn.
1350 (*mov<VM64:mode>_insn_sp64_novis3,
1351 *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
1352 named *mov<VM64:mode>_insn_sp64.
1353 (*mov<VM64:mode>_insn_sp32_novis3,
1354 *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
1355 named *mov<VM64:mode>_insn_sp32.
1356
364de285 13572011-10-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1358
1359 * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
1360 (zero_length_string): Change assertion to accept strinfo without
1361 length but with stmt instead.
1362 Set the endptr pointer also if starting a new chain.
1363 (adjust_related_strinfos): Ignore strinfos marked for delayed
1364 length computation.
1365 (handle_builtin_strcpy): Mark earlier strinfo elements also for
1366 delayed length computation.
1367
df1d347d 13682011-10-24 Georg-Johann Lay <avr@gjlay.de>
1369
1370 PR target/50820
1371 Port from 4.6 branch r180379
1372 * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
1373 handling and indirect jump/calls on devices > 128k.
1374
91f3009d 13752011-10-24 Anatoly Sokolov <aesok@post.ru>
1376 Georg-Johann Lay <avr@gjlay.de>
1377
1378 PR target/49824
1379 * doc/extend.texi (Declaring Attributes of Functions):
1380 Document OS_main and OS_task attributes.
1381 (Specifying Attributes of Variables): Move up
1382 subsection "AVR Variable Attributes" as of alphabetical order.
1383
6960a794 13842011-10-24 Richard Guenther <rguenther@suse.de>
1385
1386 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
1387 to vector element type.
1388 (vectorizable_assignment): Bail out for non-mode-precision operations.
1389 (vectorizable_shift): Likewise.
1390 (vectorizable_operation): Likewise.
1391 (vectorizable_type_demotion): Likewise.
1392 (vectorizable_type_promotion): Likewise.
1393 (vectorizable_store): Handle non-mode-precision stores.
1394 (vectorizable_load): Handle non-mode-precision loads.
1395 (get_vectype_for_scalar_type_and_size): Return a vector type
1396 for non-mode-precision integers.
1397 * tree-vect-loop.c (vectorizable_reduction): Bail out for
1398 non-mode-precision reductions.
1399
c1aa8817 14002011-10-24 Julian Brown <julian@codesourcery.com>
1401
1402 * config/m68k/m68k.c (notice_update_cc): Tighten condition for
9525a1bb 1403 setting CC_REVERSED for FP comparisons.
c1aa8817 1404
a927c5fa 14052011-10-24 Richard Guenther <rguenther@suse.de>
1406
1407 PR tree-optimization/50838
1408 * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
1409 a MEM_REF base if we change it.
1410
b2528b76 14112011-10-24 Bernd Schmidt <bernds@codesourcery.com>
1412
1413 PR bootstrap/50836
1414 * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
1415
bba37413 1416 PR rtl-optimization/50833
1417 * function.c (thread_prologue_and_epilogue_insns): Expect the
1418 return insn optimization only if optimize.
1419
a45076aa 14202011-10-24 Georg-Johann Lay <avr@gjlay.de>
1421
1422 * config/avr/avr.c: Break long lines.
1423 Define target hooks on the fly if applicable.
1424 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
1425 overridden later.
1426 (targetm): Move definition to end of file.
1427 (avr_can_eliminate): Make static on the fly.
1428 (avr_frame_pointer_required_p): Ditto.
1429 (avr_hard_regno_scratch_ok): Ditto.
1430 (avr_builtin_setjmp_frame_value): Make static on the fly.
1431 Indent according to coding rules.
1432 (avr_case_values_threshold): Ditto.
1433 (avr_attribute_table): Move down.
1434
5ea0545e 14352011-10-24 Ira Rosen <ira.rosen@linaro.org>
1436
1437 PR tree-optimization/50730
1438 * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
1439 analysis if encountered unsupported data-ref.
1440
308d5709 14412011-10-23 David S. Miller <davem@davemloft.net>
1442
2f415446 1443 * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
1444 cpu adjustment.
1445 * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
1446 append -mcpu=v9 when -mv8plus is given.
1447
30386ca0 1448 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
1449 between float and non-float regs when VIS3.
1450 * config/sparc/sparc.c (eligible_for_restore_insn): We can't
1451 use a restore when the source is a float register.
1452 (sparc_split_regreg_legitimate): When VIS3 allow moves between
1453 float and integer regs.
1454 (sparc_register_move_cost): Adjust to account for VIS3 moves.
1455 (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
9525a1bb 1456 integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
30386ca0 1457 (sparc_secondary_reload): On 32-bit with VIS3 when moving between
1458 float and integer regs we sometimes need a FP_REGS class
1459 intermediate move to satisfy the reload. When this happens
1460 specify an extra cost of 2.
9525a1bb 1461 (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
30386ca0 1462 (*movdi_insn_sp32_v9): Likewise.
1463 (*movdi_insn_sp64): Likewise.
1464 (*movsf_insn): Likewise.
1465 (*movdf_insn_sp32_v9): Likewise.
1466 (*movdf_insn_sp64): Likewise.
1467 (*zero_extendsidi2_insn_sp64): Likewise.
1468 (*sign_extendsidi2_insn): Likewise.
1469 (*movsi_insn_vis3): New insn.
1470 (*movdi_insn_sp32_v9_vis3): New insn.
1471 (*movdi_insn_sp64_vis3): New insn.
1472 (*movsf_insn_vis3): New insn.
1473 (*movdf_insn_sp32_v9_vis3): New insn.
1474 (*movdf_insn_sp64_vis3): New insn.
1475 (*zero_extendsidi2_insn_sp64_vis3): New insn.
1476 (*sign_extendsidi2_insn_vis3): New insn.
1477 (TFmode reg/reg split): Make sure both REG operands are float.
1478 (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
1479 easy constant to integer reg alternatives.
1480 (*mov<VM64:mode>_insn_sp64): Likewise.
1481 (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
1482 (*mov<VM32:mode>_insn_vis3): New insn.
1483 (*mov<VM64:mode>_insn_sp64_vis3): New insn.
1484 (*mov<VM64:mode>_insn_sp32_vis3): New insn.
7e3c9723 1485 (VM64 reg<-->reg split): New splitter for 32-bit.
30386ca0 1486
9525a1bb 1487 * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
f8b63509 1488 * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
1489 Declare it.
1490 * config/sparc/sparc.md (DImode reg/reg split): Use it.
1491 (DFmode reg/reg split): Likewise.
1492
afcea937 1493 * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
1494 generating fzero and fone instructions.
1495 (DImode const_int --> reg splitter): Only trigger for integer regs.
1496
e76144f9 1497 * config/sparc/predicates.md (input_operand): Disallow vector
1498 constants other than 0 and -1.
1499 * config/sparc/sparc.c (sparc_preferred_reload_class): Return
1500 NO_REGS for vector constants other than 0 and -1.
1501
308d5709 1502 * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
1503 SPARC_INT_REG_P): Define.
1504 (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
1505 (REGNO_OK_FOR_INDEX_P): Likewise.
1506 * config/sparc/sparc.c (gen_df_reg): Likewise.
1507 (eligible_for_return_delay): Likewise.
1508 (eligible_for_sibcall_delay): Likewise.
1509 (sparc_legitimate_address_p): Likewise.
1510 (emit_save_or_restore_regs): Likewise.
1511 (registers_ok_for_ldd_peep): Likewise.
1512 * config/spac/sparc.md (DI mode splitters): Likewise.
1513 (SF mode const splitters): Likewise.
1514 (DF mode splitters): Likewise.
1515 (32-bit DI mode logical op splitters): Likewise.
1516
12970e9a 15172011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
1518
1519 PR c++/50841
1520 Revert:
1521 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
1522
1523 PR c++/50810
1524 * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
1525
4a7c81ea 15262011-10-23 Uros Bizjak <ubizjak@gmail.com>
1527
1528 * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
1529 (VI248_256): Remove mode iterator.
1530 * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
1531 instead of gen_avx2_lshlv4di3.
1532 (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
1533 CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
1534
c512f3a4 15352011-10-23 Uros Bizjak <ubizjak@gmail.com>
1536
1537 * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
1538 (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
1539 (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
1540 pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
1541 *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
1542 iterator. Use sseintprefix mode attribute.
1543 (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
1544 (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
1545 pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
1546 *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
1547 iterator. Use sseintprefix mode attribute.
1548 (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
1549 attributes.
1550 (*avx2_gatherdi<mode>): Ditto.
1551 (*avx2_gatherdi<mode>256): Ditto.
1552 (VI48_AVX2): Remove mode iterator.
1553 (gthrlastfp): Remove mode attribute.
1554
4fe0fb1c 15552011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
1556
1557 PR c++/50810
1558 * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
1559
d2e5e5c3 15602011-10-23 Tom de Vries <tom@codesourcery.com>
1561
1562 PR tree-optimization/50763
7e3c9723 1563 * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
1564 out of ...
d2e5e5c3 1565 (same_succ_flush_bbs): Use same_succ_flush_bb.
1566 (purge_bbs): Remove argument. Remove calls to same_succ_flush_bbs,
1567 release_last_vdef and delete_basic_block.
1568 (unlink_virtual_phi): New function.
1569 (update_vuses): Add and use vuse1_phi_args argument. Set var to
7e3c9723 1570 SSA_NAME_VAR of vuse1 or vuse2, and use var. Handle case that
1571 def_stmt2 is NULL. Use phi result as phi arg in case vuse1 or vuse2
1572 is NULL_TREE. Replace uses of vuse1 if vuse2 is NULL_TREE. Fix code
1573 to limit replacement of uses. Propagate phi argument for phis with a
1574 single argument.
d2e5e5c3 1575 (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
7e3c9723 1576 Set vuse1_phi_args if vuse1 is a phi defined in bb1. Add
1577 vuse1_phi_args as argument to call to update_vuses. Call
1578 release_last_vdef, same_succ_flush_bb, delete_basic_block. Update
1579 CDI_DOMINATORS info.
d2e5e5c3 1580 (tail_merge_optimize): Remove argument in call to purge_bbs. Remove
1581 call to free_dominance_info. Only call calculate_dominance_info once.
1582
7b56081a 15832011-10-23 Eric Botcazou <ebotcazou@adacore.com>
1584
1585 * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
1586
1587 PR tree-optimization/44683
1588 * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
1589 we can be sure that there are no signed zeros involved.
1590
48976c07 15912011-10-23 Jan Hubicka <jh@suse.cz>
1592
1593 * ipa-inline.c (estimate_badness): Scale up and handle overflows.
1594
458af25e 15952011-10-23 Uros Bizjak <ubizjak@gmail.com>
1596
1597 PR target/50788
c512f3a4 1598 * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
458af25e 1599 Remove (match_dup 0).
1600 (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
1601 (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
1602 (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
1603 (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
1604 (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
1605 (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
1606
80508571 16072011-10-23 Ira Rosen <ira.rosen@linaro.org>
1608
1609 PR tree-optimization/50819
1610 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
1611 the last argument.
1612 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
1613 vect_analyze_data_ref_dependences.
1614 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
1615 the last argument. Check load-after-store dependence for unknown
1616 dependencies in basic blocks.
1617 (vect_analyze_data_ref_dependences): Update call to
1618 vect_analyze_data_ref_dependences.
1619 * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
1620 * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
1621 (vect_slp_analyze_bb_1): Update call to
1622 vect_analyze_data_ref_dependences. Don't call
1623 vect_bb_vectorizable_with_dependencies.
1624
b28a42c2 16252011-10-22 David S. Miller <davem@davemloft.net>
1626
1627 * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
1628 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
1629 * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
1630 (sparc_secondary_reload): New function.
1631
0a532abf 1632 * config/sparc/sparc.h (sparc_costs): Remove extern decl.
1633 (struct processor_costs): Move from here..
1634 * config/sparc/sparc.c (struct processor_costs): To here.
1635 (sparc_costs): Mark static.
1636
a88bfb88 1637 * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
1638 * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
1639 Get rid of declarations.
1640
9936b574 16412011-10-21 Paul Brook <paul@codesourcery.com>
1642
1643 * config/c6x/c6x.c (c6x_asm_emit_except_personality,
1644 c6x_asm_init_sections): New functions.
458af25e 1645 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
9936b574 1646
ba1228b6 16472011-10-21 Jakub Jelinek <jakub@redhat.com>
1648
1649 PR target/50813
1650 * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
1651 V4DImode and V8SImode for !TARGET_AVX2.
1652
754e815f 16532011-10-21 Bernd Schmidt <bernds@codesourcery.com>
1654
1655 PR bootstrap/50825
1656 * sched-deps.c (add_dependence): If not doing predication, promote
1657 REG_DEP_CONTROL to REG_DEP_ANTI.
1658
1f46ee39 16592011-10-21 Georg-Johann Lay <avr@gjlay.de>
1660
1661 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
1662 instead of X to avr_legitimize_reload_address.
1663 * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
1664 first argument's type from rtx to rtx*.
1665 * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
1666 Pass PX to push_reload instead of &X. Change log messages for
1667 better distinction.
1668
28ea609c 16692011-10-21 Roland Stigge <stigge@antcom.de>
1670
1671 PR translation/47064
1672 * params.def: Fix typo "compilatoin" -> "compilation".
1673
90cfa5fe 16742011-10-21 H.J. Lu <hongjiu.lu@intel.com>
1675 Kirill Yukhin <kirill.yukhin@intel.com>
1676
e9c1817e 1677 PR target/50740
90cfa5fe 1678 * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
1679 if max_level allows that.
1680
effd1640 16812011-10-21 Bernd Schmidt <bernds@codesourcery.com>
1682
1683 * reg-notes.def (DEP_CONTROL): New.
1684 * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
1685 not doing speculation.
1686 * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
1687 record_hard_reg_uses_1, record_hard_reg_uses): New functions.
1688 * function.c (record_hard_reg_sets, record_hard_reg_uses,
1689 record_hard_reg_uses_1): Remove; move to rtlanal.c.
1690 * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
1691 * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
1692 (MUST_RECOMPUTE_SPEC_P): New macro.
1693 (real_insn_for_shadow): New function.
1694 (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
1695 toggle_cancelled_flags): New static functions.
1696 (schedule_insn): Relax an assert to only check for empty hard back
1697 dependencies. Skip cancelled dependencies. Call
1698 check_clobbered_conditions.
1699 (copy_insn_list): Remove function, renamed moved to lists.c.
1700 (save_backtrack_point): Use new spelling copy_INSN_LIST.
1701 (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
1702 (restore_last_backtrack_point): Likewise. Call toggle_cancelled_flags.
1703 (estimate_insn_tick): Ignore cancelled dependencies.
1704 (haifa_speculate_insn): Move declaration.
1705 (try_ready): Move code into recompute_todo_spec and call it. Tweak
1706 some asserts. Ensure predicated patterns are restored if necessary.
1707 Dump DEP_CONTROL flag.
1708 (haifa_change_pattern): Merge with sched_change_pattern.
1709 (sched_change_pattern): Remove function.
1710 * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove. All
1711 uses changed to simply not test NON_FLUSH_JUMP_P.
1712 (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
1713 REG_DEP_CONTROL.
1714 (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
1715 (reg_pending_control_uses, control_dependency_cache): New static
1716 variables.
1717 (sched_get_reverse_condition_uncached): New function.
1718 (sd_find_dep_between): Remove pointless assert. Look in
1719 control_dependency_cache.
1720 (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
1721 extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
1722 and control_dependency_cache.
1723 (sd_unresolve_dep): Use dep_spec_p.
1724 (add_dependence): Now a wrapper around add_dependence_1, handling
1725 REG_DEP_CONTROL specially.
1726 (flush_pending_lists): Clear pending_jump_insns.
1727 (sched_analyze_1): Handle pending_jump_insns like a memory flush.
1728 (sched_analyze_2): Unconditionally add to pending memory flushes,
1729 keep previous behaviour but apply it to pending_jump_insns instead.
1730 (sched_analyze_insn): Defer adding jump reg dependencies using
1731 reg_pending_control_uses; add them to the control_uses list. Handle
1732 pending_jump_insns and control_uses when adding dependence lists.
1733 (deps_analyze_insn): Update INSN_COND_DEPS.
1734 (deps_analyze_insn): Add jumps to pending_jump_insns rather than
1735 last_pending_memory_flush.
1736 (init_deps): Initialize pending_jump_insns.
1737 (free_deps): Free control_uses.
1738 (remove_from_deps): Remove from pending_jump_insns.
1739 (init_deps_global): Allocate reg_pending_control_uses).
1740 (finish_deps_global): Free it.
1741 (add_dependence_1): Renamed from add_dependence. Handle
1742 REG_DEP_CONTROL.
1743 * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
1744 (copy_INSN_LIST, concat_INSN_LIST): Declare.
1745 * sched-int.h (struct deps_reg): Add control_uses.
1746 (struct deps_desc): Add pending_jump_insns.
1747 (struct _haifa_deps_insn_data): Add cond_deps.
1748 (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
1749 (INSN_COND_DEPS, PREDICATED_PAT): New macros.
1750 (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
1751 (DEP_CONTROL): New macro.
1752 (DEP_TYPES): Include it.
1753 (HARD_DEP): Adjust definition.
1754 (DEP_CANCELLED): New macro.
1755 (enum SCHED_FLAGS): Add DO_PREDICATION.
1756 (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
1757 * sched-rgn.c (concat_INSN_LIST): Remove function.
1758 (deps_join): Handle pending_jump_insns.
1759 (free_pending_lists): Likewise.
1760 * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
1761 schedule.
1762
85e2bb5f 17632011-10-21 Georg-Johann Lay <avr@gjlay.de>
1764
1765 PR target/50820
1766 * config/avr/libgcc.S (__EIND__): New define to 0x3C.
1767 (__tablejump__): Consistently use EIND for indirect jump/call.
1768 (__tablejump_elpm__): Ditto.
1769
9a4c7d5b 17702011-10-21 Bernd Schmidt <bernds@codesourcery.com>
1771
1772 * config/c6x/c6x.md (attr "op_pattern"): New.
1773 (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
1774 * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
1775 Likewise.
1776 * config/c6x/c6x-mult.md: Regenerate.
1777 * config/c6x/c6x.c: Include "regrename.h".
1778 (unit_req_table): New typedef.
1779 (unit_reqs): Use it for the declaration.
1780 (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
1781 get_unit_operand_masks, try_rename_operands, reshuffle_units): New
1782 static functions.
1783 (count_unit_reqs): New arg reqs. All callers changed. Use
1784 get_unit_reqs, and don't merge here.
1785 (res_mii): New arg reqs. All callers changed. Rewrite to use a loop
1786 using unit_req_factor.
1787 (hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after
1788 count_unit_reqs.
1789 (c6x_reorg): Add reg notes problem, and call df_analyze.
1790 * Makefile.in ($(out_object_file)): Depend on regrename.h.
1791
e3a0dde2 17922011-10-21 Kai Tietz <ktietz@redhat.com>
1793
1794 * fold-const.c (simple_operand_p_2): Handle integral
1795 casts from boolean-operands.
1796
badeded8 17972011-10-21 Jan Hubicka <jh@suse.cz>
1798
1799 * cgraph.c (dump_cgraph_node): Dump alias flag.
90cfa5fe 1800 * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
1801 no destination.
badeded8 1802 (get_alias_symbol): New function.
1803 (output_weakrefs): Output also weakrefs with no destinatoin.
1804 (lto_output_node): Output weakref alias flag when at function boundary.
1805
fab4327c 18062011-10-21 Andrew Stubbs <ams@codesourcery.com>
1807
1808 PR target/50809
fab4327c 1809 * config/arm/driver-arm.c (vendors): Make static.
1810
3547ea3b 18112011-10-21 Uros Bizjak <ubizjak@gmail.com>
1812
1813 * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
1814 (ix86_emit_swsqrtsf): Force a into register.
1815
cc7416ff 18162011-10-20 Mike Stump <mikestump@comcast.net>
1817
1818 * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
1819 after validate_change wipes it out.
1820
5908a67a 18212011-10-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1822
1823 * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
1824 before using the shufb instruction.
1825
3e7be5b8 18262011-10-20 Kirill Yukhin <kirill.yukhin@intel.com>
1827
1828 PR target/50766
1829 * config/i386/i386.md (bmi_bextr_<mode>): Update register/
1830 memory operand order.
1831 (bmi2_bzhi_<mode>3): Ditto.
1832 (bmi2_pdep_<mode>3): Ditto.
1833 (bmi2_pext_<mode>3): Ditto.
1834
428d5ecf 18352011-10-20 Richard Henderson <rth@redhat.com>
1836
1837 * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
1838 * optabs.c (can_vec_perm_expr_p): Update to match.
1839 (expand_vec_perm_expr): Likewise.
1840 * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
1841 from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
1842 * doc/tm.texi.in: Likewise.
1843
de1da18e 18442011-10-20 Sergey Ostanevich <sergos.gnu@gmail.com>
1845
1846 PR target/50572
1847 * config/i386/i386.c (processor_target_table): Change Atom
1848 align_loops_max_skip to 15.
1849
8b962d7a 18502011-10-20 Richard Henderson <rth@redhat.com>
1851
1852 * target.def (builtin_vec_perm): Remove.
1853 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1854
1855 * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
1856 (IX86_BUILTIN_VEC_PERM_*): Remove.
1857 (bdesc_args): Remove vec_perm builtins
1858 (ix86_expand_builtin): Likewise.
1859 (ix86_expand_vec_perm_const_1): Rename from
1860 ix86_expand_vec_perm_builtin_1.
1861 (extract_vec_perm_cst): Merge into...
1862 (ix86_vectorize_vec_perm_const_ok): ... here. Rename from
1863 ix86_vectorize_builtin_vec_perm_ok.
1864 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1865
1866 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
1867 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1868
1869 * config/spu/spu.c (spu_builtin_vec_perm): Remove.
1870 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1871
140528a5 18722011-10-20 Uros Bizjak <ubizjak@gmail.com>
1873
1874 PR target/47989
1875 * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
1876 * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
1877 * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
1878 implements vectorized single float division and vectorized sqrtf(x)
1879 with reciprocal sequence with additional Newton-Raphson step with
1880 -ffast-math.
1881
4d427851 18822011-10-20 Dodji Seketeli <dodji@redhat.com>
1883
0dd15d43 1884 * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
1885 ggc_alloced_size_order_for_request into ggc_round_alloc_size like
1886 it was done in ggc-page.c.
1887
4d427851 1888 PR other/50659
1889 * doc/cppopts.texi: Use @smallexample/@end smallexample in
8b962d7a 1890 documentation for -fdebug-cpp instead of @quotation/@end quotation
1891 that is not supported by contrib/texi2pod.pl.
4d427851 1892
eb78a892 18932011-10-19 Jan Hubicka <jh@suse.cz>
1894
1895 * ipa-inline.c (inline_small_functions): Always update all calles after
1896 inlining.
1897
60ac8a3c 18982011-10-19 Jan Hubicka <jh@suse.cz>
1899
1900 PR bootstrap/50709
1901 * ipa-inline.c (inline_small_functions): Fix checking code to not make
1902 effect on fibheap stability.
1903
0e5e0f3e 19042011-10-20 Maxim Kuvyrkov <maxim@codesourcery.com>
1905
1906 * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
1907
99cdda4b 19082011-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1909
8b962d7a 1910 PR target/50106
1911 * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
99cdda4b 1912 reg size from 1-3.
1913
23da77dd 19142011-10-20 Richard Guenther <rguenther@suse.de>
1915
1916 * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
1917 and rotates to the set of expensive operations.
1918
6245f2cc 19192011-10-19 David S. Miller <davem@davemloft.net>
1920
140528a5 1921 * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
6245f2cc 1922 (sparc_emit_set_const32): Likewise.
1923 (sparc_emit_set_const64_longway): Likewise.
1924 (sparc_emit_set_const64): Likewise.
1925 (sparc_legitimize_pic_address): Likewise.
1926 (memory_ok_for_ldd): Likewise.
1927
36df8979 19282011-10-20 Dehao Chen <dehao@google.com>
1929
1930 * profile.c (compute_branch_probabilities): Compute and dump the
1931 overlap between the static estimation and the instrumentation profile.
1932 (OVERLAP_BASE): New macro.
1933 (compute_frequency_overlap): New function
1934
3557cb99 19352011-10-19 Jakub Jelinek <jakub@redhat.com>
1936
25f07ca6 1937 * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
1938 d->op1 instead of d->op0 for the second vpshufb.
1939 (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
1940 (ix86_expand_vec_perm_const): If mask indicates two operands are
1941 needed, but both are the same and expanding them as d.op0 == d.op1
1942 failed, retry with d.op0 != d.op1.
1943 (ix86_expand_vec_perm_builtin): Likewise. Handle sorry printing
1944 also for d.nelt == 32.
1945
3557cb99 1946 PR middle-end/50754
1947 * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
1948 VEC_PERM_EXPR.
1949
7de639a2 19502011-10-19 Bernd Schmidt <bernds@codesourcery.com>
1951
1952 * regrename.h: New file.
1953 * regrename.c: Include it. Also include "emit-rtl.h".
1954 (struct du_head, struct du_chain, du_head_p DEF_VEC and
1955 DEF_VEC_ALLOC_P): Move to regrename.h.
1956 (do_replace): Remove declaration.
1957 (insn_rr): New variable.
1958 (cur_operand): New static variable.
1959 (regrename_chain_from_id): Renamed from chain_from_id and no longer
1960 static. All callers changed.
1961 (record_operand_use): New static function.
1962 (scan_rtx_reg): Use it.
1963 (find_best_rename_reg): New function, broken out of rename_chains.
1964 (rename_chains): Use it. Don't update chain regno and nregs here, ...
1965 (regrename_do_replace): ... do it here instead. Renamed from
1966 do_replace, and no longer static. All callers changed.
1967 (regrename_analyze): No longer static. New arg bb_mask.
1968 All callers changed. If bb_mask is nonzero, use it to limit the
1969 number of basic blocks we analyze. If we failed to analyze a block,
1970 clear insn operand data.
1971 (record_out_operands): New arg insn_info. Update cur_operand if it is
1972 nonnull.
1973 (build_def_use): If insn_rr is nonnull, pass an insn_info to
1974 record_out_operands, and update cur_operand here as well.
1975 (regrename_init, regrename_finish): New functions.
1976 (regrename_optimize): Use them.
1977 * Makefile.in (regrename.o): Adjust dependencies.
1978
35bfa3a2 19792011-10-19 Tom de Vries <tom@codesourcery.com>
1980
1981 PR tree-optimization/50769
1982 * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
1983 unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add
1984 dummy argument .MEM to phi when increasing number of arguments of phi by
1985 redirecting edges to the block with phi.
1986
f4245e06 19872011-10-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1988
1989 PR bootstrap/50777
1990 * configure.ac: Save and restore CXXFLAGS around
1991 gcc_AC_CHECK_DECLS uses.
1992 Check for madvise() declaration with g++ if --enable-build-with-cxx.
1993 * configure: Regenerate.
1994 * config.in: Regenerate.
1995 * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
1996
72fdb379 19972011-10-19 Alexandre Oliva <aoliva@redhat.com>
1998
1999 PR debug/49310
2000 * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
2001 (variable_part): Replace offset with union.
2002 (enum onepart_enum, onepart_enum_t): New.
2003 (variable_def): Drop cur_loc_changed, add onepart.
2004 (value_chain_def, const_value_chain): Remove.
2005 (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
2006 (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
2007 (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
2008 (value_chain_pool, value_chains): Remove.
2009 (dropped_values): New.
2010 (struct parm_reg): Only if HAVE_window_save.
2011 (vt_stack_adjustments): Don't record register arguments.
2012 (dv_as_rtx): New.
2013 (dv_onepart_p): Return a onepart_enum_t.
2014 (onepart_pool): New.
2015 (dv_pool): Remove.
2016 (dv_from_rtx): New.
2017 (variable_htab_free): Release onepart aux data. Reset flags.
2018 (value_chain_htab_hash, value_chain_htab_eq): Remove.
2019 (unshare_variable): Use onepart field. Propagate onepart aux
2020 data or offset. Drop cur_loc_changed.
2021 (val_store): Cope with NULL insn. Rephrase dump output. Check
2022 for unsuitable locs. Add FIXME on using cselib locs.
2023 (val_reset): Remove FIXME of unfounded concerns.
2024 (val_resolve): Check for unsuitable locs. Add FIXME on using
2025 cselib locs.
2026 (variable_union): Use onepart field, adjust access to offset.
2027 (NO_LOC_P): New.
2028 (VALUE_CHANGED, DECL_CHANGED): Update doc.
2029 (set_dv_changed): Clear NO_LOC_P when changed.
2030 (find_loc_in_1pdv): Use onepart field.
2031 (intersect_loc_chains): Likewise.
2032 (unsuitable_loc): New.
2033 (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
2034 (add_value_chain, add_value_chains): Remove.
2035 (add_cselib_value_chains, remove_value_chain): Likewise.
2036 (remove_value_chains, remove_cselib_value_chains): Likewise.
2037 (canonicalize_loc_order_check): Use onepart. Drop cur_loc_changed.
2038 (canonicalize_values_star, canonicalize_vars_star): Use onepart.
2039 (variable_merge_over_cur): Likewise. Adjust access to offset.
2040 Drop cur_loc_changed.
2041 (variable_merge_over_src): Use onepart field.
2042 (remove_duplicate_values): Likewise.
2043 (variable_post_merge_new_vals): Likewise.
2044 (find_mem_expr_in_1pdv): Likewise.
2045 (dataflow_set_preserve_mem_locs): Likewise. Drop cur_loc_changed
2046 and value chains.
2047 (dataflow_set_remove_mem_locs): Likewise. Use VAR_LOC_FROM.
2048 (variable_different_p): Use onepart field. Move onepart test out
2049 of the loop.
2050 (argument_reg_set): Drop.
2051 (add_uses, add_stores): Preserve but do not record in dynamic
2052 tables equivalences for ENTRY_VALUEs and CFA_based addresses.
2053 Avoid unsuitable address expressions.
2054 (EXPR_DEPTH): Unlimit.
2055 (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
2056 (prepare_call_arguments): Use DECL_RTL_IF_SET.
2057 (dump_var): Adjust access to offset.
2058 (variable_from_dropped, recover_dropped_1paux): New.
2059 (variable_was_changed): Drop cur_loc_changed. Use onepart.
2060 Preserve onepart aux in empty_var. Recover empty_var and onepart
2061 aux from dropped_values.
2062 (find_variable_location_part): Special-case onepart. Adjust
2063 access to offset.
2064 (set_slot_part): Use onepart. Drop cur_loc_changed. Adjust
2065 access to offset. Initialize onepaux. Drop value chains.
2066 (delete_slot_part): Drop value chains. Use VAR_LOC_FROM.
2067 (VEC (variable, heap), VEC (rtx, stack)): Define.
2068 (expand_loc_callback_data): Drop dummy, cur_loc_changed,
2069 ignore_cur_loc. Add expanding, pending, depth.
2070 (loc_exp_dep_alloc, loc_exp_dep_clear): New.
2071 (loc_exp_dep_insert, loc_exp_dep_set): New.
2072 (notify_dependents_of_resolved_value): New.
2073 (update_depth, vt_expand_var_loc_chain): New.
2074 (vt_expand_loc_callback): Revamped.
2075 (resolve_expansions_pending_recursion): New.
2076 (INIT_ELCD, FINI_ELCD): New.
2077 (vt_expand_loc): Use the new macros above. Drop ignore_cur_loc
2078 parameter, adjust all callers.
2079 (vt_expand_loc_dummy): Drop.
2080 (vt_expand_1pvar): New.
2081 (emit_note_insn_var_location): Operate on non-debug decls only.
2082 Revamp multi-part cur_loc recomputation and one-part expansion.
2083 Drop cur_loc_changed. Adjust access to offset.
2084 (VEC (variable, heap)): Drop.
2085 (changed_variables_stack, changed_values_stack): Drop.
2086 (check_changed_vars_0, check_changed_vars_1): Remove.
2087 (check_changed_vars_2, check_changed_vars_3): Remove.
2088 (values_to_stack, remove_value_from_changed_variables): New.
2089 (notify_dependents_of_changed_value, process_changed_values): New.
2090 (emit_notes_for_changes): Revamp onepart updates.
2091 (emit_notes_for_differences_1): Use onepart. Drop cur_loc_changed
2092 and value chains. Propagate onepaux. Recover empty_var and onepaux
2093 from dropped_values.
2094 (emit_notes_for_differences_2): Drop value chains.
2095 (emit_notes_in_bb): Adjust.
2096 (vt_emit_notes): Drop value chains, changed_variables_stack.
2097 Initialize and release dropped_values.
2098 (create_entry_value): Revamp.
2099 (vt_add_function_parameter): Use new interface.
2100 (note_register_arguments): Remove.
2101 (vt_initialize): Drop value chains and register arguments.
2102 (vt_finalize): Drop value chains. Release windowed_parm_regs only
2103 if HAVE_window_save.
2104 * rtl.h: Document various pass-local uses of RTL flags.
2105 * tree.h (DECL_RTL_KNOWN_SET): New.
2106 * doc/invoke.texi (param max-vartrack-expr-depth): Update
2107 description and default.
2108
eac146f2 21092011-10-19 Georg-Johann Lay <avr@gjlay.de>
2110
2111 PR target/50447
2112 * config/avr/avr.md (cc): New alternative out_plus_noclobber.
2113 (adjust_len): Ditto.
2114 (addhi3): Don't pipe through short; use gen_int_mode instead.
2115 Prior to reload, expand to gen_addhi3_clobber.
2116 (*addhi3): Use avr_out_plus_noclobber if applicable, use
2117 out_plus_noclobber in cc and adjust_len attribute.
2118 (addhi3_clobber): 2 new RTL peepholes.
2119 (addhi3_clobber): New insn.
2120 * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
2121 * config/avr/avr.c (avr_out_plus_noclobber): New function.
2122 (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
2123 (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
2124 Set cc0 to set_zn for adiw on 16-bit values.
2125 (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
2126 (expand_epilogue): No need to add 0 to frame_pointer_rtx.
2127
25f48be0 21282011-10-19 Richard Guenther <rguenther@suse.de>
2129
2130 PR middle-end/50780
2131 * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
2132 the condition is properly gimple before using it.
2133 * tree-eh (stmt_could_throw_1_p): Properly extract the
2134 operation type from comparisons.
2135
98a5f45d 21362011-10-19 Roland Stigge <stigge@antcom.de>
2137
2138 PR translation/48638
2139 * plugin.c (add_new_plugin): Fix typo in fatal_error message.
2140
21412011-10-19 Roland Stigge <stigge@antcom.de>
2142
2143 PR translation/49517
2144 * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
2145
34e73149 21462011-10-19 Richard Guenther <rguenther@suse.de>
2147
2148 PR middle-end/50768
2149 * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
2150
d6726470 21512011-10-19 Andrey Belevantsev <abel@ispras.ru>
2152
2153 PR rtl-optimization/50340
2154 * sel-sched-ir.c (update_target_availability): LHS register
2155 availability is not known if the unavailable LHS of the other
2156 expression is a different register.
2157
e20943d4 21582011-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2159
2160 PR target/50310
2161 * config/spu/spu.c (spu_emit_vector_compare): Support unordered
2162 floating-point comparisons.
2163
5e712541 21642011-10-19 Jan Hubicka <jh@suse.cz>
2165
140528a5 2166 * cgraphunit.c (handle_alias_pairs): Also handle wekref with
2167 destination declared.
5e712541 2168 (output_weakrefs): New function.
2169 * varpool.c (varpool_create_variable_alias): Handle external aliases.
2170
f03420aa 21712011-10-19 Jakub Jelinek <jakub@redhat.com>
2172
2173 * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
2174 second argument instead of mode.
2175
9581fd8e 21762011-10-18 Jakub Jelinek <jakub@redhat.com>
2177
2178 * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
2179 mode SUBREG of operands[0] as target.
2180 (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
2181 (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
2182 (expand_vec_perm_1): Handle identity and some broadcast
2183 permutations.
2184 (expand_vec_perm_interleave2): Handle also 32-byte modes, using
2185 vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
2186 For d->testing_p return true earlier to avoid creating more GC
2187 garbage.
2188 (expand_vec_perm_vpermq_perm_1): New function.
2189 (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
2190 earlier to avoid creating more GC garbage. Fix handling of
2191 V16HImode. Avoid some SUBREGs in SET_DEST.
2192 (expand_vec_perm_broadcast_1): Return false for 32-byte integer
2193 vector modes.
2194 (expand_vec_perm_vpshufb4_vpermq2): New function.
2195 (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
2196 and expand_vec_perm_vpshufb4_vpermq2.
2197
9d16ceb0 21982011-10-18 Andrew Stubbs <ams@codesourcery.com>
2199
2200 * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
2201 before exiting.
2202
4333b41f 22032011-10-18 Andrew Stubbs <ams@codesourcery.com>
2204
2205 PR tree-optimization/50717
4333b41f 2206 * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
2207 parameter. Calculate 'type' from stmt.
2208 (convert_mult_to_widen): Update call the is_widening_mult_p.
2209 (convert_plusminus_to_widen): Likewise.
2210
5eb28709 22112011-10-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2212
2213 * config/spu/spu.c (struct machine_function): New data structure.
2214 (spu_init_machine_status): New function.
2215 (spu_option_override): Install it.
2216 (get_pic_reg): Set and use cfun->machine->pic_reg.
2217 (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
2218 (need_to_save_reg): Use cfun->machine->pic_reg instead of
2219 checking crtl->uses_pic_offset_table.
2220 (spu_expand_prologue): Likewise.
2221
63e6b59a 22222011-10-18 Jakub Jelinek <jakub@redhat.com>
2223
2224 PR tree-optimization/50735
2225 * function.c (gimplify_parameters): Use create_tmp_var instead of
2226 create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex
2227 or vector type, set DECL_GIMPLE_REG_P.
2228
2ae1f0cc 22292011-10-18 Andrew Stubbs <ams@codesourcery.com>
2230
2231 * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
2232 * config/arm/arm.opt: Add 'native' processor_type and
2233 arm_arch enum values.
2234 * config/arm/arm.h (host_detect_local_cpu): New prototype.
2235 (EXTRA_SPEC_FUNCTIONS): New define.
2236 (MCPU_MTUNE_NATIVE_SPECS): New define.
2237 (DRIVER_SELF_SPECS): New define.
2238 * config/arm/driver-arm.c: New file.
2239 * config/arm/x-arm: New file.
2240 * doc/invoke.texi (ARM Options): Document -mcpu=native,
2241 -mtune=native and -march=native.
2242
9b9b82e0 22432011-10-18 Alexander Monakov <amonakov@ispras.ru>
2244
2245 PR rtl-optimization/50205
2246 * sel-sched.c (count_occurrences_1): Simplify on the assumption that
2247 p->x is a register. Forbid substitution when the same register is
2248 found in a different mode.
2249 (count_occurrences_equiv): Assert that 'what' is a register.
2250
6434181f 22512011-10-18 Richard Guenther <rguenther@suse.de>
2252
2253 PR tree-optimization/50767
2254 * tree-ssa-pre.c (create_expression_by_pieces): Update the
2255 folded statement.
2256
8f32c760 22572011-10-18 Julian Brown <julian@codesourcery.com>
2258
2259 * config/arm/arm.c (arm_block_move_unaligned_straight)
2260 (arm_adjust_block_mem, arm_block_move_unaligned_loop)
2261 (arm_movmemqi_unaligned): New.
2262 (arm_gen_movmemqi): Support unaligned block copies.
2263
6083c152 22642011-10-18 Ira Rosen <ira.rosen@linaro.org>
2265
2266 * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
2267 vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
2268 * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
2269 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
2270 (op_code_prio): Likewise.
2271 (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
2272 * optabs.c (optab_for_tree_code): Handle
2273 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
2274 (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
2275 * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
2276 * genopinit.c (optabs): Initialize the new optabs.
2277 * expr.c (expand_expr_real_2): Handle
2278 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
2279 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
2280 * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
2281 * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
2282 VEC_WIDEN_LSHIFT_LO_EXPR): New.
2283 * cfgexpand.c (expand_debug_expr): Handle new tree codes.
2284 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2285 vect_recog_widen_shift_pattern.
2286 (vect_handle_widen_mult_by_const): Rename...
2287 (vect_handle_widen_op_by_const): ...to this. Handle shifts.
2288 Add a new argument, update documentation.
2289 (vect_recog_widen_mult_pattern): Assume that only second
2290 operand can be constant. Update call to
2291 vect_handle_widen_op_by_const.
2292 (vect_recog_over_widening_pattern): Fix typo.
2293 (vect_recog_widen_shift_pattern): New.
2294 * tree-vect-stmts.c (vectorizable_type_promotion): Handle
2295 widening shifts.
2296 (supportable_widening_operation): Likewise.
2297 * tree-inline.c (estimate_operator_cost): Handle new tree codes.
2298 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
2299 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
2300 * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
2301 (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
2302 vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
2303 Likewise.
2304 * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
2305 New.
2306 * config/arm/iterators.md (V_innermode): New.
2307 * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
2308 for widening shift.
2309
6fc56905 23102011-10-18 Richard Guenther <rguenther@suse.de>
2311
2312 * tree-ssa-alias.h (struct pt_solution): Remove
2313 vars_contains_restrict member.
2314 (pt_solutions_same_restrict_base): Remove.
2315 (pt_solution_set): Adjust.
2316 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
2317 vars_contains_restrict handling.
2318 (dump_points_to_solution): Likewise.
2319 (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
2320 * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
2321 field.
2322 (new_var_info): Do not initialize it.
2323 (ipa_escaped_pt): Adjust.
2324 (make_constraint_from_restrict): Make the tag global.
2325 (make_constraint_from_global_restrict): New function.
2326 (make_constraint_from_heapvar): Remove.
2327 (create_variable_info_for): Do not make restrict vars point
2328 to NONLOCAL.
2329 (intra_create_variable_infos): Likewise.
2330 (find_what_var_points_to): Remove vars_contains_restrict handling.
2331 (pt_solution_set): Adjust.
2332 (pt_solution_ior_into): Likewise.
2333 (pt_solutions_same_restrict_base): Remove.
2334 (compute_points_to_sets): Do not test is_restrict_var.
2335 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2336 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
2337
4c3030b9 23382011-10-18 Tom de Vries <tom@codesourcery.com>
2339
2340 PR tree-optimization/50672
2341 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
2342 factored out of ...
2343 (mark_virtual_phi_result_for_renaming): Use
2344 mark_virtual_operand_for_renaming.
2345 * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
2346 * tree-ssa-tail-merge.c (release_last_vdef): New function.
2347 (purge_bbs): Add update_vops parameter. Call release_last_vdef for each
2348 deleted basic block.
2349 (tail_merge_optimize): Add argument to call to purge_bbs.
2350
56cf6489 23512011-10-18 Richard Guenther <rguenther@suse.de>
2352
2353 PR middle-end/50716
2354 * expr.c (get_object_or_type_alignment): New function.
2355 (expand_assignment): Use it.
2356 (expand_expr_real_1): Likewise.
2357
2a688977 23582011-10-18 Dodji Seketeli <dodji@redhat.com>
2359
2360 PR bootstrap/50760
2361 * input.c (dump_line_table_statistics): Use long, not size_t.
2362
2740eea4 23632011-10-17 Eric Botcazou <ebotcazou@adacore.com>
2364
2365 * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
2366
638454a1 23672011-10-17 Simon Baldwin <simonb@google.com>
2368 Ian Lance Taylor <iant@google.com>
2369
2370 * configure.ac: Add --with-native-system-header-dir. Set and
2371 substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header
2372 when setting target_header_dir.
2373 * config.gcc: Always set native_system_header_dir.
2374 (*-*-gnu*): Set native_system_header_dir. Don't use t-gnu.
2375 (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't
2376 use i386/t-djgpp.
2377 (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
2378 native_system_header_dir.
2379 (spu-*-elf*): Set native_system_header_dir.
2380 * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
2381 @NATIVE_SYSTEM_HEADER_DIR@.
2382 (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
2383 * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
2384 (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
2385 STANDARD_INCLUDE_COMPONENT.
2386 (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename
2387 STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
2388 * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
2389 STANDARD_INCLUDE_COMPONENT.
2390 * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
2391 * config/i386/t-mingw-w32: Likewise.
2392 * config/i386/t-mingw-w64: Likewise.
2393 * config/spu/t-spu-elf: Likewise.
2394 * config/i386/t-djgpp: Remove.
2395 * config/t-gnu: Remove.
2396 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
2397 (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
2398 STANDARD_INCLUDE_COMPONENT.
2399 * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
2400 * config/spu/spu-elf.h: Likewise.
2401 * config/vms/xm-vms.h: Likewise.
2402 * config/gnu.h: Likewise.
2403 * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
2404 and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
2405 NATIVE_SYSTME_HEADER_COMPONENT.
2406 * doc/install.texi (Configuration): Document
2407 --with-native-system-header-dir. Mention it in the documentation
2408 for --with-sysroot and --with-build-sysroot.
2409 * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
2410 STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to
2411 NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of
2412 STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
2413 * doc/fragments.texi (Target Fragment): Don't document
2414 NATIVE_SYSTEM_HEADER_DIR.
2415 * configure, doc/tm.texi: Rebuild.
2416
d510308a 24172011-10-17 Richard Henderson <rth@redhat.com>
2418
2419 * config/sparc/sparc.md: Use register_or_zero_operand where rJ
2420 is the constraint.
2421
05d36c46 2422 * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
2423 patterns.
2424 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
2425 * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
2426
bc963728 24272011-10-17 David S. Miller <davem@davemloft.net>
2428
2429 * config/sparc/sparc-modes.def: Add single entry vector modes for
2430 DImode and SImode.
d510308a 2431 * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
bc963728 2432 mode iterators.
2433 (mov<V32:mode>): Revert back to plain SFmode pattern.
2434 (*movsf_insn): Likewise.
2435 (mov<V64:mode>): Revert back to plain DFmode pattern.
2436 (*movdf_insn_sp32): Likewise.
2437 (*movdf_insn_sp32_v9): Likewise.
2438 (*movdf_insn_sp64): Likewise.
2439 (V64 mode splitters) Likewise.
2440 (addsi3): Remove VIS alternatives.
2441 (subsi3): Likewise.
2442 (and<V64I:mode>3): Revert to DImode only pattern.
2443 (and<V64I:mode>3_sp32): Likewise.
2444 (*and<V64I:mode>3_sp64): Likewise.
2445 (and<V32I:mode>3): Likewise.
2446 (*and_not_<V64I:mode>_sp32): Likewise.
2447 (*and_not_<V64I:mode>_sp64): Likewise.
2448 (*and_not_<V32I:mode>): Likewise.
2449 (ior<V64I:mode>3): Likewise.
2450 (*ior<V64I:mode>3_sp32): Likewise.
2451 (*ior<V64I:mode>3_sp64): Likewise.
2452 (ior<V32I:mode>3): Likewise.
2453 (*or_not_<V64I:mode>_sp32): Likewise.
2454 (*or_not_<V64I:mode>_sp64): Likewise.
2455 (*or_not_<V32I:mode>): Likewise.
2456 (xor<V64I:mode>3): Likewise.
2457 (*xor<V64I:mode>3_sp32): Likewise.
2458 (*xor<V64I:mode>3_sp64): Likewise.
2459 (xor<V32I:mode>3): Likewise.
2460 (V64I mode splitters): Likewise.
2461 (*xor_not_<V64I:mode>_sp32): Likewise.
2462 (*xor_not_<V64I:mode>_sp64): Likewise.
2463 (*xor_not_<V32I:mode>): Likewise.
2464 (one_cmpl<V64I:mode>2): Likewise.
2465 (*one_cmpl<V64I:mode>2_sp32): Likewise.
2466 (*one_cmpl<V64I:mode>2_sp64): Likewise.
2467 (one_cmpl<V32I:mode>2): Likewise.
2468 (VM32, VM64, VMALL): New mode iterators.
2469 (vbits, vconstr, vfptype): New mode attributes.
2470 (mov<VMALL:mode>): New expander.
2471 (*mov<VM32:mode>_insn): New insn.
2472 (*mov<VM64:mode>_insn_sp64): New insn.
2473 (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
2474 specifically for the register to memory case.
2475 (vec_init<mode>): New expander.
2476 (VADDSUB): New mode iterator.
2477 (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
2478 with...
2479 (<plusminus_insn><mode>3): New consolidated pattern.
2480 (VL): New mode iterator for logical operations.
2481 (vlsuf): New more attribute.
2482 (vlop): New code iterator.
2483 (vlinsn, vlninsn): New code attributes.
2484 (<code><mode>3): New insn to non-negated vector logical ops.
2485 (*not_<code><mode>3): Likewise for negated variants.
2486 (*nand<mode>_vis): New insn.
2487 (vlnotop): New code iterator.
2488 (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
2489 (one_cmpl<mode>2): New insn.
2490 (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
2491 (bshuffle<VM64:mode>_vis): Likewise.
2492 (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
2493 (fp<plusminus_insn>64_vis): Use V1DI mode.
2494 (VASS mode iterator): Use V1SI not SI mode.
2495 * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
2496 single-entry vector mode changes.
2497 (sparc_expand_builtin): Likewise.
2498 (sparc_expand_vector_init): New function.
2499 * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
2500
d25f4ed0 25012011-10-17 Kai Tietz <ktietz@redhat.com>
2502
2503 * fold-const.c (simple_operand_p_2): New function.
2504 (fold_truthop): Rename to
2505 (fold_truth_andor_1): function name.
2506 Additionally remove branching creation for logical and/or.
2507 (fold_truth_andor): Handle branching creation for logical and/or here.
2508
a46cbe3b 25092011-10-17 Andi Kleen <ak@linux.intel.com>
2510
2740eea4 2511 * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
a46cbe3b 2512
48264eb8 25132011-10-17 Georg-Johann Lay <avr@gjlay.de>
2514
2515 * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
2516 * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
2517 (adjust_len): Add alternative "call".
2518 (isa, enabled): New insn attributes.
2519 (length): Use match_test with AVR_HAVE_JMP_CALL instead of
2520 mcu_mega attribute.
2521 (*sbrx_branch<mode>): Ditto.
2522 (*sbrx_and_branch<mode>): Ditto.
2523 (*sbix_branch): Ditto.
2524 (*sbix_branch_bit7): Ditto.
2525 (*sbix_branch_tmp): Ditto.
2526 (*sbix_branch_tmp_bit7): Ditto.
2527 (jump): Ditto.
2528 (negsi2): Use attribute "isa" instead of assembler dialect.
2529 (extendhisi2): Ditto.
2530 (call_insn, call_value_insn): Set adjust_len attribute.
2531 (indirect_jump): Indent to coding rules.
2532 (call_prologue_saves): Use isa attribute instead of mcu_mega.
2533 (epilogue_restores): Ditto. Fix setting of SP as described in the
2534 RTX pattern.
2535 (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
2536 and *indirect_jump_avr6.
2537 (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
2538 (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
2539 (*tablejump_rjmp, *tablejump_lib): Remove.
2540 * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
2541
7223e237 25422011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
2543
2544 PR c++/50757
326e3391 2545 * doc/invoke.texi ([Wnonnull]): Update.
7223e237 2546
098c552a 25472011-10-17 Richard Henderson <rth@redhat.com>
2548
2549 PR 50746
2550 * optabs.c (expand_vec_perm_expr): Fix indexing error.
2551
28c54e7d 25522011-10-17 Sergio Durigan Junior <sergiodj@redhat.com>
2553
140528a5 2554 * configure.ac: Display `yes' if the SystemTap header has been found.
28c54e7d 2555 * configure: Regenerate.
2556
c5db973f 25572011-10-08 Andi Kleen <ak@linux.intel.com>
2558
2559 PR other/50636
2560 * config.in, configure: Regenerate.
2561 * configure.ac (madvise): Add to AC_CHECK_FUNCS.
2562 * ggc-page.c (USING_MADVISE): Add.
2563 (page_entry): Add discarded field.
2564 (alloc_page): Check for discarded pages.
2565 (release_pages): Add USING_MADVISE branch.
2566
81e042f9 25672011-10-17 Richard Guenther <rguenther@suse.de>
2568
2569 PR tree-optimization/50729
140528a5 2570 * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
81e042f9 2571 (simplify_conversion_using_ranges): Properly test the
2572 intermediate result.
2573
1ae3520e 25742011-10-15 Tom Tromey <tromey@redhat.com>
2575 Dodji Seketeli <dodji@redhat.com>
2576
2577 * ggc.h (ggc_round_alloc_size): Declare new public entry point.
2578 * ggc-none.c (ggc_round_alloc_size): New public stub function.
2579 * ggc-page.c (ggc_alloced_size_order_for_request): New static
2580 function. Factorized from ggc_internal_alloc_stat.
2581 (ggc_round_alloc_size): New public function. Uses
2582 ggc_alloced_size_order_for_request.
2583 (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
2584 * ggc-zone.c (ggc_round_alloc_size): New public function extracted
2585 from ggc_internal_alloc_zone_stat.
2586 (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
2587 * toplev.c (general_init): Initialize
2588 line_table->alloced_size_for_request.
2589
e77b8253 25902011-10-15 Tom Tromey <tromey@redhat.com>
2591 Dodji Seketeli <dodji@redhat.com>
2592
140528a5 2593 * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
e77b8253 2594 (num_expanded_macros_counter, num_macro_tokens_counter): Declare
2595 new counters.
2596 (dump_line_table_statistics): Define new function.
2597 * input.h (dump_line_table_statistics): Declare new function.
2598 * toplev.c (dump_memory_report): Call dump_line_table_statistics.
2599
62db153a 26002011-10-15 Tom Tromey <tromey@redhat.com>
2601 Dodji Seketeli <dodji@redhat.com>
2602
2603 * doc/cppopts.texi: Document -fdebug-cpp.
140528a5 2604 * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
62db153a 2605
3de02a0f 26062011-10-15 Tom Tromey <tromey@redhat.com>
2607 Dodji Seketeli <dodji@redhat.com>
2608
2609 * gcc/diagnostic.h (diagnostic_report_current_module): Add a
2610 location parameter.
2611 * diagnostic.c (diagnostic_report_current_module): Add a location
2612 parameter to the function definition. Use it instead of
2613 input_location. Resolve the virtual location rather than just
2614 looking up its map and risking to touch a resulting macro map.
2615 (default_diagnostic_starter): Pass the relevant diagnostic
2616 location to diagnostic_report_current_module.
2617 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
2618 (virt_loc_aware_diagnostic_finalizer): Likewise.
2619 (diagnostic_report_current_function): Pass the
2620 relevant location to diagnostic_report_current_module.
2621 * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
2622 new function.
2623 * toplev.c (general_init): By default, use the new
2624 virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
2625 * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
2626
ce70f433 26272011-10-15 Tom Tromey <tromey@redhat.com>
2628 Dodji Seketeli <dodji@redhat.com>
2629
2630 * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
2631 * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
2632 preprocessor related options.
2633
97bfb9ef 26342011-10-15 Tom Tromey <tromey@redhat>
2635 Dodji Seketeli <dodji@redhat.com>
2636
2637 * input.h (struct expanded_location): Move to libcpp/line-map.h.
2638 (LOCATION_COLUMN): New accessor
2639 (in_system_header_at): Use linemap_location_in_system_header_p.
2640 * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
140528a5 2641 touching the internals of struct line_map. Use the public API instead.
97bfb9ef 2642 (diagnostic_report_diagnostic): Don't use relational operator '<'
2643 on virtual locations. Use linemap_location_before_p instead.
2644 * input.c (expand_location): Adjust to expand to the tokens'
2645 spelling location when macro location tracking is on.
2646
2647
ada13b28 26482011-10-08 Andi Kleen <ak@linux.intel.com>
2649
2650 * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
2651
be3b489b 26522011-10-13 Andi Kleen <ak@linux.intel.com>
2653
2654 * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
2655
8be5e865 26562011-10-16 Ira Rosen <ira.rosen@linaro.org>
2657
2658 PR tree-optimization/50727
2659 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
2660 DEF_STMT to the list of statements to be replaced by the
2661 pattern statements.
2662
a343634a 26632011-10-16 Eric Botcazou <ebotcazou@adacore.com>
2664
2665 PR rtl-optimization/50615
2666 * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
2667
50f85e2e 26682011-10-16 Jakub Jelinek <jakub@redhat.com>
2669
2670 PR tree-optimization/50596
2671 * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
2672 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2673 vect_recog_bool_pattern.
2674 (check_bool_pattern, adjust_bool_pattern_cast,
2675 adjust_bool_pattern, vect_recog_bool_pattern): New functions.
2676
50f85e2e 26772011-10-16 Ira Rosen <ira.rosen@linaro.org>
24c271ef 2678
2679 * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
2680 treat the first load of the node as the first element in its
2681 interleaving chain.
2682 * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
2683 necessary and possible.
2684 (vect_build_slp_tree): Add new argument. Allow load groups of any size
2685 in basic blocks. Keep all the loads for further permutation check.
2686 Use the new argument to determine if there is a permutation. Update
2687 the recursive calls.
2688 (vect_supported_load_permutation_p): Allow subchains of interleaving
2689 chains in basic block vectorization.
2690 (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
2691 Check load permutation based on the new parameter.
2692 (vect_schedule_slp_instance): Don't start from the first element in
2693 interleaving chain unless the loads are permuted.
2694
f76f7453 26952011-10-15 Jan Hubicka <jh@suse.cz>
2696
2697 PR target/48668
2698 PR target/50689
2699 * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
2700 after function body.
2701
964ec9cd 27022011-10-15 Richard Henderson <rth@redhat.com>
2703
2704 * tree-vect-slp.c: Include langhooks.h.
2705 (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
2706 (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify
2707 mask creation for VEC_PERM_EXPR.
2708 * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
2709 not the builtin.
2710 (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
2711 * Makefile.in (tree-vect-slp.o): Update dependency.
2712 * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
2713
ebb480ca 27142011-10-15 Alan Modra <amodra@gmail.com>
2715
2716 PR bootstrap/50738
2717 * ifcvt.c (dead_or_predicable): Revert accidental commit with
2718 HAVE_simple_return test.
2719
31a53363 27202011-10-15 Alan Modra <amodra@gmail.com>
2721
97ad7dab 2722 * ifcvt.c (dead_or_predicable): Disable if-conversion when
2723 doing so is likely to kill a shrink-wrapping opportunity.
2724
31a53363 2725 PR rtl-optimization/49941
2726 * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
2727
2728 * rtl.h (set_return_jump_label): Declare.
2729 * function.c (set_return_jump_label): New function, extracted..
2730 (thread_prologue_and_epilogue_insns): ..from here. Use it in
2731 another instance to set return jump_label.
2732 * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
2733 * reorg.c (find_end_label): Likewise.
2734
5bd71bb8 27352011-10-14 David S. Miller <davem@davemloft.net>
2736
2737 * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
2738 with a more complete cpp test.
2739 * config/sparc/linux64.h: Likewise.
2740 * config/sparc/linux.h: Likewise.
2741 * config/sparc/sparc.opt (sparc_debug): New target variable.
2742 (mdebug): New target option.
2743 * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
2744 TARGET_DEBUG_OPTIONS): New defines.
2745 * config/sparc/sparc.c (debug_target_flag_bits,
2746 debug_target_flags): New functions.
2747 (sparc_option_override): Add name strings back to cpu_table[].
2748 Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print
2749 out the target flags before and after override processing as well
2750 as the selected cpu. If MASK_V8PLUS, make sure that the selected
2751 cpu is at least v9.
2752
74cf552d 27532011-10-15 Oleg Endo <oleg.endo@t-online.de>
2754
2755 PR target/49263
2756 * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
2757 * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
2758 * config/sh/sh.md (tstsi_t): Name existing insn. Make inner
2759 and instruction commutative.
2760 (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
2761 tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
2762 tstsi_t_zero_extract_subreg_xor_little,
2763 tstsi_t_zero_extract_subreg_xor_big): New insns.
2764 (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
2765 asm output.
42464b2b 2766 (*andsi_compact): Reorder alternatives so that K08 is considered first.
74cf552d 2767
5bee6fd9 27682011-10-14 Eric Botcazou <ebotcazou@adacore.com>
2769
2770 PR target/50354
2771 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
2772 processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
2773
4d9e4ae0 27742011-10-14 Gerald Pfeifer <gerald@pfeifer.com>
2775
2776 * invoke.texi (AVR Options): Avoid \leq{}.
2777
08fc122d 27782011-10-14 Kai Tietz <ktietz@redhat.com>
2779
2780 * gimplify.c (gimplify_expr): Take care that for bitwise-binary
2781 transformation the operands have compatible types.
2782
16e84e52 27832011-10-14 Jakub Jelinek <jakub@redhat.com>
2784
2785 * config/i386/sse.md (vec_widen_smult_hi_v8hi,
2786 vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
2787 vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
2788 mode iterator and any_extend code iterator.
42464b2b 2789 (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
16e84e52 2790 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
2791 also for TARGET_SSE4_1 using pmuldq insn.
2792 (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
2793 (sse2_sse4_1): New code attr.
2794 (udot_prodv4si): Macroize using any_extend code iterator.
2795 (<s>dot_prodv8si): New expander.
2796
b3a4e486 27972011-10-14 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
2798
2799 * config/i386/i386.c (atom_cost): Changed cost for loading
2800 QImode using movzbl.
2801
294c1dee 28022011-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
2803
2804 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
2805 change on October 11th, 2011.
2806
c241ed0e 28072011-10-14 Jakub Jelinek <jakub@redhat.com>
2808
2809 * config/i386/sse.md (vec_interleave_high<mode>,
42464b2b 2810 vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
c241ed0e 2811 * config/i386/i386.c (expand_vec_perm_interleave3): New function.
2812 (ix86_expand_vec_perm_builtin_1): Call it.
2813
15dca82a 28142011-10-14 Georg-Johann Lay <avr@gjlay.de>
2815
2816 Fix thinko from r179765
2817 * config/avr/avr.c (avr_option_override): Don't override
2818 flag_omit_frame_pointer if not actually needed.
294c1dee 2819
f9efb148 28202011-10-14 Georg-Johann Lay <avr@gjlay.de>
2821
2822 PR target/46278
2823 * doc/invoke.texi (AVR Options): Document -mstrict-X.
2824
2825 * config/avr/avr.opt (-mstrict-X): New option.
2826 (avr_strict_X): New variable reflecting -mstrict-X.
2827 * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
2828 outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
2829 (avr_legitimate_address_p): Pass outer_code to
2830 avr_reg_ok_for_addr_p and use that function in case PLUS.
2831 (avr_mode_code_base_reg_class): Depend on avr_strict_X.
2832 (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
2833 (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
42464b2b 2834
335adffd 28352011-10-14 Jakub Jelinek <jakub@redhat.com>
2836
d2c249f5 2837 * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
2838 of VI_128.
2839
42464b2b 2840 * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
335adffd 2841 (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
2842 Use <sseinsnmode> instead of TI in mode attr.
2843
25798cc7 28442011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
2845
2846 * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
2847 * config/arm/linux-atomic.c: Change comment to point to 64bit version.
2848 (SYNC_LOCK_RELEASE): Instantiate 64bit version.
2849 * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
2850
f048bfc4 28512011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
2852
2853 * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
2854 (arm_output_strex): Support strexd.
2855 (arm_output_it): New helper to output it in Thumb2 mode only.
2856 (arm_output_sync_loop): Support DI mode. Change comment to
2857 not support const_int.
2858 (arm_expand_sync): Support DI mode.
2859 * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
2860 and LDREXD.
2861 * config/arm/iterators.md (NARROW): move from sync.md.
2862 (QHSD): New iterator for all current ARM integer modes.
2863 (SIDI): New iterator for SI and DI modes only.
2864 * config/arm/sync.md (sync_predtab): New mode_attr.
2865 (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
2866 (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
2867 (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
2868 (sync_nandsi): Fold into sync_nand<mode>.
2869 (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
2870 (sync_new_nandsi): Fold into sync_new_nand<mode>.
2871 (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
2872 (sync_old_nandsi): Fold into sync_old_nand<mode>.
2873 (sync_compare_and_swap<mode>): Support SI & DI.
2874 (sync_lock_test_and_set<mode>): Likewise.
2875 (sync_<sync_optab><mode>): Likewise.
2876 (sync_nand<mode>): Likewise.
2877 (sync_new_<sync_optab><mode>): Likewise.
2878 (sync_new_nand<mode>): Likewise.
2879 (sync_old_<sync_optab><mode>): Likewise.
2880 (sync_old_nand<mode>): Likewise.
2881 (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
2882 (arm_sync_lock_test_and_setsi): Likewise.
2883 (arm_sync_new_<sync_optab>si): Likewise.
2884 (arm_sync_new_nandsi): Likewise.
2885 (arm_sync_old_<sync_optab>si): Likewise.
2886 (arm_sync_old_nandsi): Likewise.
2887 (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
2888 (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
2889 (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
2890 (arm_sync_new_nand<mode> NARROW): Likewise.
2891 (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
2892 (arm_sync_old_nand<mode> NARROW): Likewise.
2893
b3902c95 28942011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
2895
2896 PR target/48126
2897 * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
2898
69a989bd 28992011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
2900
2901 * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
2902
9116f9b0 29032011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
2904
2905 * doc/invoke.texi ([Wformat-zero-length]): Tidy.
2906
6bab1e6c 29072011-10-14 Jakub Jelinek <jakub@redhat.com>
2908
42464b2b 2909 * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
2910 on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
6bab1e6c 2911
ad676199 29122011-10-14 Richard Guenther <rguenther@suse.de>
2913
2914 PR tree-optimization/50723
2915 * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
2916
f41791cf 29172011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
2918
2919 * gengtype.c (files_rules): Added rules for objc/objc-map.h and
2920 objc/objc-map.c.
2921
e69c1afc 29222011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
2923
2924 PR c++/17212
326e3391 2925 * doc/invoke.texi ([Wformat-zero-length]): Update.
e69c1afc 2926
8158aa7e 29272011-10-14 Iain Sandoe <iains@gcc.gnu.org>
2928
2929 PR bootstrap/50699
2930 * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
e69c1afc 2931 build for powerpc targets. (darwin_patch_builtins): Only build for
8158aa7e 2932 powerpc targets.
2933
ded0808e 29342011-10-14 Jakub Jelinek <jakub@redhat.com>
2935
2936 * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
2937 (avx_cvtdq2pd256_2): ... this.
2938 (sseunpackfltmode): New mode attr.
2939 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
2940 vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
2941 using VI2_AVX2 iterator.
42464b2b 2942 (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
ded0808e 2943
216010d3 29442011-10-13 David S. Miller <davem@davemloft.net>
2945
2946 * config/sparc/sparc.md (plusminus): New code iterator.
2947 (plusminus_insn): New code attr.
2948 (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
2949 using plusminus and plusminus_insn.
2950 (fpadd64_vis, fpsub64_vis): Likewise.
2951
87eee89b 29522011-10-13 Richard Henderson <rth@redhat.com>
2953
2954 * doc/md.texi (vec_perm): Document fallback to byte permutation.
2955 * genopinit.c (optabs): Add vec_perm_const.
2956 * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
2957 Reject non-vector modes. Allow fallback to byte permutation.
2958 (expand_vec_perm_expr_1): Split out from ...
2959 (expand_vec_perm_expr): ... here. Allow fallback to byte permutation.
2960 * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
2961 * tree-vect-generic.c (lower_vec_perm): Update for name change.
2962
1958c0ba 29632011-10-13 Richard Henderson <rth@redhat.com>
2964
2965 * config/rs6000/altivec.md (vec_permv16qi): New pattern.
2966
11712a33 2967 * config/rs6000/spu.md (vec_permv16qi): New pattern.
2968
6ae3cabe 2969 * config/i386/i386.c (ix86_expand_vec_perm_const): New.
2970 * config/i386/i386-protos.h: Update.
2971 * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
2972 (vec_perm_const<VEC_PERM_CONST>): New expander.
2973
83a28c11 2974 * optabs.c (expand_vector_broadcast): New.
2975 (expand_binop): Expand scalar shifts of vectors to vector shifts
2976 of vectors, if the former isn't supported.
2977 * tree-vect-generic.c (expand_vector_operations_1): Don't do that
2978 here; always simplify to scalar shift of vector if possible.
2979
5586227c 2980 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
2981 test for vector splat.
2982
8dcef91b 29832011-10-13 Jakub Jelinek <jakub@redhat.com>
2984
42464b2b 2985 * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
8dcef91b 2986
7e21e36b 29872011-10-13 Jakub Jelinek <jakub@redhat.com>
2988 Richard Guenther <rguenther@suse.de>
2989
42464b2b 2990 * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
2991 or complex vars even if their DECL_UID is in not_reg_needs bitmap.
7e21e36b 2992
e529f590 29932011-10-13 Jakub Jelinek <jakub@redhat.com>
2994
2995 * config/i386/sse.md (reduc_umin_v8hi): New pattern.
2996 * config/i386/i386.c (ix86_build_const_vector): Handle
2997 also V32QI, V16QI, V16HI and V8HI modes.
2998 (emit_reduc_half): New function.
2999 (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
3000 Use emit_reduc_half helper function.
3001
42464b2b 30022011-10-13 Lawrence Crowl <crowl@google.com>
3003 Diego Novillo <dnovillo@google.com>
e4fc8eb2 3004
3005 * lto-streamer-in.c (input_struct_function_base): Factor out of ...
3006 (input_function): ... here.
3007 * lto-streamer-out.c (output_struct_function_base): Factor out of ...
3008 (output_function): ... here.
3009
c59bc102 30102011-10-13 Gabriel Charette <gchare@google.com>
3011 Diego Novillo <dnovillo@google.com>
3012
3013 * streamer-hooks.h (struct streamer_hooks): Add hooks
3014 input_location and output_location.
3015 * lto-streamer-in.c (lto_input_location): Use
3016 streamer_hooks.input_location, if set.
3017 * lto-streamer-out.c (lto_output_location): Use
3018 streamer_hooks.output_location, if set.
3019
5bee6fd9 30202011-10-13 Eric Botcazou <ebotcazou@adacore.com>
3021
3022 * doc/invoke.texi (SPARC options): Document -mfix-at697f.
3023 * config/sparc/sparc.opt (mfix-at697f): New option.
3024 * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
3025 (sparc_reorg): New function.
3026
0ed25048 30272011-10-13 Richard Guenther <rguenther@suse.de>
3028
3029 PR tree-optimization/50712
3030 * ipa-split.c (split_function): Always re-gimplify parameters
3031 when they are not gimple vals before passing them. Properly
3032 check for type compatibility.
3033
4f986f8b 30342011-10-13 Tom de Vries <tom@codesourcery.com>
3035
3036 * function.c (gimplify_parameters): Set number of arguments of call to
3037 BUILT_IN_ALLOCA_WITH_ALIGN to 2.
3038
cab98a0d 30392011-10-13 Tom de Vries <tom@codesourcery.com>
3040
3041 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
3042 for static const strings.
3043 * varasm.c (build_constant_desc): Generate the memory location of the
3044 constant using gen_const_mem.
3045
01afea05 30462011-10-13 Richard Guenther <rguenther@suse.de>
3047
3048 PR tree-optimization/50698
3049 * tree-data-ref.c (split_constant_offset_1): Also process
3050 offsets of &MEM.
3051
9cf38689 30522011-10-12 David S. Miller <davem@davemloft.net>
3053
beb1857f 3054 * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
3055 (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
3056 unspecs.
3057 (fpmerge_vis): Remove inaccurate comment, represent using vec_select
3058 of a vec_concat.
3059 (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
3060 (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
3061 Reimplement as unspecs and remove inaccurate comments.
3062 (vis3_shift_patname): New code attr.
42464b2b 3063 (<vis3_shift_insn><vbits>_vis): Rename to
3064 "v<vis3_shift_patname><mode>3".
beb1857f 3065 (vis3_addsub_ss_patname): New code attr.
3066 (<vis3_addsub_ss_insn><vbits>_vis): Rename to
3067 "<vis3_addsub_ss_patname><mode>3".
3068 * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
3069 accommodate pattern name changes.
3070
9cf38689 3071 * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
3072 to zero when assembler lacks support for such instructions.
3073 * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
3074 and MASK_FMAF in defaults when assembler lacks necessary support.
3075
a24c6b3c 30762011-10-12 Jakub Jelinek <jakub@redhat.com>
3077
02c36302 3078 * config/i386/sse.md (vec_unpacks_lo_<mode>,
3079 vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
42464b2b 3080 vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
02c36302 3081 * config/i386/i386.c (ix86_expand_sse_unpack): Handle
3082 V32QImode, V16HImode and V8SImode for TARGET_AVX2.
3083
9fb8de40 3084 * config/i386/sse.md (vec_avx2): New mode_attr.
42464b2b 3085 (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
9fb8de40 3086 (mul<mode>3): ... this.
3087
a9e4de7b 3088 * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
3089 * config/i386/i386.c (ix86_expand_vec_perm): Handle
3090 V16QImode and V32QImode for TARGET_AVX2.
3091 (MAX_VECT_LEN): Increase to 32.
3092 (expand_vec_perm_blend): Add support for 32-byte integer
3093 vectors with TARGET_AVX2.
3094 (valid_perm_using_mode_p): New function.
3095 (expand_vec_perm_pshufb): Add support for 32-byte integer
3096 vectors with TARGET_AVX2.
3097 (expand_vec_perm_vpshufb2_vpermq): New function.
3098 (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
3099 (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
3100 with TARGET_AVX2.
3101 (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
3102 and expand_vec_perm_vpshufb2_vpermq_even_odd.
3103 * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
3104 32-byte integer vector modes.
3105 (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
3106 (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
3107 (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
3108 4 new operands.
3109 (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
3110 match_dup, instead add 4 new operands and require they have
3111 right cross-lane values.
3112 (avx2_permv4di): Change into define_expand.
3113 (avx2_permv4di_1): New instruction.
3114 (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
3115 for "xm" constrained operand.
3116 (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
3117
a24c6b3c 3118 * config/i386/sse.md (avx2_gathersi<mode>,
3119 avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
3120 match_scratch, change memory_operand to register_operand,
3121 add (mem:BLK (scratch)) use.
3122 (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
3123 *avx2_gatherdi<mode>256): Add clobber of match_scratch,
3124 add earlyclobber to the output operand and match_scratch,
3125 add (mem:BLK (scratch)) use, change the other mem to match_operand.
3126 Use %p6 instead of %c6 in the pattern.
3127 * config/i386/i386.c (ix86_expand_builtin): Adjust for
3128 operand 2 being a Pmode register_operand instead of memory_operand.
3129
3e740495 31302011-10-12 Kai Tietz <ktietz@redhat.com>
3131
42464b2b 3132 * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
3e740495 3133
ac03db3f 31342011-10-12 Steve Ellcey <sje@cup.hp.com>
3135
3136 * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
3137
0afe880d 31382011-10-12 Richard Guenther <rguenther@suse.de>
3139
3140 * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
3141 of the first store we visit in a basic-block.
3142 (get_continuation_for_phi): Search for a candidate VUSE that
3143 might dominates all others. Do pairwise disambiguation against
3144 that candidate.
3145
325d00b0 31462011-10-12 Paul Koning <pkoning@gcc.gnu.org>
3147
3148 PR tree-optimization/50189
3149 * tree-vrp.c (extract_range_from_assert): Use the type of
3150 the variable, not the limit.
3151
97a7a862 31522011-10-12 Richard Guenther <rguenther@suse.de>
3153
3154 PR tree-optimization/50700
3155 * tree-object-size.c (addr_object_size): Simplify and treat
3156 MEM_REF bases consistently.
3157
cde48de6 31582011-10-12 Bernd Schmidt <bernds@codesourcery.com>
3159
3160 * function.c (prepare_shrink_wrap, bb_active_p): New function.
140528a5 3161 (thread_prologue_and_epilogue_insns): Use bb_active_p. Call
3162 prepare_shrink_wrap, then recompute bb_active_p for the last block.
cde48de6 3163
2ae38d08 31642011-10-12 Joseph Myers <joseph@codesourcery.com>
3165
3166 PR c/50565
3167 * convert.c (convert_to_integer): Do not narrow operands of
3168 pointer subtraction.
3169
146c1712 31702011-10-12 Nick Clifton <nickc@redhat.com>
3171
3172 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro. Used to
3173 emit a .eabi_attribute assembler directive, possibly with a
3174 comment attached.
3175 * config/arm/arm.c (arm_file_start): Use the new macro.
3176 * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
3177
8ef28ef2 31782011-10-12 Georg-Johann Lay <avr@gjlay.de>
3179
3180 PR target/49939
3181 * config/avr/avr.md (*movqi): Rename to movqi_insn.
3182 (*call_insn): Rename to call_insn.
3183 (*call_value_insn): Rename to call_value_insn.
3184 * config/avr/avr.c (avr_2word_insn_p): New static function.
3185 (jump_over_one_insn_p): Use it.
3186
ee5ab2d1 31872011-10-12 Richard Sandiford <richard.sandiford@linaro.org>
3188
3189 * expr.h (copy_blkmode_to_reg): Declare.
3190 * expr.c (copy_blkmode_to_reg): New function.
3191 (expand_assignment): Don't expand register RESULT_DECLs before
3192 the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a
3193 RESULT_DECL register.
3194 (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
3195 * stmt.c (expand_return): Move BLKmode-to-register code into
3196 copy_blkmode_to_reg.
3197
f569dc60 31982011-10-11 Eric Botcazou <ebotcazou@adacore.com>
3199
3200 PR target/49965
3201 * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
3202 (mov<F:mode>cc): Likewise.
3203
bf0163ca 32042011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3205
3206 * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
3207
b9a16870 32082011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
3209
3210 * tree.h (built_in_decls): Delete old interface with two parallel
3211 arrays to hold standard builtin declarations, and replace it with
3212 a function based interface that can support creating builtins on
3213 the fly in the future. Change all uses, and poison the old
3214 names. Make sure 0 is not a legitimate builtin index.
3215 (implicit_built_in_decls): Ditto.
3216 (built_in_info): Ditto.
3217 (BUILTIN_VALID_P): Ditto.
3218 (builtin_decl_explicit): Ditto.
3219 (builtin_decl_implicit): Ditto.
3220 (set_builtin_decl): Ditto.
3221 (set_builtin_decl_implicit_p): Ditto.
3222 (builtin_decl_explicit_p): Ditto.
3223 (builtin_decl_implicit_p): Ditto.
3224 * tree-complex.c (expand_complex_libcall): Ditto.
3225 * tree-loop-distribution.c (generate_memset_zero): Ditto.
3226 * tree-ssa-strlen.c (get_string_length): Ditto.
3227 (handle_builtin_strcpy): Ditto.
3228 (handle_builtin_strcat): Ditto.
3229 * tree.c (iterative_hash_expr): Ditto.
3230 (local_define_builtin): Ditto.
3231 (build_common_builtin_nodes): Ditto.
3232 * builtins.c (built_in_decls): Ditto.
3233 (implicit_built_in_decls): Ditto.
3234 (built_in_info): Ditto
3235 (expand_builtin_classify_type): Ditto.
3236 (mathfn_built_in_1): Ditto.
3237 (expand_builtin_cexpi): Ditto.
3238 (expand_builtin_mempcpy_args): Ditto.
3239 (expand_builtin_stpcpy): Ditto.
3240 (gimplify_va_arg_expr): Ditto.
3241 (expand_builtin_sync_operation): Ditto.
3242 (build_builtin_expect_predicate): Ditto.
3243 (fold_builtin_memory_op): Ditto.
3244 (fold_builtin_strcpy): Ditto.
3245 (fold_builtin_stpcpy): Ditto.
3246 (fold_builtin_strncpy): Ditto.
3247 (fold_builtin_interclass_mathfn): Ditto.
3248 (fold_builtin_classify): Ditto.
3249 (fold_builtin_2): Ditto.
3250 (fold_builtin_strstr): Ditto.
3251 (fold_builtin_strrchr): Ditto.
3252 (fold_builtin_strpbrk): Ditto.
3253 (fold_builtin_strcat): Ditto.
3254 (fold_builtin_strncat): Ditto.
3255 (fold_builtin_strcspn): Ditto.
3256 (fold_builtin_fputs): Ditto.
3257 (fold_builtin_sprintf): Ditto.
3258 (fold_builtin_snprintf): Ditto.
3259 (expand_builtin_memory_chk): Ditto.
3260 (fold_builtin_memory_chk): Ditto.
3261 (fold_builtin_stxcpy_chk): Ditto.
3262 (fold_builtin_strncpy_chk): Ditto.
3263 (fold_builtin_strcat_chk): Ditto.
3264 (fold_builtin_strncat_chk): Ditto.
3265 (fold_builtin_sprintf_chk_1): Ditto.
3266 (fold_builtin_snprintf_chk_1): Ditto.
3267 (fold_builtin_printf): Ditto.
3268 (fold_builtin_fprintf): Ditto.
3269 (fold_call_stmt): Ditto.
3270 (set_builtin_user_assembler_name): Ditto.
3271 * tree-emutls.c (emutls_common_1): Ditto.
3272 * omp-low.c (scan_omp): Ditto.
3273 (lower_rec_input_clauses): Ditto.
3274 (lower_reduction_clauses): Ditto.
3275 (expand_parallel_call): Ditto.
3276 (expand_task_call): Ditto.
3277 (maybe_catch_exception): Ditto.
3278 (optimize_omp_library_calls): Ditto.
3279 (expand_omp_for_generic): Ditto.
3280 (expand_omp_for_static_nochunk): Ditto.
3281 (expand_omp_for_static_chunk): Ditto.
3282 (expand_omp_sections): Ditto.
3283 (expand_omp_atomic_fetch_op): Ditto.
3284 (expand_omp_atomic_pipeline): Ditto.
3285 (expand_omp_atomic_mutex): Ditto.
3286 (lower_omp_single_simple): Ditto.
3287 (lower_omp_single_copy): Ditto.
3288 (lower_omp_master): Ditto.
3289 (lower_omp_ordered): Ditto.
3290 (lower_omp_critical): Ditto.
3291 * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
3292 * builtins.c (DEF_BUILTIN_STUB): Ditto.
3293 (BUILT_IN_NONE): Ditto.
3294 * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
3295 * gimple-low.c (lower_function_body): Ditto.
3296 (lower_builtin_setjmp): Ditto.
3297 * c-decl.c (merge_decls): Ditto.
3298 * tree-eh.c (lower_resx): Ditto.
3299 (lower_resx): Ditto.
3300 (lower_eh_dispatch): Ditto.
3301 * function (gimplify_parameters): Ditto.
3302 * c-typeck.c (build_function_call_vec): Ditto.
3303 * gimplify.c (build_stack_save_restore): Ditto.
3304 (gimplify_vla_decl): Ditto.
3305 (gimplify_modify_expr_to_memcpy): Ditto.
3306 (gimplify_modify_expr_to_memset): Ditto.
3307 (gimplify_variable_sized_compare): Ditto.
3308 (gimplify_function_tree): Ditto.
3309 * calls.c (emit_call_1): Ditto.
3310 * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
3311 * tree-nested.c (convert_nl_goto_reference): Ditto.
3312 (convert_tramp_reference_op): Ditto.
3313 (finalize_nesting_tree_1): Ditto.
3314 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
3315 (tree_ssa_prefetch_arrays): Ditto.
3316 * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
3317 * system.h (built_in_decls): Ditto.
3318 (implicit_built_in_decls): Ditto.
3319 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
3320 * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
3321 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
3322 (ix86_veclibabi_svml): Ditto.
3323 (ix86_veclibabi_acml): Ditto.
3324 * config/vms/vms.c (vms_patch_builtins): Ditto.
3325 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
3326 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
3327 (rs6000_builtin_vectorized_libmass): Ditto.
3328 (rs6000_init_builtins): Ditto.
3329 * config/darwin.c (darwin_override_options): Ditto.
3330 (darwin_patch_builtin): Ditto.
3331 (darwin_rename_builtins): Ditto.
3332 * config/pa/pa.c (pa_init_builtins): Ditto.
3333
74fcb726 33342011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3335
3336 * tree.h (copy_ref_info): Expose existing function.
3337 * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
3338 * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
3339
8b0ecac5 33402011-10-11 Georg-Johann Lay <avr@gjlay.de>
3341
42464b2b 3342 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
3343 prototype.
8b0ecac5 3344 (avr_regno_mode_code_ok_for_base_p): New prototype.
3345 * config/avr/avr.h (BASE_REG_CLASS): Remove.
3346 (REGNO_OK_FOR_BASE_P): Remove.
3347 (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
3348 (REG_OK_FOR_BASE_STRICT_P): Remove.
3349 (MODE_CODE_BASE_REG_CLASS): New define.
3350 (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
3351 * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
3352 (avr_regno_mode_code_ok_for_base_p): New function.
3353 (avr_reg_ok_for_addr_p): New static function.
3354 (avr_legitimate_address_p): Use it. Beautify.
3355
bcad9375 33562011-10-11 Georg-Johann Lay <avr@gjlay.de>
3357
3358 PR target/50447
3359 * config/avr/avr.md (cc): Add out_plus attribute alternative.
3360 (addsi3): Use it. Adapt avr_out_plus to new prototype. Use
3361 avr_out_plus for all CONST_INT addends.
3362 * config/avr/avr-protos.h (avr_out_plus): Change prototype.
3363 * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
3364 CC_OUT_PLUS.
3365 (avr_out_plus_1): Change prototype and report effect on cc0.
3366 (avr_out_plus): Ditto.
3367 (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
3368
d331c123 33692011-10-11 H.J. Lu <hongjiu.lu@intel.com>
3370
3371 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
3372 the extra break.
3373
928efcfe 33742011-10-11 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
3375
3376 * doc/invoke.texi: Document new warning.
3377 * common.opt (Wvector-operation-performance): Define new warning.
3378 * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
3379 vector operation.
3380 (exapnd_vector_parallel): Warn about expanded vector operation.
3381 (lower_vec_shuffle): Warn about expanded vector operation.
3382 * c-typeck.c (c_build_vec_perm_expr): Store correct location
3383 when creating VEC_PERM_EXPR.
3384
d7f69727 33852011-10-11 Richard Guenther <rguenther@suse.de>
3386
3387 PR tree-optimization/50204
3388 * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
3389 two argument handling from ...
3390 (get_continuation_for_phi): ... here. Handle arbitrary number
3391 of PHI args.
3392
469e33a0 33932011-10-11 Richard Sandiford <richard.sandiford@linaro.org>
3394
3395 * modulo-sched.c: Fix comment typo. Mention the possibility
3396 of using scheduling windows of II+1 cycles.
3397
c7964868 33982011-10-11 Tristan Gingold <gingold@adacore.com>
3399
3400 * doc/invoke.texi (C Dialect Options): Document
3401 -fallow-parameterless-variadic-functions.
3402 * c-parser.c (c_parser_parms_list_declarator): Handle it.
3403
344ae919 34042011-10-10 Georg-Johann Lay <avr@gjlay.de>
3405
140528a5 3406 * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
3407 to 0 if frame pointer is needed for unwinding.
344ae919 3408
64169cc9 34092011-10-10 Uros Bizjak <ubizjak@gmail.com>
3410
fbb42436 3411 PR bootstrap/50665
64169cc9 3412 * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm. Move from enum
3413 optab_index to enum direct_optab_index.
3414 (vec_perm_optab): Update.
3415
66e59d7a 34162011-10-10 Anatoly Sokolov <aesok@post.ru>
3417
3418 * config/cris/cris.c (cris_preferred_reload_class): New function.
3419 (TARGET_PREFERRED_RELOAD_CLASS): Define.
3420 * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
3421
96fc2c79 34222011-10-10 Georg-Johann Lay <avr@gjlay.de>
3423
3424 * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
3425 !AVR_HAVE_JMP_CALL.
3426 (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
3427 (*tablejump_enh, *tablejump): Remove insns.
3428 * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
3429 EIJMP for indirect jump. Use LPM Z+ where available.
3430
6a606346 34312011-10-10 Richard Henderson <rth@redhat.com>
3432
3433 * doc/md.texi (vec_perm_const): Fix typo in cindex.
3434
9383072e 34352011-10-10 Kirill Yukhin <kirill.yukhin@intel.com>
3436 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
3437
3438 * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
3439
03abbc5d 34402011-10-10 Richard Guenther <rguenther@suse.de>
3441
3442 PR middle-end/50389
3443 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
3444 mark symbols for renaming. Append the VUSE to all statements
3445 that possibly can have one.
3446
ae9fbf33 34472011-10-10 Richard Guenther <rguenther@suse.de>
3448
3449 * ipa-split.c (pass_split_functions): Add verification TODOs.
3450 (pass_feedback_split_functions): Likewise.
3451
f789954d 34522011-10-10 Richard Guenther <rguenther@suse.de>
3453
3454 PR middle-end/50195
3455 * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
3456 only when optimizing.
3457
7799dcb4 34582011-10-10 Nick Clifton <nickc@redhat.com>
3459
3460 PR middle-end/49801
3461 * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
3462 df_get_live_out instead of accessing the bitmaps directly.
3463 (execute_compare_elim_after_reload): Remove calls to df_set_flags,
3464 df_live_add_problem and df_analyze.
3465
e0a567f6 34662011-10-10 Michael Matz <matz@suse.de>
3467
3468 PR middle-end/50638
3469 * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
3470
e9df34d5 34712011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
3472
3473 * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
3474 (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
3475 (node_sched_params): Remove first_reg_move and nreg_moves.
3476 (ps_num_consecutive_stages, extend_node_sched_params): New functions.
3477 (update_node_sched_params): Move up file.
3478 (print_node_sched_params): Print the stage. Don't dump info related
3479 to first_reg_move and nreg_moves.
3480 (set_columns_for_row): New function.
3481 (set_columns_for_ps): Move up file and use set_columns_for_row.
3482 (schedule_reg_move): New function.
3483 (schedule_reg_moves): Call extend_node_sched_params and
3484 schedule_reg_move. Extend size of uses bitmap. Initialize
3485 num_consecutive_stages. Return false if a move could not be
3486 scheduled.
3487 (apply_reg_moves): Don't emit moves here.
3488 (permute_partial_schedule): Handle register moves.
3489 (duplicate_insns_of_cycles): Remove for_prolog. Emit moves according
3490 to the same stage-count test as ddg nodes.
3491 (generate_prolog_epilog): Update calls accordingly.
3492 (sms_schedule): Allow move-scheduling to add a new first stage.
3493
0b79ae60 34942011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
3495
3496 * modulo-sched.c (ps_insn): Adjust comment.
3497 (ps_reg_move_info): New structure.
3498 (partial_schedule): Add reg_moves field.
3499 (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
3500 (node_sched_params): Turn first_reg_move into an identifier.
3501 (ps_reg_move): New function.
3502 (ps_rtl_insn): Cope with register moves.
3503 (ps_first_note): Adjust comment and assert that the instruction
3504 isn't a register move.
3505 (node_sched_params): Replace with...
3506 (node_sched_param_vec): ...this vector.
3507 (set_node_sched_params): Adjust accordingly.
3508 (print_node_sched_params): Take a partial schedule instead of a ddg.
3509 Use ps_rtl_insn and ps_reg_move.
3510 (generate_reg_moves): Rename to...
3511 (schedule_reg_moves): ...this. Remove rescan parameter. Record each
3512 move in the partial schedule, but don't emit it here. Don't perform
3513 register substitutions here either.
3514 (apply_reg_moves): New function.
3515 (duplicate_insns_of_cycles): Use register indices directly,
3516 rather than finding instructions using PREV_INSN. Use ps_reg_move.
3517 (sms_schedule): Call schedule_reg_moves before committing to
3518 a partial schedule. Try the next ii if the schedule fails.
3519 Use apply_reg_moves instead of generate_reg_moves. Adjust
3520 call to print_node_sched_params. Free node_sched_param_vec
3521 instead of node_sched_params.
3522 (create_partial_schedule): Initialize reg_moves.
3523 (free_partial_schedule): Free reg_moves.
3524
7282ef12 35252011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
3526
3527 * modulo-sched.c (ps_insn): Replace node field with an identifier.
3528 (SCHED_ASAP): Replace with..
3529 (NODE_ASAP): ...this macro.
3530 (SCHED_PARAMS): New macro.
3531 (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
3532 (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
3533 (node_sched_params): Remove asap.
3534 (ps_rtl_insn, ps_first_note): New functions.
3535 (set_node_sched_params): Use XCNEWVEC. Don't copy across the
3536 asap values.
3537 (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
3538 (generate_reg_moves): Pass ids to the SCHED_* macros.
3539 (update_node_sched_params): Take a ps insn identifier rather than
3540 a node as parameter. Use ps_rtl_insn.
3541 (set_columns_for_ps): Update for above field and SCHED_* macro changes.
3542 (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
3543 (optimize_sc): Update for above field and SCHED_* macro changes.
3544 Update calls to try_scheduling_node_in_cycle and
3545 update_node_sched_params.
3546 (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
3547 macro changes. Use ps_rtl_insn and ps_first_note.
3548 (sms_schedule): Pass ids to the SCHED_* macros.
3549 (get_sched_window): Adjust for above field and SCHED_* macro changes.
3550 Use NODE_ASAP instead of SCHED_ASAP.
3551 (try_scheduling_node_in_cycle): Remove node parameter. Update
42464b2b 3552 call to ps_add_node_check_conflicts. Pass ids to the SCHED_* macros.
7282ef12 3553 (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
3554 (ps_insert_empty_row): Adjust for above field changes.
3555 (compute_split_row): Use ids rather than nodes.
3556 (verify_partial_schedule): Adjust for above field changes.
3557 (print_partial_schedule): Use ps_rtl_insn.
3558 (create_ps_insn): Take an id rather than a node.
3559 (ps_insn_find_column): Adjust for above field changes.
3560 Use ps_rtl_insn.
3561 (ps_insn_advance_column): Adjust for above field changes.
3562 (add_node_to_ps): Remove node parameter. Update call to
3563 create_ps_insn.
3564 (ps_has_conflicts): Use ps_rtl_insn.
3565 (ps_add_node_check_conflicts): Replace node parameter than an id.
3566
6886bd51 35672011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
3568
3569 * modulo-sched.c (undo_replace_buff_elem): Delete.
3570 (generate_reg_moves): Don't build and return an undo list.
3571 (free_undo_replace_buff): Delete.
3572 (sms_schedule): Adjust call to generate_reg_moves.
3573 Don't call free_undo_replace_buff.
3574
d7ee432d 35752011-10-10 Matthias Klose <doko@ubuntu.com>
3576
3577 * common/config/m32c: Remove empty directory.
3578
83ecb4a4 35792011-10-10 Georg-Johann Lay <avr@gjlay.de>
3580
3581 * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
3582
f121e673 35832011-10-10 Georg-Johann Lay <avr@gjlay.de>
3584
3585 PR target/50652
3586 * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
3587 atmega164a to 0x100.
3588
56632de0 35892011-10-09 Eric Botcazou <ebotcazou@adacore.com>
3590
3591 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
3592 the replacement if the conversion to the LHS type is not useless.
3593
a9c76e4c 35942011-10-09 Ira Rosen <ira.rosen@linaro.org>
3595
3596 PR tree-optimization/50635
3597 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
3598 DEF_STMT to the list of statements to be replaced by the
3599 pattern statements.
3600 (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
3601
7379d16a 36022011-10-09 Anatoly Sokolov <aesok@post.ru>
3603
3604 * system.h: Commit forgotten hunk in previous patch.
3605 (OUTPUT_ADDR_CONST_EXTRA): Poison.
3606
4b8d9456 36072011-10-08 Nicola Pero <nicola.pero@meta-innovation.com>
3608
3609 PR libobjc/50428
3610 * doc/objc.texi (Garbage Collection): Updated example to protect
3611 +initialize against execution in subclasses.
3612
f4803722 36132011-10-07 Richard Henderson <rth@redhat.com>
3614
3615 * doc/extend.texi (__builtin_shuffle): Improve the description to
3616 include the modulus of the selector. Mention OpenCL.
3617 * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
3618
3619 * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
3620 * genopinit.c (optabs): Rename vshuffle to vec_perm.
3621 * c-typeck.c (c_build_vec_perm_expr): Rename from
3622 c_build_vec_shuffle_expr. Update for name changes.
3623 * optabs.c (expand_vec_perm_expr_p): Rename from
3624 expand_vec_shuffle_expr_p.
3625 (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
3626 * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
3627 (vec_perm_optab): Rename from vshuffle_optab.
3628 * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
3629 c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
3630 tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
3631
3632 * config/i386/i386.c (ix86_expand_vec_perm): Rename from
3633 ix86_expand_vshuffle.
3634 * config/i386/i386-protos.h: Update.
3635 * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
3636 (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
3637
738630ee 36382011-10-07 Richard Henderson <rth@redhat.com>
3639
3640 * config/i386/predicates.md (avx2_pblendw_operand): New.
3641 * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
3642 (avx2_pblendw, *avx2_pblendw): New expander and insn.
3643
058e4e29 36442011-10-07 Richard Henderson <rth@redhat.com>
3645
3646 * config/i386/i386.c (bdesc_args): Update code for
3647 __builtin_ia32_palignr256. Change type of __builtin_ia32_pslldqi256,
3648 and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
3649 (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
3650 * config/i386/sse.md (mode iterator V16): Add V2TI.
3651 (mode iterator SSESCALARMODE): Use V2TI not V4DI.
3652 (mode attr ssse3_avx2): Add V2TI.
3653 (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
3654
d7112989 36552011-10-07 David S. Miller <davem@davemloft.net>
3656
3657 PR 50655
3658 * configure.ac: Add .register directives to VIS3 test.
3659 * configure: Regenerate.
3660
d5301cf2 36612011-10-07 Richard Henderson <rth@redhat.com>
3662
3663 * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
3664
adca58ca 36652011-10-07 Richard Henderson <rth@redhat.com>
3666
3667 PR 49752
3668 * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
3669
63b58df5 36702011-10-07 Andrew Stubbs <ams@codesourcery.com>
3671
3672 * config/arm/predicates.md (shift_amount_operand): Remove constant
3673 range check.
3674 (shift_operator): Check range of constants for all shift operators.
3675
c60a7572 36762011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3677
3678 * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
3679 Load GOT pointer for non-pic builds.
3680 (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
3681 (s390_emit_call): Likewise.
3682
581bf1c2 36832011-10-07 Tom de Vries <tom@codesourcery.com>
3684
3685 PR middle-end/50527
3686 * tree.c (build_common_builtin_nodes): Add local_define_builtin for
902957a6 3687 BUILT_IN_ALLOCA_WITH_ALIGN. Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
3688 throw.
581bf1c2 3689 * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
902957a6 3690 arglist. Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
3691 (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
3692 (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
581bf1c2 3693 * tree-ssa-ccp.c (evaluate_stmt): Set align for
902957a6 3694 BUILT_IN_ALLOCA_WITH_ALIGN.
3695 (fold_builtin_alloca_for_var): Rename to ...
3696 (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
3697 BUILT_IN_ALLOCA_WITH_ALIGN argument.
3698 (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
3699 fold_builtin_alloca_with_align.
3700 (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
581bf1c2 3701 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
902957a6 3702 DEF_BUILTIN_STUB.
581bf1c2 3703 * ipa-pure-const.c (special_builtin_state): Handle
902957a6 3704 BUILT_IN_ALLOCA_WITH_ALIGN.
581bf1c2 3705 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
902957a6 3706 (call_may_clobber_ref_p_1): Same.
581bf1c2 3707 * function.c (gimplify_parameters): Lower vla to
902957a6 3708 BUILT_IN_ALLOCA_WITH_ALIGN.
581bf1c2 3709 * gimplify.c (gimplify_vla_decl): Same.
3710 * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
3711 * tree-mudflap.c (mf_xform_statements): Same.
3712 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
902957a6 3713 (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
581bf1c2 3714 * varasm.c (incorporeal_function_p): Same.
3715 * tree-object-size.c (alloc_object_size): Same.
3716 * gimple.c (gimple_build_call_from_tree): Same.
3717
f8e6666e 37182011-10-07 Bernd Schmidt <bernds@codesourcery.com>
3719
3720 * function.c (frame_required_for_rtx): Remove function.
3721 (requires_stack_frame_p): New arg set_up_by_prologue. All callers
3722 changed. Compute a set of mentioned registers and compare against
3723 the new arg rather than calling frame_required_for_rtx.
3724 (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
3725 reg set. Convert the unconverted_simple_returns mechanism to store
3726 jump insns rather than their basic blocks. Also check the
3727 orig_entry_edge destination for new blocks.
3728
f39dd90c 37292011-10-07 Jakub Jelinek <jakub@redhat.com>
3730
3731 PR tree-optimization/50650
3732 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
3733 call vect_is_simple_cond here, instead fail if cond_expr isn't
3734 COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
3735 for cond_expr's first operand.
3736 * tree-vect-stmts.c (vect_is_simple_cond): Static again.
3737 * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
3738
ad903b5f 37392011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3740
3741 * config/s390/s390.md (DWH, dwh): New mode macros.
3742 ("umulsidi3"): Extend to support "umulditi3" as well.
3743
f985fe79 37442011-10-07 Uros Bizjak <ubizjak@gmail.com>
3745 H.J. Lu <hongjiu.lu@intel.com>
3746
3747 PR target/50603
3748 * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
3749 integer PLUS RTX to a register to improve address combine.
3750
0f3e1f39 37512011-10-06 Richard Henderson <rth@redhat.com>
3752
3753 * combine-stack-adjust.c (maybe_move_args_size_note): Add after
3754 parameter; use it to decide whether to merge two notes.
3755 (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
3756 for the deallocation case as well.
3757
3608e5ba 37582011-10-06 Anatoly Sokolov <aesok@post.ru>
3759
3760 * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
3761 * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
3762 * doc/tm.texi: Regenerate.
3763 * target.def (output_addr_const_extra): Use
3764 hook_bool_FILEptr_rtx_false.
3765 * targhooks.c (default_asm_output_addr_const_extra): Remove.
3766 * targhooks.h (default_asm_output_addr_const_extra): Remove.
3767 * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
3768 * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
3769
498af5fe 37702011-10-06 David S. Miller <davem@davemloft.net>
3771
3772 * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
3773 (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
3774 SI mode 64-bit code gen case explicitly zero-extend and truncate.
3775 (*popcount<mode>_sp64): Split up into...
3776 (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
3777 SImode case use truncate.
3778 (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
3779 subtract so the compiler can optimize it.
3780 (SIDI): Remove unused mode iterator.
3781
4db91b33 37822011-10-06 Bernd Schmidt <bernds@codesourcery.com>
3783
f985fe79 3784 * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
3785 on the orig_entry_edge. Don't account for it in prologue_clobbered.
4db91b33 3786
84557284 37872011-10-06 Jakub Jelinek <jakub@redhat.com>
3788
3789 PR tree-optimization/50596
3790 * tree-vectorizer.h (vect_is_simple_cond): New prototype.
3791 (NUM_PATTERNS): Change to 6.
3792 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
3793 function.
3794 (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
3795 (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
3796 if it already has one, and don't set STMT_VINFO_VECTYPE in it
3797 if it is already set.
3798 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
3799 COND_EXPR in pattern stmts.
3800 (vect_is_simple_cond): No longer static.
3801
12cbfa26 38022001-10-06 Richard Henderson <rth@redhat.com>
3803
3804 * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
3805 * config/i386/sse.md (sseshuffint): Remove.
3806 (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
3807 (VSHUFFLE_AVX2): New mode iterator.
3808 (vshuffle<mode>): Use it.
3809 (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
3810
94d51302 3811 * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
3812 for vector_all_ones_operand.
3813 (ix86_expand_int_vcond): Distinguish between comparison mode
3814 and data mode. Allow them to differ.
3815 (ix86_expand_vshuffle): Don't force data mode to match maskmode.
3816
caa8f876 38172001-10-06 Richard Henderson <rth@redhat.com>
3818
3819 * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
3820 mask operand. Tidy the code.
3821
2453d677 38222011-10-06 Jakub Jelinek <jakub@redhat.com>
3823
32497628 3824 * tree-vect-patterns.c (vect_pattern_recog_1): Use
3825 vect_recog_func_ptr typedef for the first argument.
3826 (vect_pattern_recog): Rename vect_recog_func_ptr variable
3827 to vect_recog_func, use vect_recog_func_ptr typedef for it.
3828
2453d677 3829 PR tree-optimization/49279
3830 * tree-ssa-structalias.c (find_func_aliases): Don't handle
3831 CAST_RESTRICT.
3832 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
3833 restrict propagation.
3834 * tree-ssa.c (useless_type_conversion_p): Don't return false
3835 if TYPE_RESTRICT differs.
3836
7f61fb27 38372011-10-06 Bernd Schmidt <bernds@codesourcery.com>
3838
3839 * function.c (thread_prologue_and_epilogue_insns): Build a vector
3840 of unconverted simple return blocks rather than trying to
3841 recompute them later based on bb_flags bitmap tests.
3842
6d3d8bf0 38432011-10-06 Michael Matz <matz@suse.de>
3844
3845 * tree-flow.h (get_var_ann): Don't declare.
3846 * tree-flow-inline.h (get_var_ann): Remove.
3847 (set_is_used): Use var_ann, not get_var_ann.
3848 * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
3849 * tree-profile.c (gimple_gen_edge_profiler): Call
3850 find_referenced_var_in.
3851 (gimple_gen_interval_profiler): Ditto.
3852 (gimple_gen_pow2_profiler): Ditto.
3853 (gimple_gen_one_value_profiler): Ditto.
3854 (gimple_gen_average_profiler): Ditto.
3855 (gimple_gen_ior_profiler): Ditto.
3856 (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
3857 (gimple_gen_ic_func_profiler): Call add_referenced_var.
3858 * tree-mudflap.c (execute_mudflap_function_ops): Call
3859 add_referenced_var.
3860
51d2c51e 38612011-10-06 Jakub Jelinek <jakub@redhat.com>
3862
f6bc1dff 3863 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
3864 don't set SSA_NAME_DEF_STMT that has been already set by
3865 gimple_build_assign_with_ops.
3866 (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
3867 vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
3868 Likewise.
3869
51d2c51e 3870 * tree.h (avoid_folding_inline_builtin): New prototype.
3871 * builtins.c (avoid_folding_inline_builtin): No longer static.
3872 * gimple-fold.c (gimple_fold_builtin): Give up if
3873 avoid_folding_inline_builtin returns true.
3874
649aab9e 38752011-10-06 Richard Guenther <rguenther@suse.de>
3876
3877 * tree-vect-generic.c (vector_element): Look at previous
3878 generated results.
3879
79bf7a6f 38802011-10-06 David Edelsohn <dje.gcc@gmail.com>
3881
3882 PR target/39950
3883 * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
3884 __powerpc__, __PPC__, __unix__.
3885
8acd1d98 38862011-10-06 Michael Matz <matz@suse.de>
3887
3888 * i386/i386.opt (recip_mask, recip_mask_explicit,
3889 x_recip_mask_explicit): New variables and cl_target member.
3890 (mrecip=): New option.
3891 * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
3892 RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
3893 (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
3894 TARGET_RECIP_VEC_SQRT): New tests.
3895 * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
3896 (sqrt<mode>2): Check TARGET_RECIP_SQRT.
3897 * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
3898 (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
3899 * i386/i386.c (ix86_option_override_internal): Set recip_mask
3900 for -mrecip and -mrecip=options.
3901 (ix86_function_specific_save): Save recip_mask_explicit.
3902 (ix86_function_specific_restore): Restore recip_mask_explicit.
3903
3904 * doc/invoke.texi (ix86 Options): Document the new option.
3905
91a5e339 39062011-10-06 Bernd Schmidt <bernds@codesourcery.com>
3907
3908 PR target/49049
3909 * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
3910
f74cebe4 39112011-10-06 Ulrich Weigand <ulrich.weigand@linaro.org>
3912
3913 PR target/50305
3914 * config/arm/arm.c (arm_legitimize_reload_address): Recognize
3915 output of a previous pass through legitimize_reload_address.
3916 Do not attempt to optimize addresses if the base register is
3917 equivalent to a constant.
3918
84e145d7 39192011-10-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3920
3921 * function.c (thread_prologue_and_epilogue_insns): Mark
3922 last_bb_active as possibly unused. It is unused for targets which
3923 do neither have "return" nor "simple_return" expanders.
3924
f12d1298 39252011-10-06 Richard Guenther <rguenther@suse.de>
3926
3927 * fold-const.c (fold_ternary_loc): Also fold non-constant
3928 vector CONSTRUCTORs. Make more efficient.
3929 * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
3930 (cprop_into_stmt): Don't propagate into virtual operands.
3931 (optimize_stmt): Really dump original statement.
3932
f8f1869c 39332011-10-06 Nick Clifton <nickc@redhat.com>
3934
3935 * config/rx/rx.md (smin3): Revert previous delta.
3936
a3bb56f0 39372011-10-06 Richard Guenther <rguenther@suse.de>
3938
3939 PR tree-optimization/38884
3940 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
3941 reads from aggregate SSA names.
3942
929a4812 39432011-10-05 Jakub Jelinek <jakub@redhat.com>
3944
3945 * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
3946 argument, truncate it at the beginning instead of allocating there
3947 and freeing at the end.
3948 (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
3949 pass its address to vect_pattern_recog_1.
3950
80c0ee75 39512011-10-05 David S. Miller <davem@davemloft.net>
3952
3953 * config/sparc/sparc.opt (POPC): New option.
3954 * doc/invoke.texi: Document it.
3955 * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
3956 default on Niagara-2 and later.
3957 * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
3958 * config/sparc/sparc.md (SIDI): New mode iterator.
3959 (ffsdi2): Delete commented out pattern and comments.
3960 (popcount<mode>2, clz<mode>2): New expanders.
3961 (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
3962 *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
3963
a11dda8e 39642011-10-06 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
13ed6164 3965
3966 PR middle-end/50607
a11dda8e 3967 * c-tree.h (c_expr_t): New typedef for struct c_expr.
3968 (C_EXPR_APPEND): New macro.
13ed6164 3969 * c-parser.c (c_parser_get_builtin_args): Preserve
3970 original_tree_code of c_expr structure.
a11dda8e 3971 (c_parser_postfix_expression): Adjust to the new function.
3972
5effe287 39732011-10-05 Bernd Schmidt <bernds@codesourcery.com>
3974
3975 * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
3976 if profiling after the prologue.
3977
725879e5 39782011-10-05 Jakub Jelinek <jakub@redhat.com>
3979
3980 PR tree-optimization/50613
3981 * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
3982 operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
3983 and if it is neither that not SSA_NAME, give up.
3984
3c425d7c 39852011-10-05 Richard Henderson <rth@redhat.com>
3986
3987 * tree-vect-generic.c (vector_element): Never fail. Use
3988 build_zero_cst. Tidy up type references.
3989 (lower_vec_shuffle): Never fail. Mask shuffle indicies. Reduce
3990 code duplication. Do update_stmt here ...
3991 (expand_vector_operations_1): ... not here.
3992
6903bc5b 3993 * config/i386/i386.c (ix86_expand_vshuffle): Never fail. Handle
3994 TARGET_XOP. Fix pshufb constant vector creation. Reduce code
3995 duplication. Handle V2DI without SSE4.1.
3996 * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
3997 * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
3998
970a56b0 39992011-10-05 Uros Bizjak <ubizjak@gmail.com>
4000
4001 * config/i386/i386.c (distance_non_agu_define): Simplify calculation
4002 of "found". Simplify return value calculation.
4003 (distance_agu_use): Ditto.
4004
7022dadd 40052011-10-05 Bernd Schmidt <bernds@codesourcery.com>
4006
4007 PR bootstrap/50621
4008 * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
4009 if the function was not shrink-wrapped.
4010 (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
4011 to an insn.
4012 * function.c (thread_prologue_and_epilogue_insns): Make sure the
4013 shrink_wrapped flag is set even if there is no dump file.
4014
6e507301 40152011-10-05 DJ Delorie <dj@redhat.com>
4016 Nick Clifton <nickc@redhat.com>
4017
4018 * config/rx/rx.opt (mpid): Define.
4019 * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
4020 (MULTILIB_DIRNAMES): Add pid.
4021 * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
4022 (rx_num_interrupt_regs): New variable.
4023 (rx_gp_base_regnum): New function. Returns the number of the
4024 small data area register.
4025 (rx_pid_base_regnum): New function. Returns the number of the pid
4026 base register.
970a56b0 4027 (rx_decl_for_addr): New function. Returns the symbolic part of a MEM.
6e507301 4028 (rx_pid_data_operand): New function. Returns whether an object is
4029 in the position independent data area.
4030 (rx_legitimize_address): New function. Puts undecided PID
4031 objects in the PID data area.
4032 (rx_is_legitimate_address): Add support for PID operands.
4033 (rx_print_operand_address): Likewise.
4034 (rx_print_operand): Likewise.
4035 (rx_maybe_pidify_operand): New function. Determine if an operand
4036 is suitable for PID addressing.
4037 (rx_gen_move_template): Add PID support.
4038 (rx_conditional_register_usage): Likewise.
4039 (rx_option_override): Initialise rx_num_interrupt_regs.
4040 (rx_is_legitimate_constant): Add support for PID constants.
4041 (TARGET_LEGITIMIZE_ADDRESS): Define.
4042 * config/rx/constraints.md (Rpid): Define.
4043 (Rpda): Define.
4044 * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
4045 (tablejump): Add PID support.
4046 (mov<>): Likewise.
4047 (mov<>_internal): Likewise.
4048 (addsi3): Convert to an expander. Add PID support.
4049 (pid_addr): New pattern.
4050 * config/rx/rx.h (CPP_SPEC): Define.
4051 (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
4052 (CASE_VECTOR_PC_RELATIVE): Define.
4053 (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
4054 * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
970a56b0 4055 * doc/invoke.texi (RX Options): Document -mpid command line option.
6e507301 4056
87b53397 40572011-10-05 Richard Guenther <rguenther@suse.de>
4058
4059 PR tree-optimization/38885
4060 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
4061 from constants.
4062
1f021f97 40632011-10-05 Bernd Schmidt <bernds@codesourcery.com>
4064
4065 * doc/invoke.texi (-fshrink-wrap): Document.
4066 * opts.c (default_options_table): Add it.
4067 * common.opt (fshrink-wrap): Add.
4068 * function.c (emit_return_into_block): Remove useless declaration.
4069 (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
4070 requires_stack_frame_p, gen_return_pattern): New static functions.
4071 (emit_return_into_block): New arg simple_p. All callers changed.
4072 Use gen_return_pattern.
4073 (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
4074 * config/i386/i386.md (return): Expand into a simple_return.
4075 (simple_return): New expander):
4076 (simple_return_internal, simple_return_internal_long,
4077 simple_return_pop_internal_long, simple_return_indirect_internal):
4078 Renamed from return_internal, return_internal_long,
4079 return_pop_internal_long and return_indirect_internal; changed to use
4080 simple_return.
4081 * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
4082 simple returns.
4083 (ix86_pad_returns): Likewise.
4084 * function.h (struct rtl_data): Add member shrink_wrapped.
4085 * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
4086 are not jumps or sibcalls can't be compared.
4087
3eebeec6 40882011-10-05 Richard Guenther <rguenther@suse.de>
4089
4090 * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
4091 vector type.
4092 (simplify_unary_expression): Handle BIT_FIELD_REFs.
4093 (try_to_simplify): Handle BIT_FIELD_REFs.
4094
915f904b 40952011-10-05 Georg-Johann Lay <avr@gjlay.de>
4096
4097 * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
4098 * config/avr/avr.c (avr_out_addto_sp): New function.
4099 (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
4100 * config/avr/avr.md (adjust_len): Add "addto_sp".
4101 (*movhi_sp): Remove insn.
4102 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
4103
ce993cc2 41042011-10-05 Richard Guenther <rguenther@suse.de>
4105
970a56b0 4106 * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
4107 with an embedded expression valueize and fold that as well.
ce993cc2 4108 * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
4109 results from gimple_fold_stmt_to_constant_1.
4110
b3988bd8 41112011-10-05 Nick Clifton <nickc@redhat.com>
4112
4113 * config/rx/rx.md (tablejump): Add missing label.
4114 (adddi3_internal): Mark operand 0 as early-clobbered.
4115 (smaxsi3): Revert previous delta.
4116 (adc_internal): Fix whitespace in generated asm.
4117 (adc_flags): Likewise.
4118
3a9ccbe4 41192011-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4120
4121 * expmed.c (expand_mult_highpart_optab): Replace optab_handler
4122 with the new widening_optab_handler.
4123
415b0903 41242011-10-05 Richard Guenther <rguenther@suse.de>
4125
4126 PR tree-optimization/50609
4127 * gimple-fold.c (fold_array_ctor_reference): Also handle
4128 vector typed constructors.
4129 (fold_ctor_reference): Dispatch to fold_array_ctor_reference
4130 for vector typed constructors.
4131
b78d149b 41322011-10-05 Uros Bizjak <ubizjak@gmail.com>
4133
4134 * config/i386/i386.c (ix86_emit_binop): New static function.
4135 (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
4136 instructions.
4137 (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
4138
47cc4525 41392011-10-04 David S. Miller <davem@davemloft.net>
4140
4141 * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
4142 UNSPEC_XMUL): New unspecs.
4143 (muldi3_v8plus): Use output_v8plus_mult.
4144 (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
4145 New VIS 3.0 combiner patterns.
4146 (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
4147 fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
4148 umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
4149 xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
4150 builtins patterns.
63b3dd1b 4151 * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
47cc4525 4152 (output_v8plus_mult): New function.
4153 * config/sparc/sparc-protos.h: Declare it.
4154 * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
4155 __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
4156 __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
4157 * doc/extend.texi: Document new builtins.
4158
7d09af71 41592011-10-04 Richard Henderson <rth@redhat.com>
4160
4161 * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
4162 Avoid save_expr unless two_arguments.
4163
8d8f03b6 41642011-10-04 Ozkan Sezer <sezeroz@gmail.com>
4165
63b3dd1b 4166 * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
8d8f03b6 4167 * config/i386/mingw32.h (CPP_SPEC): Likewise.
4168
98f1ae7d 41692011-10-04 David S. Miller <davem@davemloft.net>
4170
4171 * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
4172 under Linux.
4173
5a41d783 41742011-10-04 Jakub Jelinek <jakub@redhat.com>
4175
bd6dcc04 4176 PR tree-optimization/50604
4177 * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
4178 fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
63b3dd1b 4179 last argument to memcpy has size_type_node type instead of ssizetype.
bd6dcc04 4180 * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
4181 instead of TREE_TYPE (len) as type for newlen.
4182
e1c1f86a 4183 PR tree-optimization/50522
4184 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
4185 TYPE_RESTRICT.
4186 (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
4187 unconditionally.
4188
5a41d783 4189 * fold-const.c (fold_unary_loc): Don't optimize
4190 POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
4191 casting the inner pointer if it isn't TYPE_RESTRICT.
4192 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
4193 casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
4194
da8e8783 41952011-10-04 Joseph Myers <joseph@codesourcery.com>
4196
63b3dd1b 4197 * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
da8e8783 4198
f1007c72 41992011-10-04 Jan Hubicka <jh@suse.cz>
4200
4201 * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
4202 * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
4203 * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
4204 * lto-cgraph.c (order_base): New static var.
4205 (lto_output_node): Stream in order.
4206 (lto_output_varpool_node): Stream out order.
4207 (input_node): Stream in order.
4208 (input_varpool_node): Stream out order.
4209 (input_cgraph_1): Initialize order base; update call of
4210 lto_input_toplevel_asms.
4211
68a79dfc 42122011-10-04 Georg-Johann Lay <avr@gjlay.de>
4213
4214 PR target/50566
4215 * config/avr/avr-protos.h (avr_legitimize_reload_address): New
4216 prototype.
4217 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
4218 from here...
4219 * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
4220 function. Log if avr_log.legitimize_reload_address.
4221
0fd274e3 42222011-10-04 Eric Botcazou <ebotcazou@adacore.com>
4223
4224 * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
4225
54492675 42262011-10-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4227
4228 * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
4229 variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd.
4230
5b160e35 42312011-10-03 David S. Miller <davem@davemloft.net>
4232
4233 * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
4234 GSR_REG an input operand to UNSPEC instead of a parallel USE.
4235 (faligndata<V64I:mode>_vis): Likewise and use DI mode.
4236 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
4237 Reference GSR_REG in DI mode, simplify convoluted expressions by using
4238 zero_extract.
4239 (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
4240
d0ac3b8a 42412011-10-03 Maxim Kuvyrkov <maxim@codesourcery.com>
4242
4243 * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
4244
664801d4 42452011-10-03 Jakub Jelinek <jakub@redhat.com>
4246 Ian Lance Taylor <iant@google.com>
4247
4248 * godump.c (go_output_typedef): Support printing enum values that
4249 don't fit in a signed HOST_WIDE_INT.
4250
13f42429 42512011-10-03 Anatoly Sokolov <aesok@post.ru>
4252
4253 * config/cris/cris.c (cris_output_addr_const_extra): Make static.
4254 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4255 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4256 * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
4257
27f5e69f 42582011-10-03 Anatoly Sokolov <aesok@post.ru>
4259
4260 * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
13f42429 4261 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27f5e69f 4262 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4263 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
4264
098bbbe5 42652011-10-03 Steve Ellcey <sje@cup.hp.com>
4266
4267 PR target/49967
4268 * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
4269 (gcc_cv_ld_static_option): Ditto.
4270 (gcc_cv_ld_dynamic_option): Ditto.
4271 * configure: Regenerate.
4272
6e122c86 42732011-10-03 David S. Miller <davem@davemloft.net>
4274
4275 * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
4276 and 'si' patterns which describe the GSR changes explicitly in the
4277 RTL using zero_extract.
4278 (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
4279
63b3dd1b 4280 * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
4281 GSR_REG in a USE, since it's now a true arg to the UNSPEC.
6b9a8103 4282
dba2988a 42832011-10-03 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
6cf89e04 4284
4285 * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
4286 if given expression can be expanded by the target.
4287 (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
4288 using target vector instructions.
4289 * optabs.h: New optab vshuffle.
4290 (expand_vec_shuffle_expr_p): New prototype.
4291 (expand_vec_shuffle_expr): New prototype.
4292 (vshuffle_optab): New optab.
4293 * genopinit.c: Adjust to support vecshuffle.
4294 * c-tree.h (c_build_vec_shuffle_expr): New prototype.
4295 * expr.c (expand_expr_real_2): Adjust.
4296 * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
4297 recognizing the cases of two and three arguments.
4298 (convert_arguments) (build_binary_op)
4299 (scalar_to_vector) (build_array_ref): Spurious whitespace.
4300 * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
4301 * tree.def: New tree code VEC_SHUFFLE_EXPR.
4302 * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
4303 * tree-vect-generic.c (vector_element): New function. Returns an
4304 element of the vector at the given position.
4305 (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
4306 by the backend or expand an expression piecewise.
4307 (expand_vector_operations_1): Adjusted.
4308 (gate_expand_vector_operations_noop): New gate function.
4309 * Makefile.in (tree-vect-generic.o): New include.
4310 * gimple.c (get_gimple_rhs_num_ops): Adjust.
4311 * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
4312 * passes.c: Move veclower down.
4313 * tree-pretty-print.c (dump_generic_node): Recognize
4314 VEC_SHUFFLE_EXPR as valid expression.
4315 * c-parser.c (c_parser_get_builtin_args): Helper function for the
4316 builtins with variable number of arguments.
4317 (c_parser_postfix_expression): Use a new helper function for
4318 RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
4319 * tree-ssa-operands: Adjust.
4320 * c-family/c-common.c: New __builtin_shuffle keyword.
4321 * c-family/c-common.h: New __builtin_shuffle keyword.
4322 * gcc/doc/extend.texi: Adjust.
4323
4324 * gcc/config/i386/sse.md: (sseshuffint) New mode_attr. Correspondence
4325 between the vector and the type of the mask when shuffling.
4326 (vecshuffle<mode>): New expansion.
4327 * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
4328 * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
4329 (ix86_vectorize_builtin_vec_perm_ok): Adjust.
4330
9adacac7 43312011-10-03 Jakub Jelinek <jakub@redhat.com>
4332
4333 PR tree-optimization/50587
4334 * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
4335 arg0 is not a SSA_NAME.
4336
5aebd70d 43372011-10-03 Richard Sandiford <rdsandiford@googlemail.com>
4338
4339 * ipa-inline-analysis.c (MAX_TIME): Update comment.
4340
22eddec2 43412011-10-02 Richard Henderson <rth@redhat.com>
4342 David S. Miller <davem@davemloft.net>
4343
4344 * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
4345 conditional insn type setting, we always emit a shift.
4346 (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
4347 (*lshrsi3_extend): Rename to *lshrsi3_extend1.
c1246bd6 4348 * config/sparc/predicates.md (const_one_operand): Delete.
22eddec2 4349
6097bc23 43502011-10-02 Gerald Pfeifer <gerald@pfeifer.com>
4351
4352 * invoke.texi (SPARC Options): Refer to GNU/Linux.
4353
53e60c1e 43542011-10-02 Richard Sandiford <rdsandiford@googlemail.com>
4355
4356 * config/mips/mips.c (mips_frame_barrier): New function.
4357 (mips_expand_prologue): Call it after allocating stack space.
4358 (mips_deallocate_stack): New function.
4359 (mips_expand_epilogue): Call mips_frame_barrier and
4360 mips_deallocate_stack.
4361
baf6c9e1 43622011-10-02 Richard Sandiford <rdsandiford@googlemail.com>
4363
4364 PR target/49696
4365 * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
4366 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
4367 (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
4368
941125aa 43692011-10-02 Jan Hubicka <jh@suse.cz>
4370
9ed50dd9 4371 * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
4372
941125aa 4373 * cgraphunit.c (ipa_passes): Remove unrechable nodes.
4374 * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
4375 * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
4376 functions are reachable when address is taken.
4377 * tree-sra.c (modify_function): Free dominance info.
4378
3b9dd281 43792011-10-02 Jan Hubicka <jh@suse.cz>
4380
d10a25bb 4381 * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
4382
3b9dd281 4383 * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
4384 (reset_inline_summary): New function.
4385 (compute_inline_parameters, inline_node_removal_hook,
4386 inline_edge_removal_hook): Use it.
4387 (inline_free_summary): Reset holders correctly.
4388 (inline_generate_summary): Free summary before computing it.
4389
01ea2dea 43902011-10-02 Paolo Carlini <paolo.carlini@oracle.com>
4391
4392 PR preprocessor/36819
4393 * incpath.c (merge_include_chains): Call free_path on
4394 heads[QUOTE] and tails[QUOTE].
4395
da722561 43962011-10-02 Jan Hubicka <jh@suse.cz>
4397
4398 PR lto/47247
4399 * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
4400 when resolution is already availbale from plugin.
4401 (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
63b3dd1b 4402 * cgraph.c (ld_plugin_symbol_resolution): Add
4403 prevailing_def_ironly_exp.
da722561 4404 * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
4405 * ipa.c (varpool_externally_visible_p): IRONLY variables are never
4406 externally visible.
4407 * varasm.c (resolution_to_local_definition_p): Add
4408 LDPR_PREVAILING_DEF_IRONLY_EXP.
4409 (resolution_local_p): Likewise.
4410
33e7b55c 44112011-10-01 David S. Miller <davem@davemloft.net>
4412
4413 * config/sparc/sparc.opt (VIS3): New option.
4414 * doc/invoke.texi: Document it.
4415 * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
4416 not capable of such instructions.
4417 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
4418 to 0x300 when TARGET_VIS3.
4419 * config/sparc/sparc-modes.def: Create 16-byte vector modes.
4420 * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
4421 UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
4422 (V64N8, VASS): New mode iterators.
4423 (vis3_shift, vis3_addsub_ss): New code iterators.
4424 (vbits, vconstr): New mode attributes.
4425 (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
4426 (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
4427 fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
63b3dd1b 4428 fmean16_vis, fpadd64_vis, fpsub64_vis,
4429 <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
4430 VIS 3.0 instruction patterns.
33e7b55c 4431 * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
4432 default when targetting capable cpus. TARGET_VIS3 implies
63b3dd1b 4433 TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
33e7b55c 4434 (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
4435 (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
4436 is ignored.
4437 * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
4438 __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
4439 __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
4440 __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
4441 __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
4442 __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
4443 __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
4444 __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
4445 * doc/extend.texi: Document new VIS 3.0 builtins.
4446
125fdf16 44472011-10-01 Eric Botcazou <ebotcazou@adacore.com>
4448
4449 * ira-color.c (assign_hard_reg): Fix typo.
4450
142d1be6 44512011-09-30 H.J. Lu <hongjiu.lu@intel.com>
4452
4453 * doc/extend.texi: Add missing ','.
4454
758df283 44552011-09-30 Bernd Schmidt <bernds@codesourcery.com>
4456
4457 * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
4458 Enable -fmodulo-sched at -O2 and above.
4459 * config/c6x/c6x.md (doloop_end): New expander.
4460 (mvilc, sploop, spkernel, loop_end): New patterns.
4461 (loop_end with memory destination splitter): New.
4462 * config/c6x/c6x.c: Include "hw-doloop.h".
4463 (enum unitreqs): New.
4464 (unit_req_table): New typedef.
4465 (unit_reqs): New static variable.
4466 (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
4467 res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
4468 hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
4469 hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
4470 (struct c6x_sched_context): New member last_scheduled_iter0.
4471 (init_sched_state): Initialize it.
4472 (c6x_variable_issue): Update it.
4473 (sploop_max_uid_iter0): New static variable.
4474 (c6x_sched_reorder_1): Be careful about issuing sploop.
4475 (c6x_reorg): Call c6x_hwlooops before the final schedule.
4476
8c3bcbe3 44772011-09-30 Georg-Johann Lay <avr@gjlay.de>
4478
4479 PR target/50566
4480 * config/avr/avr-protos.h (avr_log_t): New field address_cost.
4481 * config/avr/avr.c (avr_address_cost): Use it.
4482 * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
4483 (avr_log_vadump): Unknown %-codes finish printing.
4484
946e9eb4 44852011-09-30 Jakub Jelinek <jakub@redhat.com>
4486
a02dcaf7 4487 PR inline-asm/50571
4488 * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
4489 input constraints allow mem and not reg, pass true instead of
4490 false as second argument to maybe_fold_reference.
4491
946e9eb4 4492 PR tree-optimization/46309
4493 * fold-const.c (make_range, merge_ranges): Remove prototypes.
4494 (make_range_step): New function.
4495 (make_range): Use it.
4496 * tree.h (make_range_step): New prototypes.
4497 * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
4498 * tree-ssa-reassoc.c: Include diagnostic-core.h.
4499 (struct range_entry): New type.
4500 (init_range_entry, range_entry_cmp, update_range_test,
4501 optimize_range_tests): New functions.
4502 (reassociate_bb): Call optimize_range_tests.
4503
77efe819 45042011-09-30 Jakub Jelinek <jakub@redhat.com>
4505 Richard Guenther <rguenther@suse.de>
4506
4507 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
4508 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
4509 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix
4510 handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
4511 (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
4512 BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
4513
65d1b157 45142011-09-30 Jan Beulich <jbeulich@suse.com>
4515
4516 * lto-cgraph.c (output_cgraph): Remove processing of
4517 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
4518 (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
4519 lto_input_toplevel_asms() instead.
4520 * lto-section-in.c (lto_section_name): Add "asm" entry.
4521 * lto-streamer-in.c (lto_input_toplevel_asms): New.
4522 * lto-streamer-out.c (lto_output_toplevel_asms): New.
4523 * lto-streamer.h (LTO_minor_version): Bump.
4524 (enum lto_section_type): Add LTO_section_asm.
4525 (struct lto_asm_header): New.
4526 (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
4527 * tree-streamer.h (streamer_write_string_cst): Declare.
4528 * tree-streamer-out.c (write_string_cst): Rename to
4529 streamer_write_string_cst and make global. Handle incoming string
4530 being NULL.
4531 (streamer_write_tree_header): Adjust call to renamed function.
4532
c0457559 45332011-09-30 Bernd Schmidt <bernds@codesourcery.com>
4534
4535 * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
4536 modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
4537 modulo_last_stage): New static variables.
4538 (set_modulo_params, discard_delay_pairs_above): New functions.
4539 (struct delay_pair): New member stages.
4540 (htab_i2_traverse, htab_i1_traverse): New static functions.
4541 (record_delay_slot_pair): New arg stages. All callers changed.
4542 Record it.
4543 (pair_delay): Take stages into account.
4544 (add_delay_dependencies): Don't do so for stage pairs.
4545 (struct sched_block_state): New member modulo_epilogue.
4546 (save_backtrack_point): Don't set SHADOW_P for stage pairs.
4547 (unschedule_insns_until): Decrease modulo_insns_scheduled.
4548 Set HARD_DEP without using or.
4549 (resolve_dependencies): New static function.
4550 (prune_ready_list): New arg modulo_epilogue_p. All callers changed.
4551 If it is true, allow only insns with INSN_EXACT_TICK set.
4552 (schedule_block): Return bool, always true for normal scheduling,
4553 true or false depending on modulo scheduling success otherwise.
4554 Add bookkeeping for modulo scheduling, and call resolve_dependencies
4555 on everything left over after a modulo schedule.
4556 (haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
4557 * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
4558 declarations.
4559 (set_modulo_params, discard_delay_pairs_above): Declare.
4560 * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
4561 * doc/invoke.texi (--param): Document it.
4562
b0f8644a 4563 * sched-ebb.c (schedule_ebb): No longer static. Remove declaration.
4564 New arg modulo_scheduling. All callers changed. Move note handling
4565 code here from schedule_ebbs.
4566 (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
4567 out of schedule_ebbs.
4568 (schedule_ebbs): Call them. Remove note handling code moved to
4569 schedule_ebb.
4570 * sched-int.h (schedule_ebb, schedule_ebbs_init,
4571 schedule_ebbs_finish): Declare.
4572
96baa0d7 45732011-09-30 Richard Guenther <rguenther@suse.de>
4574
4575 PR middle-end/50574
4576 * tree-cfg.c (verify_gimple_comparison): Compare component
4577 mode sizes for vector comparisons.
4578
2917ecd3 45792011-09-30 Revital Eres <revital.eres@linaro.org>
4580
4581 * ddg.c (autoinc_var_is_used_p): New function.
4582 (create_ddg_dep_from_intra_loop_link,
4583 add_cross_iteration_register_deps): Call it.
4584 * ddg.h (autoinc_var_is_used_p): Declare.
4585 * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
4586 (sms_schedule): Handle instructions with REG_INC.
4587
d1cae43e 45882011-09-30 Revital Eres <revital.eres@linaro.org>
4589
4590 * modulo-sched.c (generate_reg_moves): Skip instructions that
4591 do not set a register and verify no regmoves are created for
4592 !single_set instructions.
4593
ee567e6b 45942011-09-30 Bernd Schmidt <bernds@codesourcery.com>
4595
4596 * hw-doloop.c (scan_loop): Compute register usage only for non-debug
4597 insns.
4598
6d97728e 45992011-09-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4600
63b3dd1b 4601 PR target/50099
6d97728e 4602 * config/arm/iterators.md (qhs_zextenddi_cstr): New.
4603 (qhs_zextenddi_op): New.
4604 * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
4605 * config/arm/predicates.md ("arm_extendqisi_mem_op"):
4606 Distinguish between ARM and Thumb2 states.
4607
95c09f2c 46082011-09-30 David S. Miller <davem@davemloft.net>
4609
4610 * config/sparc/sparc.opt (VIS2): New option.
4611 * doc/invoke.texi: Document it.
4612 * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
4613 UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
4614 UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
4615 (define_attr type): New insn type 'edgen'.
4616 (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
4617 edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
4618 edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
4619 patterns.
4620 * niagara.md: Handle edgen.
4621 * niagara2.md: Likewise.
4622 * ultra1_2.md: Likewise.
4623 * ultra3.md: Likewise.
4624 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
4625 to 0x200 when TARGET_VIS2.
4626 * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
4627 default when targetting capable cpus. TARGET_VIS2 implies
4628 TARGET_VIS, clear and it when TARGET_FPU is disabled.
4629 (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
4630 (sparc_expand_builtin): Fix predicate indexing when builtin returns
4631 void.
4632 (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
4633 * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
4634 __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
4635 __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
4636 __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
4637 * doc/extend.texi: Document new VIS 2.0 builtins.
4638
cf3f4012 46392011-09-29 Nick Clifton <nickc@redhat.com>
4640 Bernd Schmidt <bernds@codesourcery.com>
4641
63b3dd1b 4642 * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
cf3f4012 4643 * config/frv/frvend.c: Likewise.
4644 * config/frv/frv.c (frv_function_prologue): Move misplaced
4645 CALL_ARG_LOCATION notes back to their proper locations.
4646
ae86bb47 46472011-09-29 Georg-Johann Lay <avr@gjlay.de>
4648
4649 PR target/50566
4650 * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
4651 * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
4652 from avr_rtx_costs.
4653 (avr_legitimate_address_p): Use avr_edump to print log information
4654 filtered by avr_log.
4655 (extra_constraint_Q): Ditto.
4656 (avr_legitimize_address): Ditto.
4657 (avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1.
4658 (final_prescan_insn): Use avr_log.rtx_costs as filter.
4659
224aeead 46602011-09-29 Richard Sandiford <richard.sandiford@linaro.org>
4661
4662 * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
4663 * config/arm/arm.h (MODES_TIEABLE_P): Use it.
4664 * config/arm/arm.c (arm_modes_tieable_p): New function. Allow
4665 NEON vector and structure modes to be tied.
4666
c9722991 46672011-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4668
4669 * graphite-scop-detection.c (make_close_phi_nodes_unique): New
4670 forward declaration.
4671 (remove_duplicate_close_phi): Detect and repair creation of
4672 duplicate close-phis for a containing loop.
6919b5e5 4673
0f41df2b 46742011-09-27 Andi Kleen <ak@linux.intel.com>
4675
63b3dd1b 4676 * gcc.c (get_local_tick). Rename to get_random_number. Read from
4677 /dev/urandom. Add getpid call.
0f41df2b 4678 (compare_debug_dump_opt_spec_function): Drop getpid call.
4679
ad766573 46802011-09-26 Andi Kleen <ak@linux.intel.com>
4681
63b3dd1b 4682 * toplev.c (init_local_tick): Try reading random seed
4683 from /dev/urandom.
ad766573 4684
badc6cfa 46852011-09-26 Andi Kleen <ak@linux.intel.com>
4686
4687 * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
4688 * lto-streamer.c (lto_get_section_name): Remove crc32_string.
4689 Handle numerical random seed.
63b3dd1b 4690 * lto-streamer.h (lto_file_decl_data): Change id to
4691 unsigned HOST_WIDE_INT.
badc6cfa 4692 * toplev.c (random_seed): Add.
4693 (init_random_seed): Change for numerical random seed.
4694 (get_random_seed): Return as HOST_WIDE_INT.
4695 (set_random_seed): Crc32 existing string.
4696 * toplev.h (get_random_seed): Change to numercal return.
63b3dd1b 4697 * tree.c (get_file_function_name): Remove CRC. Handle
4698 numerical random seed.
badc6cfa 4699
47fe598e 47002011-09-29 Georg-Johann Lay <avr@gjlay.de>
4701
4702 PR target/50566
4703 * config.gcc (extra_objs): Add avr-log.o for $target in:
4704 avr-*-rtems*, avr-*-*.
4705 * config/avr/t-avr (avr-log.o): New rule to compile...
4706 * config/avr/avr-log.c: ...this new file.
4707 * config/avr/avr.opt (mlog=): New option.
4708 * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
4709 (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
4710 (avr_log_set_avr_log): New prototype.
4711 (avr_log_t): New typedef.
4712 (avr_log): New declaration.
4713 * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
4714
d7ad16c2 47152011-09-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
4716
4717 * expr.c (do_store_flag): Expand vector comparison by
4718 building an appropriate VEC_COND_EXPR.
4719 * c-typeck.c (build_binary_op): Typecheck vector comparisons.
4720 (c_objc_common_truthvalue_conversion): Adjust.
4721 * tree-vect-generic.c (do_compare): Helper function.
4722 (expand_vector_comparison): Check if hardware supports
63b3dd1b 4723 vector comparison of the given type or expand vector piecewise.
d7ad16c2 4724 (expand_vector_operation): Treat comparison as binary
4725 operation of vector type.
4726 (expand_vector_operations_1): Adjust.
4727
0a4bf03b 47282011-09-29 Richard Guenther <rguenther@suse.de>
4729
4730 * tree.c (build_opaque_vector_type): Make opaque vectors
4731 variant types of the corresponding non-opaque type. Make
4732 sure to share opaque vector types properly.
4733
386d043d 47342011-09-29 David S. Miller <davem@davemloft.net>
4735
4736 * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
4737 UNSPEC_ARRAY32): New unspec.
4738 (define_attr type): New type 'array'.
4739 (array{8,16,32}<P:mode>_vis): New patterns.
4740 * config/sparc/ultra1_2.md: Add reservations for 'array'.
4741 * config/sparc/ultra3.md: Likewise.
4742 * config/sparc/niagara.md: Likewise.
4743 * config/sparc/niagara2.md: Likewise.
4744 * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
4745 array builtins.
4746 * config/sparc/visintrin.h (__vis_array8, __vis_array16,
4747 __vis_array32): New.
4748 * doc/extend.texi: Document new VIS builtins.
4749
69dcaf46 4750 * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
4751 (VIS pixel-compare insn): Just use <gcond:name>.
4752
6919b5e5 4753 * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
4754 code iterator used, so just use <code>. There are two mode iterators
4755 so explicitly use <GCM:gcm_name>.
4756
df2d51d1 47572011-09-29 Iain Sandoe <iains@gcc.gnu.org>
4758
4759 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
4760 Darwin >= 9.
4761
1e5d768e 47622011-09-28 David S. Miller <davem@davemloft.net>
4763
4764 * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
4765 UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
4766 (UNSPEC_FCMP): New unspec.
4767 (gcond): New code iterator.
4768 (gcond_name): New code attr.
4769 (GCM): New mode iterator.
4770 (gcm_name): New mode attr.
4771 (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
4772
58a8cd7a 47732011-09-28 Oleg Endo <oleg.endo@t-online.de>
4774
4775 PR target/49486
4776 * config/sh/sh.md (negdi2): Move expansion into split to
4777 allow more combination options. Add T_REG clobber.
4778 (abssi2): New expander.
4779 (*negdi2, *abssi2, *negabssi2): New insns.
4780 (cneg): Change from insn to insn_and_split. Rename to
4781 negsi_cond. Add alternative for non-SH4.
4782
be7a395b 47832011-09-28 Richard Sandiford <richard.sandiford@linaro.org>
4784
4785 * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
4786 (neon_move_hi_quad_<mode>): Likewise.
4787 (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
4788
7beada86 47892011-09-28 Nick Clifton <nickc@redhat.com>
4790
4791 * config/rx/predicates.md (rx_minmax_operand): New predicate.
4792 Accepts immediates and a restricted subset of MEMs.
4793 * config/rx/rx.md (int_modes): New iterator.
4794 (smaxsi3, sminsi3): Delete and replace with...
4795 (smax<int_mode>3, smin<int_mode>3): New patterns.
4796 (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
4797
b754bc68 47982011-09-28 Richard Guenther <rguenther@suse.de>
4799
4800 PR middle-end/50460
4801 * fold-const.c (try_move_mult_to_index): Handle &a.array the
4802 same as &a.array[0].
4803
c23e11b5 48042011-09-28 Kai Tietz <ktietz@redhat.com>
4805
4806 * configure.ac: Add test for new section attribute
4807 specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
4808 * config.in: Regenerated.
4809 * configure: Regenerated.
4810 * config/i386/winnt.c (i386_pe_asm_named_section): Emit
4811 new section flag "e" for excluded sections, if supported.
a2aea2c1 4812 Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
c23e11b5 4813
690f10be 48142011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
4815
4816 * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
4817 throughout file.
4818
a7299290 48192011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
4820
4821 * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
4822 throughout file.
4823
bd931e3a 48242011-09-27 Sriraman Tallam <tmsriram@google.com>
4825
4826 * output.h (SECTION_EXCLUDE): New macro.
a2aea2c1 4827 * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
bd931e3a 4828
d2efb29d 48292011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
4830
4831 * fwprop.c (forward_propagate_and_simplify): After checking
4832 reg/subreg combinations, check whether the modes are the same.
4833
8918a366 48342011-09-27 Bernd Schmidt <bernds@codesourcery.com>
4835 Richard Sandiford <rdsandiford@googlemail.com>
4836
4837 * config/mips/mips.c (mips_add_cfa_restore): New function.
4838 (mips16e_save_restore_reg): Use it.
4839 (mips_restore_reg): Likewise. Split double FPRs for
4840 REG_CFA_RESTORE notes.
4841
cdb0a2c3 48422011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
4843
4844 PR middle-end/50386
4845 PR middle-end/50326
4846 * tree-sra.c (build_ref_for_model): Use the type of the field as
4847 the type of the COMPONENT_REF.
4848
0217cfff 48492011-09-27 Jeff Law <law@redhat.com>
4850
4851 * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale
a2aea2c1 4852 non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
0217cfff 4853 (find_if_case_1): Use the probability of the THEN clause when
4854 determining if speculation is profitable.
4855 (find_if_case_2): Similarly for the ELSE clause.
4856
9efe50a4 48572011-09-27 Jakub Jelinek <jakub@redhat.com>
4858
4859 * common.opt: Add -foptimize-strlen option.
4860 * Makefile.in (OBJS): Add tree-ssa-strlen.o.
4861 (tree-sssa-strlen.o): Add dependencies.
4862 * opts.c (default_options_table): Enable -foptimize-strlen
4863 by default at -O2 if not -Os.
4864 * passes.c (init_optimization_passes): Add pass_strlen
4865 after pass_object_sizes.
4866 * timevar.def (TV_TREE_STRLEN): New timevar.
4867 * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
4868 * tree-pass.h (pass_strlen): Declare.
4869 * tree-ssa-strlen.c: New file.
4870 * c-decl.c (merge_decls): If compatible stpcpy prototype
4871 is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
4872
51385f30 48732011-09-27 Tom de Vries <tom@codesourcery.com>
4874
4875 PR middle-end/43864
4876 * tree-ssa-tail-merge.c: New file.
4877 (struct same_succ_def): Define.
4878 (same_succ, const_same_succ): New typedef.
4879 (struct bb_cluster_def): Define.
4880 (bb_cluster, const_bb_cluster): New typedef.
4881 (struct aux_bb_info): Define.
4882 (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
4883 (gvn_uses_equal): New function.
4884 (same_succ_print, same_succ_print_traverse, update_dep_bb)
4885 (stmt_update_dep_bb, local_def, same_succ_hash)
4886 (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
4887 (same_succ_reset): New function.
4888 (same_succ_htab, same_succ_edge_flags)
4889 (deleted_bbs, deleted_bb_preds): New var.
4890 (debug_same_succ): New function.
4891 (worklist): New var.
4892 (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
4893 (init_worklist, delete_worklist, delete_basic_block_same_succ)
4894 (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
4895 (print_cluster, debug_cluster, update_rep_bb)
4896 (add_bb_to_cluster, new_cluster, delete_cluster): New function.
4897 (all_clusters): New var.
4898 (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
4899 (merge_clusters, set_cluster): New function.
4900 (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
4901 (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
4902 (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
4903 (find_clusters_1, find_clusters): New function.
4904 (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
4905 (update_bbs): New var.
4906 (apply_clusters): New function.
4907 (update_debug_stmt, update_debug_stmts): New function.
4908 (tail_merge_optimize): New function.
4909 tree-pass.h (tail_merge_optimize): Declare.
4910 * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
4911 * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
4912 (tree-ssa-tail-merge.o): New rule.
a2aea2c1 4913 * opts.c (default_options_table): Set OPT_ftree_tail_merge by
4914 default at OPT_LEVELS_2_PLUS.
51385f30 4915 * tree-ssa-sccvn.c (vn_valueize): Move to ...
4916 * tree-ssa-sccvn.h (vn_valueize): Here.
4917 * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
4918 * common.opt (ftree-tail-merge): New switch.
4919 * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
4920 (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
4921 * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
4922 (-ftree-tail-merge, max-tail-merge-comparisons)
4923 (max-tail-merge-iterations): New item.
4924
39273ba1 49252011-09-27 Jan Hubicka <jh@suse.cz>
4926
4927 * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
4928
d4db9dfd 49292011-09-27 Jan Hubicka <jh@suse.cz>
4930
a2aea2c1 4931 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
4932 parameters passed by reference; handle loads from non-SSA scalars
4933 and update comments.
d4db9dfd 4934
ddedc10d 49352011-09-27 Bernd Schmidt <bernds@codesourcery.com>
4936
4937 PR rtl-optimization/50249
4938 * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
4939 instead of opnum and type. All callers changed. Remove useless
4940 declaration.
4941 Search forward for other reloads of the same type for the same operand
4942 using the same register; if any are found, return false.
4943 (reload_regs_reach_end_p): Same argument changes; all callers changed.
4944
b33542ab 49452011-09-27 Andi Kleen <ak@linux.intel.com>
4946 Jan Hubicka <jh@suse.cz>
4947
4948 * doc/invoke.texi (ffat-lto-objects): Document.
4949 * toplev.c (compile_file): Do not output assembly when doing slim lto;
4950 Output __gnu_slim_lto when doing slim lto.
4951 * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
4952 (cgraph_optimize): Return early when doing slim lto.
4953 * opts.c (finish_options): Complain about lack of linker plugin
4954 when doing slim lto.
4955 * common.opt (ffat-lto-objects): New.
4956
f0ae355e 49572011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
4958
4959 * ipa-inline-analysis.c (predicate_probability): Avoid comparison
4960 between signed and unsigned.
4961
03dab834 49622011-09-27 Ira Rosen <ira.rosen@linaro.org>
4963
4964 * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
4965 vectorization.
4966 (vectorizable_type_promotion): Likewise.
4967 (vect_analyze_stmt): Call vectorizable_type_demotion and
4968 vectorizable_type_promotion for basic blocks.
4969 (supportable_widening_operation): Don't assume loop vectorization.
4970 * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
4971 basic blocks. Update vectorization factor for basic block
4972 vectorization.
4973 (vect_analyze_slp_instance): Allow multiple types for basic block
4974 vectorization. Recheck unrolling factor after construction of SLP
4975 instance.
4976
ca70dcca 49772011-09-27 Richard Guenther <rguenther@suse.de>
4978
4979 * tree-object-size.c (compute_object_sizes): Fix dumping of
4980 folded statement.
4981
4b1b9be0 49822011-09-27 Richard Guenther <rguenther@suse.de>
4983
4984 PR tree-optimization/50363
4985 * tree-ssa-pre.c (create_expression_by_pieces): Handle
4986 pointer conversions in POINTER_PLUS_EXPRs properly.
4987
33aeac4f 49882011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
4989
4990 * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
4991 (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
4992 (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
4993 (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
4994 that produce subreg moves. Define using VQX iterators.
4995
f2c981c7 49962011-09-27 Georg-Johann Lay <avr@gjlay.de>
4997
4998 * config/avr/avr.md (ashrqi3): Split alternative "n"
4999 into its remaining parts C03, C04, C05, C06, C07 and describe
5000 impact in CC by attribute "cc" appropriately.
5001 * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
5002 by digging RTX.
5003
ba8dfb08 50042011-09-27 Jakub Jelinek <jakub@redhat.com>
5005
5006 * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
5007 from 3 x MAX_MACHINE_MODE.
5008 (CONSTM1_RTX): Define.
a2aea2c1 5009 * emit-rtl.c (const_tiny_rtx): Change into array of
5010 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
ba8dfb08 5011 (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
5012 CONSTM1_RTX.
5013 (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
5014 MODE_VECTOR_INT modes.
5015 * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
5016 Optimize if one operand is CONSTM1_RTX.
5017 * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
5018 into mask | x.
5019
9e64c9a4 50202011-09-26 David S. Miller <davem@davemloft.net>
5021
faa087bb 5022 * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
5023 (fcmp{le,ne,gt,eq}{16,32}): Likewise.
5024 * config/sparc/visintrin.h: Update edge and pixel-compare
5025 intrinsics to return 'long' instead of 'int'.
5026 * doc/extend.texi: Update documentation to match.
5027 * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
5028 flat, allow any instruction. Otherwise, when V9 allow parallels
5029 which consist only of sets to registers outside of %o0 to %o5.
5030 (sparc_vis_init_builtins): Update VIS builtin types for edge
5031 and pixel-compare.
5032
8ec7259a 5033 * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
5034 is enabled, mark %gsr as global.
5035 * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
5036 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
5037
9e64c9a4 5038 * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
5039 which will now define __VIS and __VIS__ when -mvis is enabled.
5040 * config/sparc/t-sparc: Likewise.
5041 * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
5042 and add t-sparc to tmake_file for all sparc targets.
5043 * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
5044 * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
5045
e39e0668 5046 * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
5047 builtins for VIS vector addition and subtraction.
5048 * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
5049 __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
5050 __vis_fpsub32, __vis_fpsub32s): New.
5051 * doc/extend.texi: Document new VIS intrinsics.
5052
7f94020e 50532011-09-26 Georg-Johann Lay <avr@gjlay.de>
5054
5055 * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
5056 * config/avr/avr.c (avr_out_compare): Print shorter sequence for
5057 EQ/NE comparisons against +/-1 in the case of unused-after,
5058 non-ld-regs target.
5059
be7317e9 50602011-09-26 Jakub Jelinek <jakub@redhat.com>
5061
5062 * gimple-fold.c (gimplify_and_update_call_from_tree): Set
5063 gctx.into_ssa after push_gimplify_context.
5064
5065 * gimple.c (gimple_build_call_valist): New function.
5066 * gimple.h (gimple_build_call_valist): New prototype.
5067 * tree-ssa-propagate.c (finish_update_gimple_call): New function.
5068 (update_gimple_call): Likewise.
5069 (update_call_from_tree): Use finish_update_gimple_call.
5070 * tree-ssa-propagate.h (update_gimple_call): New prototype.
5071
62df0ff9 50722011-09-26 Richard Guenther <rguenther@suse.de>
5073
5074 PR tree-optimization/50472
5075 * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
5076 volatile references.
5077
d384d9d9 50782011-09-26 Bingfeng Mei <bmei@broadcom.com>
62df0ff9 5079
d384d9d9 5080 * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
5081 * target.def: (addr_space_subset_p): Likewise.
5082
3d4a0a4b 50832011-09-26 Tom de Vries <tom@codesourcery.com>
5084
5085 * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
5086 * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
5087 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
5088 of new var.
5089
5bca95a8 50902011-09-26 Georg-Johann Lay <avr@gjlay.de>
5091
5092 PR target/50465
5093 * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
5094 * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
5095 output_reload_insisf.
5096 (adjust_len): Set default to "no".
5097 Remove alternative "yes". Add alternatives: "mov8", "mov16",
5098 "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
5099 "lshrhi", "ashlsi, "ashrsi", "lshrsi".
5100 (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
5101 *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
5102 *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
5103 *lshrsi3_const): Set attribute "adjust_len".
5104 * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
5105 (output_movsisf): Don't pass insn to output_reload_insisf.
5106 (adjust_insn_length): Handle new alternatives to adjust_len.
5107 Remove handling of ADJUST_LEN_YES. Clean-up code.
5108
1c448b92 51092011-09-26 Eric Botcazou <ebotcazou@adacore.com>
5110
5111 * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
5112 may_trap_p to detect loads that may trap of fault.
5113
2f2d376f 51142011-09-26 Georg-Johann Lay <avr@gjlay.de>
5115
5116 * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
5117 * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
5118 (*reload_inhi): Use it. Adapt call to output_reload_inhi to new
5119 prototype.
5120 (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
5121 * config/avr/avr.c: Rename output_reload_insisf_1 to
5122 output_reload_in_const.
5123 (avr_popcount_each_byte): Handle SFmode, too.
5124 (output_reload_in_const): Change so it can handle HI loads, too.
5125 Use avr_popcount_each_byte to work out if scratch register must be
5126 created on the fly.
5127 (output_reload_inhi): Rewrite using output_reload_in_const and...
5128 (output_movhi): ...use it to print constants' loads.
5129 (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
5130
bbfdec17 51312011-09-25 David S. Miller <davem@davemloft.net>
5132
5133 * config/sparc/constraints.md (C, P, Z): New constraints for
5134 const_doube, const_int, and const_vector "all ones" values.
5135 Make unused constraint letters comment match reality.
5136 * config/sparc/predicates.md (const_all_ones_operand,
5137 register_or_zero_or_all_ones_operand): New predicates.
5138 * config/sparc/sparc.c (sparc_expand_move): Allow all ones
5139 as well as zero constants when VIS.
5140 (sparc_legitimate_constant_p): Likewise.
5141 * config/sparc/sparc.md (movsi_insn): Add fones alternative.
5142 (movsf_insn): Likewise
5143 (movdi_insn_sp64): Add fone alternative.
5144 (movdf_insn_sp32_v9): Likewise.
5145 (movdf_insn_sp64): Likewise.
5146
0468cf8f 5147 * configure.ac: Add feature check to make sure the assembler
5148 supports the FMAF, HPC, and VIS 3.0 instructions found on
5149 Niagara-3 and later cpus.
5150 * configure: Rebuild.
5151 * config.in: Likewise.
5152 * config/sparc/sparc.opt: New option '-mfmaf'.
5153 * config/sparc/sparc.md: Add float fused multiply-add patterns.
5154 * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
5155 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
5156 * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
5157 ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
5158 * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
5159 by default for Niagara-3 and later. Turn it off if TARGET_FPU is
5160 disabled.
5161 (sparc_rtx_costs): Handle 'FMA'.
5162 * doc/invoke.texi: Document -mfmaf.
5163
f277142a 51642011-09-25 Jakub Jelinek <jakub@redhat.com>
5165
5166 * tree-ssa-structalias.c (intra_create_variable_infos): Treat
5167 TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
5168 DECL_BY_REFERENCE parameters.
5169
367113ea 51702011-09-25 Eric Botcazou <ebotcazou@adacore.com>
5171
5172 * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
5173 if there is no outgoing edge.
5174
5175 * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
5176 integral types.
5177
5bbe6156 51782011-09-25 Ira Rosen <ira.rosen@linaro.org>
5179
5180 * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
5181 of vect_analyze_bb here.
5182 (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
5183
0c257e4c 51842011-09-25 Ira Rosen <ira.rosen@linaro.org>
5185
5186 * tree-data-ref.c (dr_analyze_innermost): Add new argument.
5187 Allow not simple iv if analyzing basic block.
5188 (create_data_ref): Update call to dr_analyze_innermost.
5189 (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
5190 * tree-loop-distribution.c (generate_memset_zero): Likewise.
5191 * tree-predcom.c (find_looparound_phi): Likewise.
5192 * tree-data-ref.h (dr_analyze_innermost): Add new argument.
5193
b011bbe2 51942011-09-24 David S. Miller <davem@davemloft.net>
5195
5196 * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
5197 (SPARC_GSR_REG): Define.
5198 (FIXED_REGISTERS): Mark GSR as fixed.
5199 (CALL_USED_REGISTERS): Mark GSR as call used.
5200 (HARD_REGNO_NREGS): GSR is always 1 register.
5201 (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
5202 (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
5203 (REGISTER_NAMES): Add "%gsr".
a2aea2c1 5204 * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
b011bbe2 5205 (UNSPEC_WRGSR): New unspec.
5206 (GSR_REG): New constant.
5207 (type): Add new insn type 'gsr'.
5208 (fpack16_vis, fpackfix_vis, fpack32_vis,
5209 faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
5210 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
5211 rdgsr_v8plus): New expanders and insns.
5212 (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
5213 using patterns which show that this is a plus in addition to a
5214 modification of GSR_REG, instead of an unspec.
5215 * config/sparc/ultra1_2.md: Handle 'gsr'.
5216 * config/sparc/ultra3.md: Likewise.
5217 * config/sparc/niagara.md: Likewise.
5218 * config/sparc/niagara2.md: Likewise.
5219 * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
5220 end of table.
5221 (sparc_option_override): Make -mvis imply -mv8plus.
5222 (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
5223 for %gsr.
5224 (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
5225 __builtin_vis_read_gsr.
5226 (sparc_expand_buildin): Handle builtins that take one argument and
5227 return void.
5228 (sparc_fold_builtin): Never fold writes to %gsr.
5229 * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
5230 * doc/extend.texi: Document new VIS intrinsics.
5231
eb4ae064 52322011-09-23 Jan Hubicka <jh@suse.cz>
5233
5234 * ipa-inline-transform.c (inline_call): Add comment.
5235 * ipa-inline.h (inline_param_summary): New structure and vector.
5236 (struct inline_edge_summary): Add param field.
5237 * ipa-inline-analysis.c (CHANGED): New constant.
5238 (add_clause): Handle CHANGED and NOT_CONSTANT.
5239 (predicate_probability): New function.
5240 (dump_condition): Dump CHANGED predicate.
5241 (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
5242 of unknown function wide invariant.
5243 (evaluate_conditions_for_edge): Handle change probabilities.
5244 (inline_edge_duplication_hook): Copy param summaries.
5245 (inline_edge_removal_hook): Free param summaries.
a2aea2c1 5246 (dump_inline_edge_summary): Fix dumping of indirect edges and callee
5247 sizes; dump param summaries.
eb4ae064 5248 (will_be_nonconstant_predicate): Use CHANGED predicate.
5249 (record_modified_bb_info): New structure.
5250 (record_modified): New function.
5251 (param_change_prob): New function.
5252 (estimate_function_body_sizes): Compute param summaries.
5253 (estimate_edge_size_and_time): Add probability argument.
5254 (estimate_node_size_and_time): Add inline_param_summary argument;
5255 handle predicate probabilities.
5256 (remap_predicate): Fix formating.
5257 (remap_edge_change_prob): New function.
5258 (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
5259 (remap_edge_predicates): ... this one.
a2aea2c1 5260 (inline_merge_summary): Remap edge summaries; handle predicate
5261 probabilities; remove param summaries after we are done.
eb4ae064 5262 (do_estimate_edge_time): Update.
5263 (do_estimate_edge_growth): Update.
5264 (read_inline_edge_summary): Read param info.
5265 (inline_read_summary): Fix formating.
5266 (write_inline_edge_summary): Write param summaries.
5267
154d1782 52682011-09-23 Jakub Jelinek <jakub@redhat.com>
5269
5270 * config/i386/i386.c (ix86_print_operand): Handle %~.
5271 (ix86_print_operand_punct_valid_p): Return true also for '~'.
5272 * config/i386/sse.md (i128): New mode_attr.
5273 (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
5274 avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
a2aea2c1 5275 *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
154d1782 5276 vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
5277 patterns, use "<sseinsnmode>" for "mode" attribute.
5278 (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
5279 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
5280 %~128 in the patterns, use "OI" for "mode" attribute.
5281
dfd52f2b 52822011-09-23 Georg-Johann Lay <avr@gjlay.de>
5283
5284 PR target/50447
5285 * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
5286 "tstsi", "compare".
5287 (*cmpqi_sign_extend): Use s8_operand.
5288 (*cmphi, *cmpsi): Rewrite using avr_out_compare.
5289 * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
5290 prototypes.
5291 (out_tsthi, out_tstsi): Remove prototypes.
5292 (avr_out_tsthi, avr_out_tstsi): New prototypes.
5293 * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
5294 (avr_asm_len): Negative length now sets *plen to -length.
5295 (compare_sign_p): Return bool instead of int.
5296 (compare_diff_p, compare_eq_p): Ditto and make static.
5297 (avr_out_tsthi): New function.
5298 (avr_out_tstsi): New function.
5299 (avr_out_compare): New function.
5300 (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
5301 ADJUST_LEN_COMPARE.
5302
37bcc7b9 53032011-09-23 Georg-Johann Lay <avr@gjlay.de>
5304
5305 PR target/50447
5306 * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
5307 (addsi3): Rewrite using QI scratch register. Adjust text
5308 peepholes using plus:SI.
5309 (*addsi3_zero_extend.hi): New insn.
5310 (*subsi3_zero_extend.hi): New insn.
5311 (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
5312 (*subsi3_zero_extend): Ditto.
5313 (subsi3): Change predicate #2 to register_operand.
5314 * config/avr/avr-protos.h (avr_out_plus): New prototype.
5315 (avr_out_plus_1): New static function.
5316 (avr_out_plus): New function.
5317 (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
5318
6b357875 53192011-09-23 Jakub Jelinek <jakub@redhat.com>
5320
5321 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
5322 GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
5323
e8a63dfe 53242011-09-23 Ian Lance Taylor <iant@google.com>
5325
5326 * godump.c (go_define): Treat a single character in single quotes,
5327 or a string, as an operand.
5328
ee4fcf24 53292011-09-23 Martin Jambor <mjambor@suse.cz>
5330
5331 * ipa-prop.h (jump_func_type): Updated comments.
5332 (ipa_known_type_data): New type.
5333 (ipa_jump_func): Use it to describe known type jump functions.
5334 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
5335 reflect the new known type jump function contents.
5336 (compute_known_type_jump_func): Likewise.
5337 (combine_known_type_and_ancestor_jfs): Likewise.
5338 (try_make_edge_direct_virtual_call): Likewise.
5339 (ipa_write_jump_function): Likewise.
5340 (ipa_read_jump_function): Likewise.
5341 * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
5342 (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
5343 (propagate_accross_jump_function): Likewise.
5344
36181f98 53452011-09-23 Georg-Johann Lay <avr@gjlay.de>
5346
5347 PR target/50446
5348 * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
5349 (rotlqi3_4): Turn insn into expander.
5350 (*rotlqi3): New insn.
5351 (rotlhi3, rotlsi3): Support rotate left/right by 1.
5352 (*rotlhi2.1, *rotlhi2.15): New insns.
5353 (*rotlsi2.1, *rotlsi2.31): New insns.
5354 * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
5355
6b729a2b 53562011-09-23 Bin Cheng <bin.cheng@arm.com>
5357
a2aea2c1 5358 * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
6b729a2b 5359
734eb2d7 53602011-09-22 Maxim Kuvyrkov <maxim@codesourcery.com>
5361
5362 * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
5363
fe42ff4b 53642011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5365
5366 * reload.c (find_reloads): Set operand_mode to Pmode for address
5367 operands consisting of just a CONST_INT.
5368
0cc8d6bb 53692011-09-22 Uros Bizjak <ubizjak@gmail.com>
5370
5371 PR target/50482
5372 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
5373 blendv, force op_true to register if it doesn't satisfy
5374 nonimmediate_operand predicate.
5375
11fb947f 53762011-09-22 Richard Sandiford <rdsandiford@googlemail.com>
5377
5378 PR middle-end/50113
5379 PR middle-end/50061
5380 * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
5381 get the locate.where_pad value for register-only arguments.
5382 * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
5383 (arm_pad_reg_upward): Handle null types.
5384
fb3c587e 53852011-09-22 Jan Hubicka <jh@suse.cz>
5386
5387 * ipa-inline-analysis.c: Fix overly long lines.
5388
a226c368 53892011-09-22 Jan Hubicka <jh@suse.cz>
5390
5391 * ipa-inline-transform.c (inline_call): Always update jump functions
5392 after inlining.
5393 * ipa-inline.c (ipa_inline): Likewise; do not call
5394 ipa_create_all_structures_for_iinln.
5395 (ipa_inline): Always free jump functions.
0cc8d6bb 5396 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
a226c368 5397 (remap_edge_predicates): Fix pasto.
5398 (inline_merge_summary): Remove nlined edge predicate; remove hack.
5399 (inline_analyze_function): Always initialize jump functions.
5400 (inline_generate_summary): Likewise.
5401 (inline_write_summary): Always write jump functions when ipa-cp
5402 is not doing that.
5403 (inline_read_summary): Always read jump functions when ipa-cp
5404 is not doing that.
5405 * ipa-prop.c (iinlining_processed_edges): Remove.
5406 (update_indirect_edges_after_inlining): Do not use
5407 iinlining_processed_edges; instead set param_index to -1.
5408 (propagate_info_to_inlined_callees): Only try to indirect inlining
5409 when asked to do so; update jump functions of indirect calls, too;
5410 remove jump functions of the inlined edge.
5411 (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
5412 (ipa_create_all_structures_for_iinln): Remove.
5413 (ipa_free_all_structures_after_iinln): Do not free
5414 iinlining_processed_edges.
5415 * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
5416
aa06947a 54172011-09-22 Richard Sandiford <richard.sandiford@linaro.org>
5418
5419 * config/arm/predicates.md (expandable_comparison_operator): New
5420 predicate, extracted from...
5421 (arm_comparison_operator): ...here.
5422 * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
5423 (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
5424 (movdfcc): Use expandable_comparison_operator.
5425
6be828c1 54262011-09-22 Georg-Johann Lay <avr@gjlay.de>
5427
5428 PR target/50447
5429 PR target/50465
5430 * config/avr/avr-protos.h (avr_out_bitop): New prototype.
5431 (avr_popcount_each_byte): New prototype.
5432 * config/avr/avr.c (avr_popcount): New static function.
5433 (avr_popcount_each_byte): New function.
5434 (avr_out_bitop): New function.
5435 (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
5436 avr_out_bitop. Cleanup code.
5437 * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
5438 (Ca4, Co4, Cx4): New constraints.
5439 * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
5440 alternative.
5441 (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
5442 (andsi3, iorsi3, xorsi3): Ditto.
5443 (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
5444
38fbbe0d 54452011-09-22 Ira Rosen <ira.rosen@linaro.org>
5446
5447 PR tree-optimization/50451
5448 * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
5449 constant operands in reduction.
5450 (vect_get_slp_defs): Don't create vector operand for NULL scalar
5451 operand.
5452
a519a378 54532011-09-22 David S. Miller <davem@davemloft.net>
5454
5455 * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
5456 fpack16, fpack32, fpackfix as const.
5457
2b25173f 5458 * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
5459 I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
5460 constants. Use them everywhere.
5461
f43912de 54622011-09-22 Oleg Endo <oleg.endo@t-online.de>
5463
5464 * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
5465 Added AND special case. Adapted comments.
5466 (sh_rtx_costs): Added XOR and IOR case.
5467
8e22665e 54682011-09-21 Jan Hubicka <jh@suse.cz>
5469
5470 * ipa-inline-analsis.c (compute_inline_parameters): Set
5471 cfun and current_function_decl.
5472
54732011-09-21 Jan Hubicka <jh@suse.cz>
5474
5475 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
5476 handled components in parameter of builtin_constant_p.
5477 (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
5478
0a97420b 54792011-09-21 Jan Hubicka <jh@suse.cz>
5480
5481 * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
5482 * ipa-inline.h (estimate_edge_time): Fix pasto.
5483 * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
5484
a454edfa 54852011-09-21 Jakub Jelinek <jakub@redhat.com>
5486
5487 * config/i386/i386.c (ix86_expand_sse_movcc): Use
5488 blendvps, blendvpd and pblendvb if possible.
5489
3efe840b 54902011-09-21 Uros Bizjak <ubizjak@gmail.com>
5491
5492 PR target/50464
5493 * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
5494 operand 1 predicate to register_operand and operand 2 predicate
5495 to nonimmediate_operand.
5496 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
5497 xop_pcmov, force op_true to register. Also, force op_false to
5498 register if it doesn't satisfy nonimmediate_operand predicate.
5499
6e0cdf54 55002011-09-21 Kirill Yukhin <kirill.yukhin@intel.com>
5501
5502 * config/i386/bmi2intrin.h (_mulx_u64): New.
5503 (_mulx_u32): Ditto.
5504
6b4a202b 55052011-09-21 Jan Hubicka <jh@suse.cz>
5506
5507 PR tree-optimization/50433
3efe840b 5508 * ipa-inline-analysis.c (eliminated_by_inlining_prob):
5509 Use get_base_address.
6b4a202b 5510
23d77b6d 55112011-09-21 Jakub Jelinek <jakub@redhat.com>
5512
5513 * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
5514 nonimmediate_operand instead of register_operand predicate for operands
5515 1 and 2, force them into registers if expanding them as comparison.
5516 (<code><mode>3 umaxmin:VI124_128 expander): Similarly. For UMAX
5517 V8HImode force into register just operand 1.
5518
363cd51e 55192011-09-21 Georg-Johann Lay <avr@gjlay.de>
5520
5521 PR target/45099
5522 * config/avr/avr.c (avr_function_arg_advance): Change error to
5523 warning if a fixed register is needed as function argument.
5524
28913f6b 55252011-09-21 Georg-Johann Lay <avr@gjlay.de>
5526
5527 PR target/50449
5528 PR target/50465
5529 * config/avr/avr.md (adjust_len): New insn attribute.
5530 (*reload_insi, *reload_insf): Use it.
5531 (*movsi, *movsf): Use new interface of output_movsisf.
5532 * config/avr/avr-protos.h (output_movsisf): Change prototype.
5533 * config/avr/avr.c (output_movsisf): Ditto.
5534 (adjust_insn_length): Use insn attribute "adjust_len" to adjust
5535 lengths of insns *reload_insi, *reload_insf.
5536 (output_reload_insisf_1): New static function.
5537 (output_reload_insisf): Use it.
5538
ed5385e6 55392011-09-21 David S. Miller <davem@davemloft.net>
5540
5541 * config/sparc/sparc.c (def_builtin): Change from macro into function.
5542 (def_builtin_const): New.
5543 (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
5544 other than alignaddr and falignaddr.
5545
7228aca8 5546 * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
5547 UNSPEC_FCMPEQ): New unspec codes.
5548 (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
5549 fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
5550 * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
5551 new pixel compare VIS patterns.
5552 * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
5553 __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
5554 __vis_fcmpeq16, __vis_fcmpeq32): New.
5555 * doc/extend.texi: Document new pixel compare VIS intrinsics.
5556
198b8289 55572011-09-21 Tom de Vries <tom@codesourcery.com>
5558
5559 * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
5560
4e3a6159 55612011-09-20 David S. Miller <davem@davemloft.net>
5562
5563 * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
5564 (aligneddrl<P:mode>_vis): New pattern.
5565 (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
5566 edge32l_vis): Adjust to take Pmode arguments, and return SImode.
5567 * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
5568 alignaddrl insn, and adjust edge operations for updated types.
5569 * config/sparc/visintrin.h: Likewise.
5570 * doc/extend.texi: Make typing in VIS documentation match reality.
5571
dc5defc5 55722011-09-20 Terry Guo <terry.guo@arm.com>
5573
5574 * config/arm/arm-arches.def: Add armv6s-m.
5575 * config/arm/arm-tables.opt: Regenerate.
5576
2a5c3a73 55772011-09-20 Wei Guozhi <carrot@google.com>
5578
5579 PR rtl-optimization/49452
5580 * postreload.c (reload_combine): Invalidate use information when across
5581 volatile insn.
5582
f244c028 55832011-09-19 Maxim Kuvyrkov <maxim@codesourcery.com>
5584
5585 * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
5586 Remove maintenance overhead.
5587 (haifa_sched_init, sched_finish): Update.
5588
18594fc6 55892011-09-19 Uros Bizjak <ubizjak@gmail.com>
5590
5591 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
5592 to calculate unit, prefix_rep and prefix_data16 attributes.
5593 (*mov<mode>_internal): Ditto for unit attribute.
5594 (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
5595 (*movv2sf_internal): Ditto.
5596 * config/i386/sse.md (VI1248_256): Remove mode iterator.
5597 (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
5598 (*avx2_eq<mode>3): Ditto.
5599 (avx2_gt<mode>3): Ditto.
5600
2af8cce6 56012011-09-19 Uros Bizjak <ubizjak@gmail.com>
5602
5603 * config/i386/i386.md (maxmin): New code iterator.
5604 * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
5605 from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
5606 code iterator.
5607 (*avx2_<maxmin:code><mode>3): Macroize isn from
5608 *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
5609 maxmin code iterator.
5610 (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
5611 (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
5612 <umaxmin:code>v16qi3.
5613
9ffcb4bd 56142011-09-19 Alan Modra <amodra@gmail.com>
5615 Michael Meissner <meissner@linux.vnet.ibm.com>
5616
5617 PR target/50341
5618 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
5619 split the load of the indirect function's TOC from the call to
5620 prevent the compiler from moving the load of the new TOC above
5621 code that references the current function's TOC.
5622 (call_indirect_aix<ptrsize>_internal): Ditto.
5623 (call_indirect_aix<ptrsize>_nor11): Ditto.
5624 (call_indirect_aix<ptrsize>_internal2): Ditto.
5625 (call_value_indirect_aix<ptrsize>): Ditto.
5626 (call_value_indirect_aix<ptrsize>_internal): Ditto.
5627 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5628 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5629
6100dd38 56302011-09-19 Jakub Jelinek <jakub@redhat.com>
5631
5632 * config/i386/sse.md (*sse4_1_extractps): Change into
5633 define_insn_and_split, add =x 0 n and =x x n alternatives
5634 and split them after reload.
5635
07d52fc9 56362011-09-19 Alexandre Oliva <aoliva@redhat.com>
5637
5638 * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
5639
d7fce3c8 56402011-09-19 Alexandre Oliva <aoliva@redhat.com>
5641
5642 * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
5643
7688ffe5 56442011-09-19 Ira Rosen <ira.rosen@linaro.org>
5645
5646 PR tree-optimization/50413
5647 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
5648 a basic block if one of its data-refs can't be analyzed.
5649
30f61c4f 56502011-09-19 Paul Brook <paul@codesourcery.com>
5651
30f61c4f 5652 * config/arm/predicates.md (shift_amount_operand): Check constant
5653 shift count is in range.
5654 (const_shift_operand): Remove.
5655
ff49a985 56562011-09-18 Eric Botcazou <ebotcazou@adacore.com>
5657 Iain Sandoe <developer@sandoe-acoustics.co.uk>
5658
5659 PR target/50091
5660 * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
5661 * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
5662
20c7713c 56632011-09-18 H.J. Lu <hongjiu.lu@intel.com>
5664
5665 * config/i386/bmiintrin.h: Remove tmp.
5666 * config/i386/tbmintrin.h: Likewise.
5667
d706d35c 56682011-09-18 Ira Rosen <ira.rosen@linaro.org>
5669
5670 PR tree-optimization/50414
5671 * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
5672 MIN_EXPR.
5673
d88ecd95 56742011-09-18 Ira Rosen <ira.rosen@linaro.org>
5675
5676 PR tree-optimization/50412
5677 * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
5678 acceses that require epilogue loop if vectorizing outer loop.
5679
010db245 56802011-09-17 David S. Miller <davem@davemloft.net>
5681
5682 * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
5683 UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
5684 New unspecs.
5685 (define_attr type): New type 'edge'.
5686 (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
5687 edge32l_vis): New patterns.
5688 * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
5689 * config/sparc/ultra3.md: Likewise.
5690 * config/sparc/niagara.md: Likewise.
5691 * config/sparc/niagara2.md: Likewise.
5692 * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
5693 builtins for VIS edge instructions.
5694 * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
5695 (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
5696 intrinsics.
5697 (__v8qi, __v4qi): Make unsigned.
5698 (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
5699 __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
5700 __vis_fpack32): Fix types.
5701 * doc/extend.texi: Document new 'edge' VIS intrinsics.
5702
d4ab9151 5703 * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
5704 divide costs.
5705 (niagara3_costs): New.
5706 (sparc_option_override): Use it.
5707 * gcc/config/sparc/niagara2.md: Adjust with more accurate
5708 Niagara-3 reservations.
5709
230eb963 57102011-09-17 Jakub Jelinek <jakub@redhat.com>
5711
bb7ad312 5712 * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
5713 (sse2_avx, sseinsnmode): Add V2TI.
5714 (REDUC_SMINMAX_MODE): New mode iterator.
5715 (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
5716 reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
5717 (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
5718 (sse2_lshrv1ti3): Rename to...
5719 (<sse2_avx2>_lshr<mode>3): ... this. Use VIMAX_AVX2 mode
5720 iterator. Move before umaxmin expanders.
5721 * config/i386/i386.h (VALID_AVX256_REG_MODE,
5722 SSE_REG_MODE_P): Accept V2TImode.
5723 * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
5724 V16HImode, V8SImode and V4DImode.
5725
230eb963 5726 * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
5727 and V4DImode.
5728 (ix86_build_signbit_mask): Likewise.
2af8cce6 5729 (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode.
230eb963 5730 (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
5731 instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
2af8cce6 5732 * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
230eb963 5733 (<code><mode>3) ... this.
5734 (avx2_<code><mode>3 smaxmin expand): Rename to...
5735 (<code><mode>3) ... this.
5736 (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
5737 (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
5738 VI8_AVX2 mode iterator.
5739 (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
5740 VI8_AVX2 mode iterator.
5741 (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
5742 New expanders.
bb7ad312 5743
f4d8a59e 57442011-09-17 Richard Sandiford <rdsandiford@googlemail.com>
5745
5746 * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
5747 throughout file.
5748
6b27013f 57492011-09-16 David S. Miller <davem@davemloft.net>
5750
5751 * config/sparc/visintrin.h: New file.
5752 * config.gcc: Add it to extra_headers on sparc.
5753
0212e2b8 57542011-09-16 Jakub Jelinek <jakub@redhat.com>
5755
2e954432 5756 * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
5757 (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode.
5758 * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
5759 reduc_smin_v4sf): Adjust callers.
5760 (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
5761 New expanders.
5762
0212e2b8 5763 * config/i386/sse.md (vec_extract_hi_<mode>,
5764 vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
5765 vextracti128 instead of vextractf128 for -mavx2 and
5766 integer vectors. For V4DFmode fix up mode attribute.
5767 (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
5768 (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
5769 instead of V8SF mode attribute.
5770 (avx2_extracti128): Change into define_expand.
5771 * config/i386/i386.c (ix86_expand_vector_extract): Handle
5772 32-byte vector modes if TARGET_AVX.
5773
c1195a2e 57742011-09-16 Georg-Johann Lay <avr@gjlay.de>
6b27013f 5775
c1195a2e 5776 * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
5777 (umulqi3_highpart, smulqi3_highpart): Ditto.
5778 (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
5779 (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
5780 (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
5781
37ee98f3 57822011-09-16 Georg-Johann Lay <avr@gjlay.de>
5783
5784 PR target/50358
5785 * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
5786 (*maddqi4, *maddqi4.const): New insns.
5787 (*msubqi4, *msubqi4.const): New insns.
5788 * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
5789 PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for
5790 HImode by 1 in the case of multiplying with a CONST_INT.
5791 Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
5792
82ceb8f6 57932011-09-15 Jan Hubicka <jh@suse.cz>
5794
5795 PR lto/50430
5796 * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
5797 error_mark_node in the DECL_INITIAL of vtable.
5798
224d9f3d 57992011-09-15 Diego Novillo <dnovillo@google.com>
5800
5801 * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
5802 @SYSROOT_CFLAGS_FOR_TARGET@.
2af8cce6 5803 * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
224d9f3d 5804 * configure: Regenerate.
5805 (site.exp): Add definition of TEST_ALWAYS_FLAGS.
5806 Remove setting of GCC_UNDER_TEST.
5807
00c200f1 58082011-09-15 Uros Bizjak <ubizjak@gmail.com>
5809
5810 * config/i386/i386.c (output_fp_compare): Return %v prefixed
5811 instruction mnemonics for TARGET_AVX.
5812
5813 * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
5814 "type" attribute calculation.
5815 (*movdf_internal): Ditto.
5816 (*movsf_internal): Ditto.
5817
07f245ec 58182011-09-15 James Greenhalgh <james.greenhalgh@arm.com>
5819
5820 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
5821
d965946e 58222011-09-15 Jason Merrill <jason@redhat.com>
5823
5824 PR c++/50361
5825 * expr.c (count_type_elements): Handle NULLPTR_TYPE.
5826
94646c9c 58272011-09-15 Jan Hubicka <jh@suse.cz>
5828
5829 * ipa-inline-analysis.c (add_condition): Add conditions parameter;
5830 simplify obviously true clauses.
5831 (and_predicates, or_predicates): Add conditions parameter.
5832 (inline_duplication_hoook): Update.
5833 (mark_modified): New function.
5834 (unmodified_parm): New function.
5835 (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
5836 set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
5837 Use unmodified_parm.
5838 (estimate_function_body_sizes): Update.
5839 (remap_predicate): Update.
5840
7d1099cb 58412011-09-15 Ira Rosen <ira.rosen@linaro.org>
5842
5843 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
5844 read-after-read dependencies in basic block SLP.
5845
9f608b27 58462011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
5847
5848 * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
5849 throughout file.
5850
9c525075 58512011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
5852
5853 * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
5854 throughout file.
5855
16fe462f 58562011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
5857
5858 * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
5859 throughout file.
5860
9a2c496e 58612011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
5862
5863 * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
5864 throughout file.
5865 * config/rs6000/constraints.md: Likewise.
5866
b0bf67fc 58672011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
5868
5869 * config/microblaze/microblaze.md: Use match_test rather than
5870 eq/ne symbol_ref throughout file.
5871
c2dd47eb 58722011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
5873
5874 * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
5875 throughout file.
5876
1ea0f42a 58772011-09-14 Tom de Vries <tom@codesourcery.com>
5878
5879 PR middle-end/50251
5880 * explow.c (emit_stack_restore): Set crtl->need_drap if
5881 stack_restore is emitted.
5882
eb04cafb 58832011-09-14 Julian Brown <julian@codesourcery.com>
5884
5885 * config/arm/arm.c (arm_override_options): Add unaligned_access
5886 support.
00c200f1 5887 (arm_file_start): Emit attribute for unaligned access as appropriate.
eb04cafb 5888 * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
5889 (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
5890 (insv, extzv): Add unaligned-access support.
5891 (extv): Change to expander. Likewise.
5892 (extzv_t1, extv_regsi): Add helpers.
5893 (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
5894 (unaligned_storesi, unaligned_storehi): New.
5895 (*extv_reg): New (previous extv implementation).
5896 * config/arm/arm.opt (munaligned_access): Add option.
5897 * config/arm/constraints.md (Uw): New constraint.
5898 * expmed.c (store_bit_field_1): Adjust bitfield numbering according
5899 to size of access, not size of unit, when BITS_BIG_ENDIAN !=
5900 BYTES_BIG_ENDIAN. Don't use bitfield accesses for
5901 volatile accesses when -fstrict-volatile-bitfields is in effect.
5902 (extract_bit_field_1): Likewise.
5903
23068d35 59042011-09-14 Richard Sandiford <richard.sandiford@linaro.org>
5905
5906 * simplify-rtx.c (simplify_subreg): Check that the inner mode is
5907 a scalar integer before applying integer-only optimisations to
5908 inner arithmetic.
5909
3ffda026 59102011-09-14 Bernd Schmidt <bernds@codesourcery.com>
5911
5912 * config/mips/mips.c (mips_expand_epilogue): Generate a
5913 simple_return only if the return address is in r31.
5914
3cc98df4 59152011-09-13 Bernd Schmidt <bernds@codesourcery.com>
5916
5917 * cfgcleanup.c (try_head_merge_bb): If get_condition returns
5918 NULL for a jump that is a cc0 insn, pick the previous insn for
5919 move_before.
5920
db150dfa 59212011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5922
5923 * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
5924 throughout file.
5925
09bcd759 59262011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5927
5928 * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
5929 throughout file.
5930
5b44b63a 59312011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5932
5933 * config/mn10300/mn10300.md: Use match_test rather than eq/ne
5934 symbol_ref throughout file.
5935
10adf167 59362011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5937
5938 * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
5939 throughout file.
5940
bfd185a9 59412011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5942
5943 * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
5944 throughout file.
5945
0bf497f5 59462011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
5947
5948 * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
5949 throughout file.
5950 * config/arm/neon.md: Likewise.
5951 * config/arm/vfp.md: Likewise.
5952 * config/arm/thumb2.md: Likewise.
5953 * config/arm/cortex-m4.md: Likewise.
5954
99c1d5bc 59552011-09-13 Sevak Sargsyan <sevak.sargsyan@ispras.ru>
5956
5957 * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
5958 define_insn patterns for combine.
5959
71d7ad14 59602011-09-13 Giuseppe Scrivano <gscrivano@gnu.org>
5961
5962 * reorg.c: Always define make_return_insns.
5963
02d98a17 59642011-09-13 Jan Hubicka <jh@suse.cz>
5965
968b8c52 5966 PR other/49533
5967 * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
5968
59692011-09-13 Jan Hubicka <jh@suse.cz>
5970
5971 PR other/49533
02d98a17 5972 * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
5973
7e5fc0c4 59742011-09-13 Paul Brook <paul@codesourcery.com>
00c200f1 5975
7e5fc0c4 5976 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5977 (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
5978 * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
5979 * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
5980 * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
5981 * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
5982 * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
5983 * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
5984 enabling unwind tables.
5985 (c6x_debug_unwind_info): New function.
5986 (TARGET_ARM_EABI_UNWINDER): Define.
5987 (TARGET_DEBUG_UNWIND_INFO): Define.
5988 * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
5989 (TARGET_EXTRA_CFI_SECTION): Remove.
5990 * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
5991 * ginclude/unwind-arm-common.h: New file.
5992
73cd2c42 59932011-09-13 Georg-Johann Lay <avr@gjlay.de>
00c200f1 5994
73cd2c42 5995 PR target/50358
5996 * config/avr/predicates.md (const_1_to_6_operand): New predicate.
5997 * config/avr/avr.md: (extend_s): New code attribute.
5998 (mul_r_d): New code attribute.
5999 (*maddqihi4, *umaddqihi4): New insns.
6000 (*msubqihi4, *umsubqihi4): New insns.
6001 (*usmaddqihi4, *sumaddqihi4): New insns.
6002 (*usmsubqihi4, *susubdqihi4): New insns.
6003 (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
6004 (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
6005 (*umsubqihi4.uconst.ashift): New insn-and-split.
6006 (*msubqihi4.sconst.ashift): New insn-and-split.
6007 (*sumaddqihi4.uconst): New insn-and-split.
6008 (*sumsubqihi4.uconst): New insn-and-split.
6009 * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
6010 PLUS:HI and MINUS:HI.
6011
9bf2b489 60122011-09-13 Revital Eres <revital.eres@linaro.org>
6013
6014 modulo-sched.c (remove_node_from_ps): Return void instead of bool.
6015 (optimize_sc): Adjust call to remove_node_from_ps.
6016 (sms_schedule): Add print info.
6017
42f21e3e 60182011-09-13 Bernd Schmidt <bernds@codesourcery.com>
6019
6020 * rtl.c (copy_rtx): Do not handle frame_related, jump or call
6021 flags specially.
6022
08cc385a 60232011-09-12 Jakub Jelinek <jakub@redhat.com>
6024
6025 PR bootstrap/50010
6026 * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
6027 NOTE_INSN_CFI notes, with the exception of
6028 NOTE_INSN_SWITCH_TEXT_SECTIONS.
6029
9451462a 60302011-09-12 Bernd Schmidt <bernds@codesourcery.com>
6031 Richard Sandiford <rdsandiford@googlemail.com>
6032
6033 * config/mips/mips.c (mips_epilogue): New structure.
6034 (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
6035 restoring registers.
6036 (mips_epilogue_emit_cfa_restores): New function.
6037 (mips_epilogue_set_cfa): Likewise.
6038 (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring
6039 the current CFA register from the stack, redefine the CFA in terms
6040 of the stack pointer.
6041 (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information
6042 to the epilogue instructions.
6043
31b4e36e 60442011-09-12 Richard Sandiford <rdsandiford@googlemail.com>
6045
6046 * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
6047 argument.
6048 (mips16e_build_save_restore): Update accordingly.
6049
b4eeceb9 60502011-09-12 Jakub Jelinek <jakub@redhat.com>
6051
147f11a7 6052 PR rtl-optimization/50212
6053 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6054 Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
6055
b4eeceb9 6056 PR debug/50299
6057 * calls.c (load_register_parameters): Use use_reg_mode instead
6058 of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
6059 entry.
6060 (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
6061 for stack CALL_INSN_FUNCTION_USAGE uses.
6062 * expr.h (use_reg_mode): New prototype.
6063 (use_reg): Changed into inline around use_reg_mode.
6064 * expr.c (use_reg): Renamed to...
6065 (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST
6066 mode to that mode instead of VOIDmode.
6067 * var-tracking.c (prepare_call_arguments): Don't track parameters
6068 whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
6069 to it using lowpart_subreg. Convert VALUE and REG/MEM to the
6070 EXPR_LIST mode.
6071
bf412f98 60722011-09-12 Georg-Johann Lay <avr@gjlay.de>
6073
6074 PR target/43746
6075 * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
6076 (progmem_section): New Variable.
6077 (avr_asm_init_sections): Initialize it.
6078 (TARGET_ASM_SELECT_SECTION): Define to...
6079 (avr_asm_select_section): ... this new Function.
6080 (avr_replace_prefix): New Function.
6081 (avr_asm_function_rodata_section): Use it.
6082 (avr_insert_attributes): Don't add section attribute for PROGMEM.
6083 (avr_section_type_flags): Use avr_progmem_p instead of section
6084 name to detect if object is in PROGMEM.
6085 (avr_asm_named_section): Set section name prefix for objects in
6086 PROGMEM.
6087
877cdec9 60882011-09-12 Jakub Jelinek <jakub@redhat.com>
6089
6090 PR bootstrap/50352
6091 * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
6092 sprintf format string.
6093
1991698f 60942011-09-12 Richard Guenther <rguenther@suse.de>
6095
6096 PR tree-optimization/50343
6097 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
00c200f1 6098 that the reduction is over an SSA name before checking its definition.
1991698f 6099
2c44a2d2 61002011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
6101
6102 * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
6103 throughout file.
6104
b71d8fa0 61052011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
6106
6107 * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
6108 throughout file.
6109 * config/mips/sb1.md: Likewise.
6110 * config/mips/predicates.md: Replace (match_test "!...")
6111 with (not (match_test "..."))
6112 * config/mips/constraints.md: Likewise.
6113
af9b12a1 61142011-09-09 Andrew Stubbs <ams@codesourcery.com>
6115
6116 * config/arm/arm-cores.def (generic-armv7-a): New architecture.
6117 * config/arm/arm-tables.opt: Regenerate.
6118 * config/arm/arm-tune.md: Regenerate.
6119 * config/arm/arm.c (arm_file_start): Output .arch directive when
6120 user passes -mcpu=generic-*.
6121 (arm_issue_rate): Add genericv7a support.
6122 * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
6123 (ASM_CPU_SPEC): New define.
6124 * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
6125 * config/arm/semi.h (ASM_SPEC): Likewise.
6126 * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
6127 and -mtune=generic-*.
6128
a29b42f8 61292011-09-09 Richard Guenther <rguenther@suse.de>
6130
6131 PR tree-optimization/50328
6132 * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
6133 constant or default-def operand.
6134
377bd225 61352011-09-09 Richard Guenther <rguenther@suse.de>
6136
6137 * tree-ssa-pre.c (create_expression_by_pieces): Fold the
6138 last statement.
6139
50aacf4c 61402011-09-09 Richard Guenther <rguenther@suse.de>
6141
6142 * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
6143 instead of a statement.
6144 * gimple-fold.c (fold_stmt_inplace): Likewise.
6145 * sese.c (graphite_copy_stmts_from_block): Adjust.
6146 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
6147 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
6148 fold_stmt.
6149 (forward_propagate_addr_into_variable_array_index): Likewise.
6150 (forward_propagate_addr_expr_1): adjust.
6151 (associate_plusminus): Likewise.
6152 (ssa_forward_propagate_and_combine): Likewise.
6153 * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
6154 (execute_cse_reciprocals): Likewise.
6155 * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
6156
35c2a6c6 61572011-09-09 Nick Clifton <nickc@redhat.com>
6158
6159 * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
6160 Return a positive value to indicate that the bits at the
6161 bottom of the register should be cleared.
6162
f3f02af0 61632011-09-09 Richard Guenther <rguenther@suse.de>
6164
6165 * tree-ssa-operands.c (swap_tree_operands): Always adjust
6166 existing operand positions.
6167
32246fd4 61682011-09-09 Richard Guenther <rguenther@suse.de>
6169
6170 PR middle-end/50333
6171 * tree-data-ref.c (split_constant_offset): Do not try to handle
6172 ternary ops.
6173
d5a3bb10 61742011-09-08 Andrew Stubbs <ams@codesourcery.com>
6175
6176 PR tree-optimization/50318
6177 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
6178 typo in use of mult_rhs1 and mult_rhs2.
6179
67f11d7a 61802011-09-08 Uros Bizjak <ubizjak@gmail.com>
6181
6182 * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
6183 (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
6184
61309563 61852011-09-08 Bernd Schmidt <bernds@codesourcery.com>
6186
6187 * config/arm/arm.md (push_multi): Emit predicates.
6188 (push_fp_multi): Likewise.
6189 * config/arm/arm.c (vfp_output_fstmd): Likewise.
6190
a4e3ffad 61912011-09-08 Dodji Seketeli <dodji@redhat.com>
6192
6193 PR c++/33255 - Support -Wunused-local-typedefs warning
6194 * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
67f11d7a 6195 (pushdecl): Use the new record_locally_defined_typedef.
6196 (store_parm_decls): Allocate cfun->language.
6197 (finish_function): Use the new maybe_warn_unused_local_typedefs,
6198 and free cfun->language.
6199 (c_push_function_context): Allocate cfun->language here only if needed.
6200 (c_pop_function_context): Likewise, mark cfun->language
6201 for collection only when it should be done.
6202 * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
6203 * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
6204 maybe_record_local_typedef_use.
a4e3ffad 6205 * doc/invoke.texi: Update documentation for
6206 -Wunused-local-typedefs.
6207
9c7fd334 62082011-09-08 Enkovich Ilya <ilya.enkovich@intel.com>
6209
6210 * config/i386/i386-protos.h (ix86_lea_outperforms): New.
6211 (ix86_avoid_lea_for_add): Likewise.
6212 (ix86_avoid_lea_for_addr): Likewise.
6213 (ix86_split_lea_for_addr): Likewise.
6214
6215 * config/i386/i386.c (LEA_MAX_STALL): New.
6216 (increase_distance): Likewise.
6217 (insn_defines_reg): Likewise.
6218 (insn_uses_reg_mem): Likewise.
6219 (distance_non_agu_define_in_bb): Likewise.
6220 (distance_agu_use_in_bb): Likewise.
6221 (ix86_lea_outperforms): Likewise.
6222 (ix86_ok_to_clobber_flags): Likewise.
6223 (ix86_avoid_lea_for_add): Likewise.
6224 (ix86_avoid_lea_for_addr): Likewise.
6225 (ix86_split_lea_for_addr): Likewise.
6226 (distance_non_agu_define): Search in pred BBs added.
6227 (distance_agu_use): Search in succ BBs added.
6228 (IX86_LEA_PRIORITY): Value changed from 2 to 0.
6229 (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
6230 (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
6231
6232 * config/i386/i386.md: Split added to transform non destructive
6233 add into move and add.
6234 (lea_1): transformed into insn_and_split to avoid AGU stalls.
6235 (lea<mode>_2): Likewise.
6236
17c5f86d 62372011-09-08 Martin Jambor <mjambor@suse.cz>
6238
6239 PR tree-optimization/50287
6240 * ipa-split.c (split_function): Do not create SSA names for
6241 non-gimple-registers.
6242
cac1a11f 62432011-09-08 Richard Guenther <rguenther@suse.de>
6244
6245 PR tree-optimization/19831
6246 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
6247 skip builtins with vdefs that do not really store something.
6248 (propagate_necessity): For calls to free that we can associate
6249 with an allocation function do not mark the freed pointer
6250 definition necessary.
6251 (eliminate_unnecessary_stmts): Remove a call to free if
6252 the associated call to an allocation function is not necessary.
6253
a3084c6b 62542011-09-08 Richard Guenther <rguenther@suse.de>
6255
6256 PR tree-optimization/19831
6257 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
6258 allocation functions as necessary.
6259
05171267 62602011-09-08 Iain Sandoe <iains@gcc.gnu.org>
6261
67f11d7a 6262 * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
6263 cut from ...
6264 (darwin_default_min_version): Amended to provide defaults
05171267 6265 for the cross directory case.
6266 (darwin_driver_init): call darwin_default_min_version unconditionally.
6267 * config/darwin.h (DEF_MIN_OSX_VERSION): New.
6268 * config/darwin9.h: Likewise.
6269 * config/darwin10.h: Likewise.
6270 * config/rs6000/darwin7.h: Likewise.
6271
f05fb3e8 62722011-09-08 Jakub Jelinek <jakub@redhat.com>
6273
6274 PR target/50310
6275 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
6276 code early if TARGET_AVX.
6277 (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
6278
28f914e9 62792011-09-07 Jakub Jelinek <jakub@redhat.com>
6280
6281 * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
6282 duplicates.
6283
6284 PR target/50310
6285 * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
6286 "mode" attribute computation.
6287
31adcf56 62882011-09-07 Bernd Schmidt <bernds@codesourcery.com>
6289
6290 * regrename.c (struct du_head): Make nregs signed.
6291 (closed_chains): Remove.
6292 (create_new_chain): Return the new chain.
6293 (chain_from_id): New static function.
6294 (dump_def_use_chain): Change argument to be an int, indicating
6295 the first ID to print. All callers changed.
6296 (merge_overlapping_regs): Use chain_from_id. Assert that
6297 chains don't conflict with themselves.
6298 (rename_chains): Take no argument. Iterate over id_to_chain
67f11d7a 6299 rather to find chains to rename. Clear tick before the main loop.
31adcf56 6300 (struct incoming_reg_info): New struct.
6301 (struct bb_rename_info): New struct.
6302 (init_rename_info, set_incoming_from_chain, merge_chains): New
6303 static functions.
6304 (regrename_analyze): New static function, broken out of
6305 regrename_optimize. Record and make use of open chain information
6306 at basic block boundaries, and merge chains where possible.
6307 (scan_rtx_reg): Make this_nregs signed. Don't update
6308 closed_chains.
6309 (build_def_use): Return a bool to indicate success. All callers
6310 changed. Don't initialize global data here.
6311 (regrename_optimize): Move most code out of here into
6312 regrename_analyze.
6313 * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
6314 range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
6315 static inline functions.
6316 * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
6317
4e018137 6318 * bb-reorder.c (insert_section_boundary_note): Don't check
6319 optimize_function_for_speed_p.
6320 (gate_handle_partition_blocks): Do it here instead.
6321 (gate_handle_reorder_blocks): Move preliminary checks here ...
6322 (rest_of_handle_reorder_blocks): ... from here.
6323
c8fc6b84 63242011-09-07 Martin Jambor <mjambor@suse.cz>
6325
6326 PR middle-end/50301
6327 * ipa-cp.c (find_more_values_for_callers_subset): Check jump
6328 function index bounds.
6329 (perhaps_add_new_callers): Likewise.
6330
c746e7c1 63312011-09-07 Martin Jambor <mjambor@suse.cz>
6332
6333 PR tree-optimization/49911
6334 * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
6335 enumerations to the corresponding plain integer type.
6336
56db02b2 63372011-09-07 Richard Guenther <rguenther@suse.de>
6338
6339 PR tree-optimization/50319
6340 * tree-if-conv.c (set_bb_predicate): Assert we only set
6341 canonical predicates.
6342 (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR
6343 around canonical predicates.
6344 (predicate_bbs): Do not re-gimplify already canonical
6345 predicates. Properly unshare them though.
6346 (find_phi_replacement_condition): Simplify.
6347
23628a13 63482011-09-07 Richard Sandiford <richard.sandiford@linaro.org>
6349
6350 PR target/49030
6351 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
6352 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
6353 reusing the old code from get_arm_condition_code. Return ARM_NV
6354 for invalid comparison codes.
6355 (get_arm_condition_code): Redefine in terms of
6356 maybe_get_arm_condition_code.
6357 * config/arm/predicates.md (arm_comparison_operator): Use
6358 maybe_get_arm_condition_code.
6359
10a6edd6 63602011-09-07 Richard Guenther <rguenther@suse.de>
6361
6362 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6363 Canonicalize negated predicates by swapping edges.
6364 (forward_propagate_into_cond): Likewise.
6365
cd22a796 63662011-09-07 Richard Guenther <rguenther@suse.de>
6367
6368 PR tree-optimization/50213
6369 * tree-flow.h (simple_iv_increment_p): Declare.
6370 * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle
6371 POINTER_PLUS_EXPR.
6372 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
6373 not propagate simple IV counter increments.
6374
bdcd4697 63752011-09-07 Eric Botcazou <ebotcazou@adacore.com>
6376 Iain Sandoe <iains@gcc.gnu.org>
6377
6378 * config/rs6000/rs6000.c (compute_save_world_info): Test
6379 cfun->has_nonlocal_label to determine if the out-of-line save
6380 world call may be used.
6381
bd2b2481 63822011-09-07 Nick Clifton <nickc@redhat.com>
6383
6384 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
6385 label on the parallel part of the insn.
6386
ce987077 63872011-09-07 Jakub Jelinek <jakub@redhat.com>
6388
6389 PR debug/50191
6390 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
6391 avoid_constant_pool_reference first instead of last.
6392
55ca45ec 63932011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com>
6394
6395 * doc/configfiles.texi (Configuration Files): Update documentation
6396 about tm_p.h and remove FIXME comment.
6397
a9d7b961 63982011-09-06 Uros Bizjak <ubizjak@gmail.com>
6399
6400 * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
6401 (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
6402
2c67d00c 64032011-09-06 Iain Sandoe <iains@gcc.gnu.org>
6404
6405 * config/darwin10.h Remove duplicate LIB_SPEC.
6406
5b1c765d 64072011-09-06 Enkovich Ilya <ilya.enkovich@intel.com>
6408
6409 PR middle-end/44382
6410 * target.def (reassociation_width): New hook.
6411
6412 * doc/tm.texi.in (reassociation_width): Likewise.
6413
6414 * doc/tm.texi (reassociation_width): Likewise.
6415
6416 * doc/invoke.texi (tree-reassoc-width): New param documented.
6417
6418 * hooks.h (hook_int_uint_mode_1): New default hook.
6419
6420 * hooks.c (hook_int_uint_mode_1): Likewise.
6421
6422 * config/i386/i386.h (ix86_tune_indices): Add
67f11d7a 6423 X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
5b1c765d 6424
6425 (TARGET_REASSOC_INT_TO_PARALLEL): New.
6426 (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
6427
6428 * config/i386/i386.c (initial_ix86_tune_features): Add
67f11d7a 6429 X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
5b1c765d 6430
67f11d7a 6431 (ix86_reassociation_width): New function.
5b1c765d 6432
6433 * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
6434
6435 * tree-ssa-reassoc.c (get_required_cycles): New function.
6436 (get_reassociation_width): Likewise.
6437 (swap_ops_for_binary_stmt): Likewise.
6438 (rewrite_expr_tree_parallel): Likewise.
6439
67f11d7a 6440 (rewrite_expr_tree): Refactored. Part of code moved into
5b1c765d 6441 swap_ops_for_binary_stmt.
6442
67f11d7a 6443 (reassociate_bb): Now checks reassociation width to be used and
6444 call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
5b1c765d 6445
9d17b4a8 64462011-09-06 Richard Guenther <rguenther@suse.de>
6447
6448 PR tree-optimization/47025
6449 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
6450 uses nothing.
6451 (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
6452 BUILT_IN_FREE.
6453 (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
6454 definitely points to.
6455 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6456 BUILT_IN_VA_START doesn't let its va_list argument escape.
6457 * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
6458 not make any previous stores necessary.
6459
c8d92fc1 64602011-09-06 Martin Jambor <mjambor@suse.cz>
6461
6462 * ipa-inline.h (struct inline_summary): Move versionable flag...
6463 * cgraph.h (struct cgraph_local_info): ...here
6464 * ipa-cp.c (determine_versionability): Use the new versionable flag.
6465 (determine_versionability): Likewise.
6466 (ipcp_versionable_function_p): Likewise.
6467 (ipcp_generate_summary): Likewise.
6468 * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
6469 versionable flag.
6470 (compute_inline_parameters): Do not clear the versionable flag.
6471 (inline_read_section): Do not stream the versionable flag.
6472 (inline_write_summary): Likewise.
6473 * lto-cgraph.c (lto_output_node): Stream the versionable flag.
6474 (input_overwrite_node): Likewise.
6475
77d62cb7 64762011-09-06 Richard Guenther <rguenther@suse.de>
6477
6478 PR tree-optimization/48149
6479 * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug.
6480 (vn_valueize): Move earlier.
6481 (valueize_expr): Use vn_valueize.
6482 (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
6483 operands.
6484 (simplify_unary_expression): Simplify.
6485
7384c678 64862011-09-06 Richard Guenther <rguenther@suse.de>
6487
6488 PR tree-optimization/48317
6489 * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
6490 trailing array.
6491 (sizeof_vn_nary_op): New inline function.
6492 (vn_nary_op_lookup_pieces): Adjust.
6493 (vn_nary_op_insert_pieces): Likewise.
6494 * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
6495 (init_vn_nary_op_from_pieces): Adjust signature. Deal with
6496 any number of operands.
6497 (vn_nary_length_from_stmt): New function.
6498 (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
6499 (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
6500 sized temporary.
6501 (vn_nary_op_lookup): Likewise.
6502 (vn_nary_op_lookup_stmt): Likewise.
6503 (vn_nary_op_insert_into): Likewise.
6504 (vn_nary_op_insert_stmt): Likewise.
6505 (visit_use): Handle CONSTRUCTOR as nary.
6506 * tree-ssa-pre.c (phi_translate_1): Adjust.
6507 (create_expression_by_pieces): Likewise.
6508 (compute_avail): Likewise.
6509
859baaaf 65102011-09-06 Ira Rosen <ira.rosen@linaro.org>
6511
6512 * config/arm/arm.c (arm_preferred_simd_mode): Check
6513 TARGET_NEON_VECTORIZE_DOUBLE instead of
6514 TARGET_NEON_VECTORIZE_QUAD.
6515 (arm_autovectorize_vector_sizes): Likewise.
6516 * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
6517 mask of mvectorize-with-neon-double. Add RejectNegative.
6518 (mvectorize-with-neon-double): New.
6519
7aa07231 65202011-09-06 Richard Guenther <rguenther@suse.de>
6521
67f11d7a 6522 * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
7aa07231 6523
1c7a1755 65242011-09-06 Tom de Vries <tom@codesourcery.com>
6525
6526 * recog.c (asm_labels_ok): New function.
6527 (check_asm_operands): Use asm_labels_ok.
6528
9d81057b 65292011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
6530
6531 PR target/49606
6532 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
6533 (PMODE_INSN): New macro.
6534 * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
6535 (mips_got_load, mips_expand_synci_loop): Likewise.
6536 (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
6537 cprestore patterns.
6538 (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode
6539 copygp_mips16 patterns.
6540 (mips_expand_prologue): Handle SImode and DImode potential_cprestore
6541 and use_cprestore patterns.
6542 (mips_override_options): Check for incompatible -mabi and -mlong
6543 combinations.
6544 * config/mips/mips.md (unspec_got<mode>): Rename to...
6545 (unspec_got_<mode>): ...this.
6546 (copygp_mips16): Use the Pmode iterator.
6547 (potential_cprestore, cprestore, use_cprestore): Likewise.
6548 (clear_cache, indirect_jump): Use PMODE_INSN.
6549 (indirect_jump<mode>): Rename to...
6550 (indirect_jump_<mode>): ...this.
6551 (tablejump): Use PMODE_INSN.
6552 (tablejump<mode>): Rename to...
6553 (tablejump_<mode>): ...this.
6554 (exception_receiver): Handle restore_gp_si and restore_gp_di.
6555 (restore_gp): Use the Pmode iterator.
6556 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
6557 PMODE_INSN.
6558
c8632212 65592011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
6560
6561 * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
6562 Fix the type of the BIT_AND_EXPR.
6563
c708d31a 65642011-09-05 David S. Miller <davem@davemloft.net>
6565
6566 * config.host: Add driver-sparc.o and sparc/x-sparc on
6567 native sparc*-*-linux* builds.
6568 * config/sparc/driver-sparc.c: Correct Linux strings.
6569 * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
6570 * config/sparc/linux64.h: Likewise.
6571 * doc/invoke.texi: Document that Linux also supports
6572 -mcpu=native and -mtune=native on sparc.
6573
3407e51d 6574 * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
6575 PROCESSOR_NIAGARA4): New.
6576 * config/sparc/sparc.opt: Handle new processor types.
6577 * config/sparc/sparc.md: Add to "cpu" attribute.
6578 * config/sparc/sparc.h (TARGET_CPU_niagara3,
6579 TARGET_CPU_niagara4): New, treat as niagara2.
67f11d7a 6580 * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
3407e51d 6581 * config/sparc/sol2.h: Likewise.
67f11d7a 6582 * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
3407e51d 6583 * config/sparc/sparc.c (sparc_option_override): Add
6584 niagara3 and niagara4 handling.
6585 (sparc32_initialize_trampoline): Likewise.
6586 (sparc64_initialize_trampoline): Likewise.
6587 (sparc_use_sched_lookahead): Likewise.
6588 (sparc_issue_rate): Likewise.
6589 (sparc_register_move_cost): Likewise.
6590 * config/sparc/driver-sparc.c (cpu_names): Use niagara3
6591 and niagara4 as appropriate.
6592 * doc/invoke.texi: Document new processor types.
b18dbf25 6593 * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
6594 and --with-tune options.
3407e51d 6595
ea457188 6596 * config/sparc/sol2-64.h: Move ...
6597 * config/sparc/default-64.h: ... to here. Update comment.
6598 * config.gcc: Update Solaris sparc to use default-64.h, also
6599 prefix this header into the list on sparc64-*-linux.
6600 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
6601 TARGET_64BIT_DEFAULT is defined. Remove commented out reference
6602 to MASK_HARD_QUAD.
6603
3d83581f 66042011-09-05 Georg-Johann Lay <avr@gjlay.de>
6605
6606 PR target/50289
6607 * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
6608 that contain global register variable.
6609
de215c53 66102011-09-05 Richard Guenther <rguenther@suse.de>
6611
6612 * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
6613
7542c3b4 66142011-09-05 Richard Guenther <rguenther@suse.de>
6615
6616 * stor-layout.c (layout_type): Use size_binop for array size
6617 calculations.
6618
c3f18f18 66192011-09-05 Georg-Johann Lay <avr@gjlay.de>
c708d31a 6620
c3f18f18 6621 * config/avr/avr.h (progmem_section): Remove Declaration.
6622 * config/avr/avr.c (progmem_section): Make static and rename to
6623 progmem_swtable_section.
6624 (avr_output_addr_vec_elt): No need to switch sections.
6625 (avr_asm_init_sections): Use output_section_asm_op as section
6626 callback for progmem_swtable_section.
6627 (avr_output_progmem_section_asm_op): Remove Function.
6628 (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
6629 (avr_asm_function_rodata_section): New static Function.
6630 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
6631 alignment 2**1 for jump tables.
6632
b213bda0 66332011-09-04 Jan Hubicka <jh@suse.cz>
6634
6635 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
6636 parameter is SSA name.
6637
b649d922 66382011-09-04 Richard Guenther <rguenther@suse.de>
6639
6640 Revert
6641 2011-08-31 Richard Guenther <rguenther@suse.de>
6642
6643 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
6644 special-casing.
6645
42320dcd 66462011-09-04 Iain Sandoe <iains@gcc.gnu.org>
6647
6648 PR debug/49901
6649 * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
6650
97594f7b 66512011-09-04 Jakub Jelinek <jakub@redhat.com>
6652 Ira Rosen <ira.rosen@linaro.org>
6653
6654 PR tree-optimization/50208
6655 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
6656 argument. Check that def_stmt is inside the loop.
6657 (vect_recog_widen_mult_pattern): Update calls to
6658 vect_handle_widen_mult_by_cons.
6659 (vect_operation_fits_smaller_type): Check that def_stmt is
6660 inside the loop.
6661
87a658a6 66622011-09-04 Ira Rosen <ira.rosen@linaro.org>
6663
6664 * tree-vectorizer.c (vect_print_dump_info): Print line
6665 number when dumping to a file.
6666 (vectorize_loops): Add new messages to dump file.
6667
b22832dc 66682011-09-03 Martin Jambor <mjambor@suse.cz>
6669
6670 * ipa-prop.h (ipa_jump_func_t): New typedef.
6671 (struct ipa_edge_args): Removed field argument_count, field
6672 jump_functions turned into a vector.
6673 (ipa_set_cs_argument_count): Removed.
6674 (ipa_get_cs_argument_count): Updated to work on vectors.
6675 (ipa_get_ith_jump_func): Likewise.
6676 * ipa-prop.c (ipa_count_arguments): Removed.
6677 (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
6678 jump functions. Update caller.
6679 (compute_pass_through_member_ptrs): Likewise.
6680 (compute_cst_member_ptr_arguments): Likewise.
6681 (ipa_compute_jump_functions_for_edge): Get number of arguments from
6682 the statement, allocate vector.
6683 (ipa_compute_jump_functions): Do not call ipa_count_arguments.
6684 (duplicate_ipa_jump_func_array): Removed.
6685 (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
6686 (ipa_read_node_info): Allocate vector.
6687
fed903e9 66882011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6689
72f09c1c 6690 PR middle-end/50232
fed903e9 6691 * config/pa/pa.md (return): Define "return" insn pattern.
6692 (epilogue): Use it when no epilogue is needed.
6693 * config/pa/pa.c (pa_can_use_return_insn): New function.
6694 * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
6695
0a4cd568 66962011-09-03 Eric Botcazou <ebotcazou@adacore.com>
6697
6698 * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
6699 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
6700 Force at least BITS_PER_UNIT alignment on the new variable.
6701
634b1f85 67022011-09-02 Gary Funck <gary@intrepid.com>
6703
6704 * opts.c (print_specific_help): Fix off-by-one compare in
6705 assertion check.
6706 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
6707 CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
6708 Increase by +5 to allow for more languages.
6709 * optc-gen.awk: Generate #if that ensures that the number of
6710 languages is within the implementation-defined limit.
6711
bc83f587 67122011-09-02 Michael Matz <matz@suse.de>
6713
6714 PR middle-end/50260
6715 * ipa-split.c (split_function): Call add_referenced_var.
6716
6717 * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
6718 (cond_if_else_store_replacement_1): Ditto.
6719 * tree-ssa-pre.c (get_representative_for): Ditto.
6720 (create_expression_by_pieces): Ditto.
6721 (insert_into_preds_of_block): Ditto.
6722 * tree-sra.c (create_access_replacement): Ditto.
6723 (get_replaced_param_substitute): Ditto.
6724
87ded687 67252011-09-02 Bernd Schmidt <bernds@codesourcery.com>
6726
6727 * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
6728 automata_options.
6729 (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
6730 (l1w, s1w, l2w, s2w): Define in the main automaton.
6731 (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
6732 units.
6733 * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
6734 (c6x_unit_names): Add the new units.
6735 (c6x_unit_codes): New static array.
6736 (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
6737 UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
6738 UNIT_QID_SIDE_OFFSET): New macros.
6739 (RESERVATION_S2): Adjust value.
6740 (c6x_option_override): Compute c6x_unit_codes.
6741 (assign_reservations): Take the unit_mask of the last instruction
6742 into account. Detect floating point reservations by looking for
6743 the new units. Don't assign reservations if the field is already
6744 nonzero.
6745 (struct c6x_sched_context): Add member prev_cycle_state_ctx.
6746 (init_sched_state): Initialize it.
6747 (c6x_clear_sched_context): Free it.
6748 (insn_set_clock): Clear reservation.
6749 (prev_cycle_state): New static variable.
6750 (c6x_init_sched_context): Save it.
6751 (c6x_sched_init): Allocate space for it and clear it.
6752 (c6x_sched_dfa_pre_cycle_insn): New static function.
6753 (c6x_dfa_new_cycle): Save state at the start of a new cycle.
6754 (c6x_variable_issue): Only record units in the unit_mask that
6755 were not set at the start of the cycle.
6756 (c6x_variable_issue): Compute and store the unit_mask from the
6757 current state.
6758 (reorg_split_calls): Ensure the new information remains correct.
6759 (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
6760 TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
6761 * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
6762 * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
6763 Add special reservations.
6764 * config/c6x/c6x-sched.md: Regenerate.
6765
03f99d3c 67662011-09-02 Martin Jambor <mjambor@suse.cz>
6767
6768 * ipa-prop.h (ipa_node_params): Removed fields
6769 called_with_var_arguments and node_versionable.
6770 (ipa_set_called_with_variable_arg): Removed.
6771 (ipa_is_called_with_var_arguments): Likewise.
6772 * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
6773 (determine_versionability): Do not check for type attributes and va
6774 builtins. Record versionability into inline summary.
6775 (initialize_node_lattices): Do not check
6776 ipa_is_called_with_var_arguments.
6777 (propagate_constants_accross_call): Likewise, ignore arguments we do
6778 not have PARM_DECLs for, set variable flag for parameters that were
6779 not passed a value.
6780 (create_specialized_node): Dump info that we cannot change signature.
6781 * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
6782 number of arguments.
6783 (ipa_make_edge_direct_to_target): Likewise.
6784 (ipa_update_after_lto_read): Likewise.
6785 (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
6786 * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
6787 they were remapped.
6788
d6b19f6b 67892011-09-02 Richard Guenther <rguenther@suse.de>
6790
6791 PR tree-optimization/27460
6792 PR middle-end/29269
6793 * doc/md.texi (vcond): Document.
6794 * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
6795 optab with two modes.
6796 * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
6797 (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
6798 (vcond_optab): Adjust.
6799 (vcondu_optab): Likewise.
6800 (expand_vec_cond_expr_p): Adjust prototype.
6801 * optabs.c (get_vcond_icode): Adjust.
6802 (expand_vec_cond_expr_p): Likewise.
6803 (expand_vec_cond_expr): Likewise.
6804 * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
6805 vector type.
6806 (vectorizable_condition): Allow differing types for comparison
6807 and result.
6808 * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
6809 for the comparison.
6810 * config/i386/sse.md (vcond<mode>): Split to
6811 vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
6812 vcond<V_128:mode><VI124_128:mode> and
6813 vcondu<V_128:mode><VI124_128:mode>.
6814 (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
6815 (vconduv2di): Likewise.
6816 * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
6817 (vcondu<mode>): Likewise.
6818 * config/ia64/vect.md (vcond<mode>): Likewise.
6819 (vcondu<mode>): Likewise.
6820 (vcondv2sf): Likewise.
6821 * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
6822 * config/rs6000/paired.md (vcondv2sf): Likewise.
6823 * config/rs6000/vector.md (vcond<mode>): Likewise.
6824 (vcondu<mode>): Likewise.
6825 * config/spu/spu.md (vcond<mode>): Likewise.
6826 (vcondu<mode>): Likewise.
6827
d066d69a 68282011-09-02 Richard Guenther <rguenther@suse.de>
6829
6830 * pretty-print.h (pp_unsigned_wide_integer): New.
6831 * tree-pretty-print.c (dump_generic_node): Print unsigned
6832 host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
6833
d646a3c1 68342011-09-02 Richard Sandiford <richard.sandiford@linaro.org>
6835
6836 PR target/49987
6837 * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
6838 valid CONST_VECTOR operands.
6839 (rs6000_expand_vector_init): Likewise.
6840
d4e80e2b 68412011-09-02 Martin Jambor <mjambor@suse.cz>
6842
6843 * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
6844 * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
6845 BINFO_VTABLE. Parameter delta removed, all callers updated.
6846 * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
6847 BINFO_VTABLE.
6848 * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
6849 all calls.
6850 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
6851 handling of thunk_delta.
6852 * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
6853 (devirtualization_time_bonus): Do not handle thunk deltas.
6854 (ipcp_discover_new_direct_edges): Likewise.
6855 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
6856 (try_make_edge_direct_simple_call): Likewise.
6857 (try_make_edge_direct_virtual_call): Likewise.
6858 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
6859 parameter set as unused.
6860 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
6861 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
6862 parameter set as unused.
6863 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
6864 (input_edge_opt_summary): Likewise.
6865 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
6866 BINFO_VIRTUALS at all.
6867 * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
6868
6e93d308 68692011-09-02 Richard Guenther <rguenther@suse.de>
6870
a9d7b961 6871 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
6872 (ccp_fold_stmt): Continue replacing args when folding alloca fails.
6e93d308 6873
8a2caf10 68742011-08-31 Richard Guenther <rguenther@suse.de>
6875
6876 * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
6877 handling here, from ...
6878 (expand_expr_real_1): ... here.
6879 * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
6880 and VEC_COND_EXPR.
6881 * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
6882 a GIMPLE_TERNARY_RHS.
6883 * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
6884 and VEC_COND_EXPR here ...
6885 (verify_gimple_assign_single): ... not here.
6886 * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
6887 * tree-object-size.c (cond_expr_object_size): Adjust.
6888 (collect_object_sizes_for): Likewise.
67f11d7a 6889 * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
a9d7b961 6890 * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
8a2caf10 6891 (ssa_forward_propagate_and_combine): Adjust.
6892 * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
6893 as ternary.
6894 * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
6895 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
6896 * tree-vect-stmt.c (vectorizable_condition): Likewise.
6897 * tree-vrp.c (extract_range_from_cond_expr): Likewise.
6898 (extract_range_from_assignment): Likewise.
6899
6be3efec 69002011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
6901
6902 * config/i386/i386.md: Use (match_test ...) for attribute tests.
6903 * config/i386/mmx.md: Likewise.
6904 * config/i386/sse.md: Likewise.
6905 * config/i386/predicates.md (call_insn_operand): Use
6906 (not (match_test "...")) instead of (match_test "!...")
6907 * config/i386/constraints.md (w): Likewise.
6908
26173369 69092011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
6910
6911 * doc/md.texi: Describe the use of match_tests in attribute tests.
6912 * rtl.def (MATCH_TEST): Update commentary.
6913 * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
6914 (write_test_expr, walk_attr_value): Handle MATCH_TEST.
6915
7fb220f3 69162011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
6917
6918 * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
6919 (attr_string): Use copy_md_ptr_loc.
6920
982ffd8d 69212011-08-31 Martin Jambor <mjambor@suse.cz>
6922
6923 PR middle-end/49886
6924 * ipa-inline-analysis.c (compute_inline_parameters): Set
6925 can_change_signature of noes with typde attributes.
6926 * ipa-split.c (split_function): Do not skip any arguments if
6927 can_change_signature is set.
6928
0a31490e 69292011-08-31 Martin Jambor <mjambor@suse.cz>
6930
6931 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
6932 check removed.
6933
c6b43862 69342011-08-31 Richard Guenther <rguenther@suse.de>
6935
6936 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
6937 special-casing.
6938
73060079 69392011-08-31 Marc Glisse <marc.glisse@inria.fr>
6940
6941 * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
6942
9a65cc0a 69432011-08-31 Tom de Vries <tom@codesourcery.com>
6944
6945 PR middle-end/43513
6946 * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
6947 * tree-ssa-ccp.c (params.h): Include.
6948 (fold_builtin_alloca_for_var): New function.
6949 (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
6950
92e5abd5 69512011-08-30 Uros Bizjak <ubizjak@gmail.com>
6952
6953 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
6954 Handle FMA option.
6955
b83afca1 69562011-08-30 Andrew Stubbs <ams@codesourcery.com>
6957
6958 * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
6959 b3 and b4 unsigned.
6960
17554eb5 69612011-08-30 Andrew Stubbs <ams@codesourcery.com>
6962
6963 * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
6964 when code is SET.
6965
704d7315 69662011-08-30 Richard Guenther <rguenther@suse.de>
6967
6968 PR middle-end/48571
6969 * gimple.h (maybe_fold_offset_to_address): Remove.
6970 (maybe_fold_offset_to_reference): Likewise.
6971 (maybe_fold_stmt_addition): Likewise.
6972 (may_propagate_address_into_dereference): Likewise.
6973 * tree-inline.c (remap_gimple_op_r): Do not reconstruct
6974 array references.
6975 * gimple-fold.c (canonicalize_constructor_val): Likewise.
6976 Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
6977 addresses instead.
6978 (may_propagate_address_into_dereference): Remove.
6979 (maybe_fold_offset_to_array_ref): Likewise.
6980 (maybe_fold_offset_to_reference): Likewise.
6981 (maybe_fold_offset_to_address): Likewise.
6982 (maybe_fold_stmt_addition): Likewise.
6983 (fold_gimple_assign): Do not reconstruct array references but
6984 instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
6985 MEM_REF addresses.
6986 (gimple_fold_stmt_to_constant_1): Likewise.
6987 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
6988 * gimplify.c (gimplify_conversion): Likewise.
6989 (gimplify_expr): Likewise.
6990
65463cb8 69912011-08-30 Ilya Tocar <ilya.tocar@intel.com>
6992
6993 * config/i386/fmaintrin.h: New.
6994 * config.gcc: Add fmaintrin.h.
6995 * config/i386/i386.c
6996 (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
6997 <IX86_BUILTIN_VFMADDSD3>: Likewise.
6998 * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
6999 (*fmai_fmadd_<mode>): Likewise.
7000 (*fmai_fmsub_<mode>): Likewise.
7001 (*fmai_fnmadd_<mode>): Likewise.
7002 (*fmai_fnmsub_<mode>): Likewise.
7003 * config/i386/immintrin.h: Add fmaintrin.h.
7004
172b69d8 70052011-08-30 Bernd Schmidt <bernds@codesourcery.com>
7006
7007 * genautomata.c (NO_COMB_OPTION): New macro.
7008 (no_comb_flag): New static variable.
7009 (gen_automata_option): Handle NO_COMB_OPTION.
7010 (comb_vect_p): False if no_comb_flag.
7011 (add_vect): Move computation of min/max values. Return early if
7012 no_comb_flag.
7013 * doc/md.texi (automata_option): Document no-comb-vect.
7014
ee2bfc04 7015 * config/i386/i386.c (get_pc_thunk_name): Change prefix to
7016 "__x86.get_pc_thunk".
7017
9f8fb9f2 7018 * bb-reorder.c (insert_section_boundary_note): Only do it if
7019 we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
7020
a30bbccf 70212011-08-30 Christian Bruel <christian.bruel@st.com>
7022
7023 * coverage.c (coverage_init): Check flag_branch_probabilities instead of
7024 flag_profile_use.
92e5abd5 7025
b8754c78 70262011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
7027
7028 * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
7029 to off. Document switch.
7030 * doc/invoke.texi (-msave-toc-indirect): Ditto.
7031
90590009 70322011-08-29 Jakub Jelinek <jakub@redhat.com>
7033
7034 * gthr-posix.h (__gthread_active_p): Do not use preprocessor
7035 conditionals and comments inside macro arguments.
7036
a9d7b961 70372011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
7038 Richard Guenther <rguenther@suse.de>
3a82f2b4 7039
7040 * tree.h (constant_boolean_node): Adjust prototype.
7041 * fold-const.c (fold_convert_loc): Move aggregate conversion
7042 leeway down.
7043 (constant_boolean_node): Make value parameter boolean, add
7044 vector type handling.
7045 (fold_unary_loc): Use constant_boolean_node.
7046 (fold_binary_loc): Preserve types properly when folding
7047 COMPLEX_EXPR <__real x, __imag x>.
7048 * gimplify.c (gimplify_expr): Handle vector comparison.
7049 * tree.def (EQ_EXPR, ...): Document behavior on vector typed
7050 comparison.
7051 * tree-cfg.c (verify_gimple_comparison): Verify vector typed
7052 comparisons.
7053
6d2a4bac 70542011-08-29 Jakub Jelinek <jakub@redhat.com>
7055
7056 PR middle-end/48722
7057 * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
7058 reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
7059 (verify_rtl_sharing): Likewise and verify_rtx_sharing
7060 in there too.
7061 (unshare_all_rtl_in_chain): For CALL_INSNs
7062 copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
7063
3048a5c0 70642011-08-29 Richard Guenther <rguenther@suse.de>
7065
7066 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
7067 on the built ADDR_EXPR.
7068
0b1ba96b 70692011-08-29 Jakub Jelinek <jakub@redhat.com>
7070
7071 PR debug/50215
7072 * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
7073 before adding ENTRY_VALUE to val->locs.
7074
613fe554 70752011-08-28 Mikael Pettersson <mikpe@it.uu.se>
7076
7077 PR bootstrap/50218
7078 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
7079 comp.
7080
9cb2517e 70812011-08-27 Bernd Schmidt <bernds@codesourcery.com>
7082
7083 * doc/rtl.texi (simple_return): Document.
7084 (parallel, PATTERN): Here too.
7085 * doc/md.texi (return): Mention it's allowed to expand to simple_return
7086 in some cases.
7087 (simple_return): Document standard pattern.
7088 * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
7089 * final.c (final_scan_insn): Use ANY_RETURN_P on body.
7090 * reorg.c (function_return_label, function_simple_return_label):
7091 New static variables, replacing...
7092 (end_of_function_label): ... this.
7093 (simplejump_or_return_p): New static function.
7094 (optimize_skip, steal_delay_list_from_fallthrough,
7095 fill_slots_from_thread): Use it.
7096 (relax_delay_slots): Likewise. Use ANY_RETURN_P on body.
7097 (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
7098 (find_end_label): Take a new arg which is one of the two return
7099 rtxs. Depending on which, set either function_return_label or
7100 function_simple_return_label. All callers changed.
7101 (make_return_insns): Make both kinds.
7102 (dbr_schedule): Adjust for two kinds of end labels.
7103 * function.c (emit_return_into_block): Set JUMP_LABEL properly.
7104 * genemit.c (gen_exp): Handle SIMPLE_RETURN.
7105 (gen_expand, gen_split): Use ANY_RETURN_P.
7106 * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
7107 * rtl.def (SIMPLE_RETURN): New code.
7108 * ifcvt.c (find_if_case_1): Be more careful about
7109 redirecting jumps to the EXIT_BLOCK.
7110 * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
7111 returnjump_p_1): Handle SIMPLE_RETURNs.
7112 * print-rtl.c (print_rtx): Likewise.
7113 * rtl.c (copy_rtx): Likewise.
7114 * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
7115 * combine.c (simplify_set): Likewise.
7116 * resource.c (find_dead_or_set_registers, mark_set_resources):
7117 Likewise.
7118 * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
7119 copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
7120 (init_emit_regs): Initialize simple_return_rtx.
7121 * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
7122 force_nonfallthru_and_redirect.
7123 * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
7124 (GR_SIMPLE_RETURN): New enum value.
7125 (simple_return_rtx): New macro.
7126 * basic-block.h (force_nonfallthru_and_redirect): Adjust
7127 declaration.
7128 * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
7129 argument. All callers changed. Be careful about what kinds of
7130 returnjumps to generate.
7131 * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
7132 ix86_pad_short_function): Likewise.
7133 * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
7134 of return.
7135 * config/mips/mips.md (any_return): New code_iterator.
7136 (optab): Add cases for return and simple_return.
7137 (return): Expand to a simple_return.
7138 (simple_return): New pattern.
7139 (*<optab>, *<optab>_internal for any_return): New patterns.
7140 (return_internal): Remove.
7141 * config/mips/mips.c (mips_expand_epilogue): Make the last insn
7142 a simple_return_internal.
7143
a3d5479a 71442011-08-27 Uros Bizjak <ubizjak@gmail.com>
7145
7146 * config/i386/sse.md (*absneg<mode>2): Fix split condition.
7147 (vec_extract_lo_<mode>): Prevent both operands in memory.
7148 (vec_extract_lo_v16hi): Ditto.
7149 (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
7150
71512011-08-27 Uros Bizjak <ubizjak@gmail.com>
7152
7153 * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
7154 (*sse2_mulv4si3): Ditto.
7155 (mulv2di3): Ditto.
7156 * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
7157 notes to REG_EQUAL.
7158
1c9cc6e6 71592011-08-27 Uros Bizjak <ubizjak@gmail.com>
7160
7161 PR target/50202
7162 * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
7163 when all outputs are unused.
a3d5479a 7164 (sse4_2_pcmpistr): Ditto.
1c9cc6e6 7165
b14927ea 71662011-08-26 Uros Bizjak <ubizjak@gmail.com>
7167
7168 * config/i386/i386.md (round<mode>2): New expander.
7169 * config/i386/i386.c (enum ix86_builtins): Add
7170 IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
7171 (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
7172 descriptions.
7173 (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
7174 (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
7175
d7106cac 71762011-08-26 Uros Bizjak <ubizjak@gmail.com>
7177
7178 PR middle-end/50083
7179 * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
7180 only when TARGET_C99_FUNCTIONS.
7181 <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
7182 <BUILT_IN_RINT{,F,L}>: Ditto.
7183
c56fba00 71842011-08-26 Michael Matz <matz@suse.de>
7185 Jakub Jelinek <jakub@redhat.com>
7186
7187 PR lto/50165
7188 * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
7189 don't call strlen twice, use memcpy.
7190
a2ef4824 71912011-08-26 H.J. Lu <hongjiu.lu@intel.com>
7192
7193 * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
7194 * config/i386/bmiintrin.h: Likewise.
7195 * config/i386/lzcntintrin.h: Likewise.
7196
7197 * config/i386/immintrin.h: Include <lzcntintrin.h>,
7198 <bmiintrin.h> and <bmi2intrin.h>.
7199
2522cb6f 72002011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7201
7202 PR target/50166
7203 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
7204 * configure: Regenerate.
7205
0902fd73 72062011-08-26 Jakub Jelinek <jakub@redhat.com>
7207
7208 PR c/50179
7209 * c-typeck.c (c_process_expr_stmt): Skip over nops and
7210 call mark_exp_read even if exprv is ADDR_EXPR.
7211
ab34dec8 72122011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
7213
7214 * df-problems.c (df_note_bb_compute): Pass uses rather than defs
7215 to df_set_dead_notes_for_mw.
7216
4e7b770d 72172011-08-26 Richard Guenther <rguenther@suse.de>
7218
7219 * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
7220
08748e8d 72212011-08-26 Zdenek Dvorak <ook@ucw.cz>
7222 Tom de Vries <tom@codesourcery.com>
7223
7224 * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
7225 (struct ivopts_data): Add loop_single_exit_p field.
7226 (niter_for_exit): Change parameter desc_p into return value. Return
7227 desc if desc->may_be_zero. Free desc if unused.
7228 (niter_for_single_dom_exit): Change return type.
7229 (find_induction_variables): Handle changed return type of
7230 niter_for_single_dom_exit. Dump may_be_zero.
7231 (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
7232 (set_use_iv_cost): Add and handle comp parameter.
7233 (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
7234 comp argument to set_use_iv_cost.
7235 (strip_wrap_conserving_type_conversions, expr_equal_p)
7236 (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
7237 (may_eliminate_iv): Add comp parameter. Handle new return type of
7238 niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt.
7239 (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
7240 and may_eliminate_iv.
7241 (rewrite_use_compare): Move call to iv_elimination_compare to ...
7242 (may_eliminate_iv): Here.
7243 (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
7244
ff2d70df 72452011-08-26 Tom de Vries <tom@codesourcery.com>
7246
7247 * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
7248 accessing TREE_TYPE.
7249
2ff91fec 72502011-08-26 Jiangning Liu <jiangning.liu@arm.com>
7251
d7106cac 7252 * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
7253 (*ior_scc_scc_cmp): Likewise
7254 (*and_scc_scc): Likewise.
7255 (*and_scc_scc_cmp): Likewise.
7256 (*and_scc_scc_nodom): Likewise.
7257 (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
2ff91fec 7258
3b23b4cc 72592011-08-26 Jakub Jelinek <jakub@redhat.com>
7260
7261 * rtlanal.c (nonzero_bits1): Handle CLRSB.
7262
f32d300e 72632011-08-26 Richard Guenther <rguenther@suse.de>
7264
7265 * expr.c (string_constant): Handle &MEM_REF.
7266
d5cbae34 72672011-08-26 Andrew Stubbs <ams@codesourcery.com>
7268
7269 * config/arm/arm.c (struct four_ints): New type.
7270 (count_insns_for_constant): Delete function.
7271 (find_best_start): Delete function.
7272 (optimal_immediate_sequence): New function.
7273 (optimal_immediate_sequence_1): New function.
7274 (arm_gen_constant): Move constant splitting code to
7275 optimal_immediate_sequence.
7276 Rewrite constant negation/invertion code.
7277
72782011-08-26 Andrew Stubbs <ams@codesourcery.com>
7279
7280 * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
7281 * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
7282 Remove prototype. Remove static function type.
7283 * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
7284 Add arch attribute.
7285 * config/arm/constraints.md (Pj, PJ): New constraints.
7286
9e01b0a7 72872011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7288
d7106cac 7289 * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
7290 ("cortex_a9_multiply_long"): New and use above. Handle all
9e01b0a7 7291 long multiply cases.
d7106cac 7292 ("cortex_a9_multiply"): Handle smmul and smmulr.
7293 ("cortex_a9_mac"): Handle smmla.
9e01b0a7 7294
40125f1c 72952011-08-25 Richard Henderson <rth@redhat.com>
7296
7297 PR 50132
7298 PR 49864
7299 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
7300 non-constant stack adjutment.
7301 * expr.c (find_args_size_adjust): Break out from ...
7302 (fixup_args_size_notes): ... here.
7303 * rtl.h (find_args_size_adjust): Declare.
7304
f30b3ad6 73052011-08-25 Uros Bizjak <ubizjak@gmail.com>
7306
7307 * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
7308 sse4 and sse4_noavx.
7309 (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
7310 (*pushdf_rex64): Change Y2 register constraint to x.
7311 (*movdf_internal_rex64): Ditto.
7312 (*zero_extendsidi2_rex64): Ditto.
7313 (*movdi_internal): Change Y2 register constraint to x
7314 and update "isa" attribute.
7315 (*pushdf): Ditto.
7316 (*movdf internal): Ditto.
7317 (zero_extendsidi2_1): Ditto.
7318 (*truncdfdf_mixed): Ditto.
7319 (*truncxfdf2_mixed): Ditto.
7320 * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
7321 register constraint to x.
7322 (*movv2sf_internal_rex64): Ditto.
7323 (*mov<mode>_internal): Change Y2 register constraint to x
7324 and add "isa" attribute.
7325 (*movv2sf_internal): Ditto.
7326 (*vec_extractv2si_1): Ditto.
7327 * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
7328 constraints to x and update "isa" attribute.
7329 (*vec_interleave_highv2df): Change Y3 registerconstraint
7330 to x and update "isa" attribute.
7331 (*vec_interleave_lowv2df): Ditto.
7332 (*vec_concatv2df): Change Y2 register constraint to x and
7333 update "isa" attribute.
7334 (sse2_loadld): Ditto.
7335 (*vec_extractv2di_1): Ditto.
7336 (*vec_dupv4si): Ditto.
7337 (*vec_dupv2di): Ditto.
7338 (*vec_concatv4si): Ditto.
7339 (vec_concatv2di): Ditto.
7340 * config/i386/constraints.md (Y2): Remove.
7341 (Y3): Ditto.
7342 (Y4): Ditto.
7343
92effe69 73442011-08-25 Bernd Schmidt <bernds@codesourcery.com>
7345
7346 * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
7347 dump_def_use_chain): Don't declare.
7348 (mark_conflict, create_new_chain): Move before users.
7349 (regrename_optimize): Move to near end of file.
7350
7d1feb0e 73512011-08-25 Georg-Johann Lay <avr@gjlay.de>
7352
7353 * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
7354 (secondary_input_reload_class): Remove Prototype.
7355 * config/avr/avr.c (byte_immediate_operand): Remove Function.
7356 * config/avr/avr.md (setmemhi): Use u8_operand.
7357 (strlenhi): Use const0_rtx for comparison.
7358 * config/avr/avr.h (avr_reg_order): Remove Declaration.
7359
7104fbe4 73602011-08-25 Georg-Johann Lay <avr@gjlay.de>
7361
7362 * config/avr/avr.c (reg_class_tab): Make local to
7363 avr_regno_reg_class. Return smallest register class available.
f30b3ad6 7364
53026b2c 73652011-08-25 Georg-Johann Lay <avr@gjlay.de>
92effe69 7366
53026b2c 7367 * config/avr/avr.c (STR_PREFIX_P): New Define.
7368 (avr_asm_declare_function_name): Use it.
7369 (avr_asm_named_section): Use it.
7370 (avr_section_type_flags): Use it.
7371
8043d8fb 73722011-08-25 Bernd Schmidt <bernds@codesourcery.com>
7373
7374 * doc/md.texi (automata_option): Document collapse-ndfa.
7375 * genautomata.c (COLLAPSE_OPTION): New macro.
7376 (collapse_flag): New static variable.
7377 (struct description): New member normal_decls_num.
7378 (struct automaton): New members advance_ainsn and collapse_ainsn.
7379 (gen_automata_option): Check for COLLAPSE_OPTION.
7380 (collapse_ndfa_insn_decl): New static variable.
7381 (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
f30b3ad6 7382 (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
8043d8fb 7383 (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
7384 necessary. Use normal_decls_num rather than decls_num, remove
7385 test for special decls.
f30b3ad6 7386 (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
8043d8fb 7387 (make_automaton); Likewise. Use the new advance_cycle_insn member
7388 of struct automaton.
7389 (create_composed_state): Disallow advance-cycle arcs if collapse_flag
7390 is set.
7391 (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
7392 transition. Create the necessary transitions for it.
7393 (create_ainsns): Return void. Take an automaton_t argument, and
7394 update its ainsn_list, advance_ainsn and collapse_ainsn members. All
7395 callers changed.
7396 (COLLAPSE_NDFA_VALUE_NAME): New macro.
7397 (output_tables): Output code to define it.
7398 (output_internal_insn_code_evaluation): Output code to accept
7399 const0_rtx as collapse-ndfa transition.
7400 (output_default_latencies, output_print_reservation_func,
7401 output_print_description): Reorganize loops to use normal_decls_num
7402 as loop bound; remove special case for advance_cycle_insn_decl.
7403 (initiate_automaton_gen): Handle COLLAPSE_OPTION.
7404 (check_automata_insn_issues): Check for collapse_ainsn.
7405 (expand_automate): Allocate sufficient space. Initialize
7406 normal_decls_num.
7407
d2608c9e 74082011-08-25 Georg-Johann Lay <avr@gjlay.de>
8043d8fb 7409
d2608c9e 7410 * config/avr/avr.md: Fix indentation from r177991.
7411
8fe3bc87 74122011-08-25 Bernd Schmidt <bernds@codesourcery.com>
7413
7414 * regrename.c (struct du_head): Remove member terminated.
7415 (create_new_chain): Don't initialize it.
7416 (scan_rtx_reg): Don't set or test it, test the open_chains_set
7417 bitmap instead.
7418 (tick, this_tick): New global variables, moved out of
7419 regrename_optimize.
7420 (current_id, open_chains, closed_chains, open_chains_set,
7421 live_in_chains, live_hard_regs): Reorder declarations.
7422 (dump_def_use_chain): Move function earlier in the file.
7423 (rename_chains): New static function, broken out of
7424 regrename_optimize.
7425 (regrename_optimize): Use it. Remove #if 0'ed code.
7426
151e1f99 74272011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7428
7429 * varasm.c: (default_binds_local_p_1): Commentary typo fix.
7430
29b32a9a 74312011-08-24 H.J. Lu <hongjiu.lu@intel.com>
7432
17c8bd7b 7433 PR target/50172
f30b3ad6 7434 * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
29b32a9a 7435
93fc59e8 74362011-08-24 Richard Guenther <rguenther@suse.de>
7437
7438 * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
7439 ref in the basic-block case. Move stripping array-refs
7440 to the place we create an access-function for it. Remove
7441 bogus stripping down a MEM_REF to its base.
7442
9643722d 74432011-08-24 Richard Guenther <rguenther@suse.de>
7444
7445 * fold-const.c (fold_comparison): Fold &a < &a + 4 even
7446 with -fno-strict-overflow.
7447
b330ad86 74482011-08-24 Richard Guenther <rguenther@suse.de>
7449
7450 * tree-vectorizer.c (vect_print_dump_info): Avoid the
7451 file and location clutter when dumping to dump files.
7452
18cf5aaf 74532011-08-24 Simon Baldwin <simonb@google.com>
7454
7455 * gengtype-state.c (write_state): Remove timestamped header line.
7456
fc3bd902 74572011-08-24 Joseph Myers <joseph@codesourcery.com>
7458
7459 * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
7460 (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
7461 (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
7462 (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
7463 (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
7464 (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
7465 (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
7466 rules.
7467 (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
7468
cbc8c5f6 74692011-08-24 Joseph Myers <joseph@codesourcery.com>
7470
7471 * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
7472
0f00ec21 74732011-08-24 Richard Guenther <rguenther@suse.de>
7474
7475 PR tree-optimization/50067
7476 * tree-data-ref.c (dr_analyze_indices): Do not add an access
7477 function for a MEM_REF base that has no evolution in the loop
7478 nest or that is not analyzable.
7479
252fffc7 74802011-08-23 Vladimir Makarov <vmakarov@redhat.com>
7481
7482 * ira.c (ira_init_register_move_cost): Check small subclasses
7483 through ira_reg_class_max_nregs and ira_available_class_regs.
7484
4480cad1 74852011-08-23 Uros Bizjak <ubizjak@gmail.com>
7486
7487 * config/i386/constraints.md (Yp): New register constraint.
7488 * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
7489 Yp register constraint.
7490 (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
7491 (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
7492 (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
7493
1004a2c1 74942011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
7495
7496 * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
7497
f74ea1c2 74982011-08-23 Mark Heffernan <meheff@google.com>
7499
7500 PR middle-end/38509
7501 * common.opt (Wfree-nonheap-object): New option.
7502 * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
7503 * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
7504 to warning.
7505 (expand_builtin): Make warning conditional.
7506
2339767f 75072011-08-23 Uros Bizjak <ubizjak@gmail.com>
7508
7509 * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
7510 (length_immediate): Handle imulx, ishiftx and rotatex.
7511 (imm_disp): Ditto.
7512 (isa): Add bmi2.
7513 (enabled): Handle bmi2.
2339767f 7514 (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
7515 (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative.
7516 (*bmi2_umulditi3_1): New insn pattern.
7517 (*bmi2_umulsidi3_1): Ditto.
4480cad1 7518 (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
2339767f 7519 (*bmi2_ashl<mode>3_1): New insn pattern.
7520 (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
4480cad1 7521 (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
2339767f 7522 (*bmi2_ashlsi3_1_zext): New insn pattern.
7523 (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
4480cad1 7524 (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
2339767f 7525 (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
7526 (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
7527 (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
7528 flags dependency.
7529 (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
7530 (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
7531 (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
7532 flags dependency.
7533 (*bmi2_rorx<mode>3_1): New insn pattern.
7534 (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
4480cad1 7535 (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
2339767f 7536 (*rotatert<mode>3_1 splitter): Ditto.
7537 (*bmi2_rorxsi3_1_zext): New insn pattern.
7538 (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
4480cad1 7539 (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
2339767f 7540 (*rotatertsi3_1_zext splitter): Ditto.
7541
75422011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
7543
4480cad1 7544 * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
2339767f 7545 (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
7546 (ix86_handle_option): Handle OPT_mbmi2 case.
7547 * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
7548 (x86_64-*-*): Likewise.
7549 * config/i386/bmi2intrin.h: New file.
7550 * config/i386/cpuid.h (bit_BMI2): New.
7551 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7552 BMI2 feature.
7553 * config/i386/i386-c.c (ix86_target_macros_internal):
7554 Conditionally define __BMI2__.
7555 * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
7556 Handle BMI2 option.
7557 (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
7558 (print_reg): New code.
7559 (ix86_print_operand): Likewise.
7560 (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
7561 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
7562 IX86_BUILTIN_PEXT64.
7563 (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
7564 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
7565 IX86_BUILTIN_PEXT64.
7566 * config/i386/i386.h (TARGET_BMI2): New.
7567 * config/i386/i386.md (UNSPEC_PDEP): New.
7568 (UNSPEC_PEXT): Likewise.
7569 (*bmi2_bzhi_<mode>3): Likewise.
7570 (*bmi2_pdep_<mode>3): Likewise.
7571 (*bmi2_pext_<mode>3): Likewise.
7572 * config/i386/i386.opt (mbmi2): New.
7573 * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
7574 is defined.
7575 * doc/extend.texi: Document BMI2 built-in functions.
7576 * doc/invoke.texi: Document -mbmi2.
7577
011b255e 75782011-08-23 Jakub Jelinek <jakub@redhat.com>
7579
7580 PR middle-end/50161
7581 * simplify-rtx.c (simplify_const_unary_operation): If
4480cad1 7582 op is CONST_INT, don't look at op_mode, but use instead mode.
011b255e 7583 * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
7584 CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
7585 operation and TRUNCATE/ZERO_EXTEND if needed.
7586 * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
7587 Document that operand mode must be same as operation mode,
7588 or VOIDmode.
7589 * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
7590 *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
7591 *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
7592 *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
7593 use the mode of operand for the operation and add truncate
7594 or zero_extend around if needed.
7595 * config/c6x/c6x.md (ctzdi2): Likewise.
7596 * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
7597
f2ca19b4 75982011-08-12 Michael Matz <matz@suse.de>
7599
7600 * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
7601 (gimple_expand_cfg): Merge alignment info for coalesced pointer
7602 SSA names.
7603
5fc88ffd 76042011-08-23 Richard Guenther <rguenther@suse.de>
7605
7606 * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
7607 * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
7608 * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
7609 from ...
7610 * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
7611 (mem_refs_may_alias_p): Adjust.
7612 * tree-data-ref.h (dr_may_alias_p): Adjust.
7613 * tree-data-ref.c: Include tree-affine.h.
7614 (dr_analyze_indices): Do nothing for the non-loop case.
7615 (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate
7616 more cases in the non-loop case.
7617 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
7618 calls to dr_may_alias_p.
7619 (write_alias_graph_to_ascii_ecc): Likewise.
7620 (write_alias_graph_to_ascii_dot): Likewise.
7621 (build_alias_set_optimal_p): Likewise.
7622
73a82b22 76232011-08-23 Richard Guenther <rguenther@suse.de>
7624
7625 PR tree-optimization/50162
7626 * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
7627
bc4113a9 76282011-08-23 Richard Guenther <rguenther@suse.de>
7629
7630 * tree-data-ref.c (dr_analyze_indices): Add comments, handle
7631 REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
4480cad1 7632 (create_data_ref): Also dump access functions for the created data-ref.
bc4113a9 7633
c4530783 76342011-08-22 Uros Bizjak <ubizjak@gmail.com>
7635 Kirill Yukhin <kirill.yukhin@intel.com>
7636
7637 PR target/50155
7638 * config/i386/sse.md (VI_AVX2): New.
7639 (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
7640 (*<plusminus_insn><mode>3): Ditto.
c498d21e 7641 (<sse2_avx2>_andnot<mode>3): Ditto.
c4530783 7642 (*andnot<mode>3): Fix order of cond operands.
7643 Add asserts for correct TARGET_xxx.
7644 (*<any_logic:code><mode>3): Ditto.
7645
c3271fdb 76462011-08-22 Anatoly Sokolov <aesok@post.ru>
7647
7648 * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
7649 * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
7650 * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
7651 regclass argument type to reg_class_t. Change 'max' and 'v' vars
7652 and return types to unsigned char. Use reg_class_contents instead
7653 of class_contents.
7654 (TARGET_CLASS_MAX_NREGS): Define.
7655
63729869 76562011-08-22 Bernd Schmidt <bernds@codesourcery.com>
7657
7658 * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
7659 to make computed_jump_p return true.
7660
d89b8910 76612011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7662
7663 * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
7664 (PICFLAG_FOR_TARGET): Substitute.
7665 * aclocal.m4: Regenerate.
7666 * configure: Regenerate.
7667
915e0b4d 76682011-08-22 Dodji Seketeli <dodji@redhat.com>
7669
7670 * c-family/c-pch.c (c_common_read_pch): Re-set line table right
7671 after reading in the pch.
7672
dcad2431 76732011-08-22 H.J. Lu <hongjiu.lu@intel.com>
7674
d7106cac 7675 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
dcad2431 7676 * configure: Regenerated.
7677
a0a66c9f 76782011-08-22 Jakub Jelinek <jakub@redhat.com>
7679
eeac4e92 7680 PR tree-optimization/50133
7681 * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
7682 from stmt instead of some statement around gsi.
7683
a0a66c9f 7684 PR middle-end/50141
7685 * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
7686 innerdecl is a VAR_DECL.
7687
5deb404d 76882011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
7689
7690 * config/i386/avx2intrin.h: New file.
7691 * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
7692 PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
7693 V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
7694 V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
7695 V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
7696 V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
7697 V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
7698 V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
7699 V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
7700 V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
7701 V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
7702 V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
7703 V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
7704 V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
7705 V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
7706 V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
7707 V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
7708 V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
7709 VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
7710 VOID_FTYPE_PV8SI_V8SI_V8SI,
7711 V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
7712 V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
7713 V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
7714 V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
7715 V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
7716 V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
7717 V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
7718 V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
7719 V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
7720 V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
7721 V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
7722 V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
7723 V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
7724 V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
7725 V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
7726 V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
7727 V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
7728 V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
7729 V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
7730 V4DI_FTYPE_V4DI_INT_CONVERT,
7731 V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
7732 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
7733 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
7734 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
7735 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
7736 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
7737 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
7738 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
7739 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
7740 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
7741 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
7742 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
7743 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
7744 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
7745 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
7746 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
7747 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
7748 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
7749 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
7750 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
7751 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
7752 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
7753 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
7754 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
7755 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
7756 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
7757 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
7758 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
7759 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
7760 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
7761 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
7762 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
7763 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
7764 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
7765 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
7766 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
7767 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
7768 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
7769 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
7770 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
7771 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
7772 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
7773 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
7774 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
7775 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
7776 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
7777 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
7778 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
7779 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
7780 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
7781 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
7782 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
7783 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
7784 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
7785 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
7786 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
7787 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
7788 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
7789 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
7790 IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
7791 IX86_BUILTIN_VBROADCASTSS_PS256,
7792 IX86_BUILTIN_VBROADCASTSD_PD256,
7793 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
7794 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
7795 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
7796 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
7797 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
7798 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
7799 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
7800 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
7801 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
7802 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
7803 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
7804 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
7805 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
7806 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
7807 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
7808 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
7809 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
7810 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
7811 IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
7812 IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
7813 IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
7814 IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
7815 IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
7816 IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
7817 IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
7818 IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
7819 (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
7820 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
7821 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
7822 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
7823 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
7824 (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
7825 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
7826 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
7827 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
7828 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
7829 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
7830 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
7831 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
7832 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
7833 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
7834 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
7835 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
7836 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
7837 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
7838 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
7839 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
7840 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
7841 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
7842 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
7843 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
7844 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
7845 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
7846 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
7847 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
7848 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
7849 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
7850 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
7851 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
7852 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
7853 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
7854 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
7855 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
7856 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
7857 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
7858 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
7859 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
7860 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
7861 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
7862 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
7863 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
7864 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
7865 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
7866 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
7867 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
7868 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
7869 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
7870 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
7871 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
7872 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
7873 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
7874 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
7875 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
7876 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
7877 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
7878 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
7879 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
7880 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
7881 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
7882 IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
7883 IX86_BUILTIN_VBROADCASTSD_PD256,
7884 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
7885 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
7886 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
7887 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
7888 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
7889 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
7890 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
7891 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
7892 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
7893 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
7894 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
7895 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
7896 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
7897 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
7898 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
7899 IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
7900 IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
7901 IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
7902 IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
7903 IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
7904 IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
7905 IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
7906 IX86_BUILTIN_GATHERDIV8SI.
7907 (ix86_preferred_simd_mode): Support AVX2 modes.
a3654104 7908 (ix86_expand_args_builtin): Support AVX2 builtins.
5deb404d 7909 (ix86_expand_special_args_builtin): Likewise.
7910 (ix86_expand_builtin): Likewise.
7911 * config/i386/i386.md (UNSPEC_VPERMSI): New.
7912 (UNSPEC_VPERMDF): Likewise.
7913 (UNSPEC_VPERMSF): Likewise.
7914 (UNSPEC_VPERMDI): Likewise.
7915 (UNSPEC_VPERMTI): Likewise.
7916 (UNSPEC_GATHER): Likewise.
7917 (ssemodesuffix): Extend.
7918 * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
7919 is defined.
7920 * config/i386/predicates.md (const1248_operand): New.
f738f968 7921 * config/i386/sse.md (VI1_AVX2): New mode iterator.
5deb404d 7922 (VI2_AVX2): Likewise.
7923 (VI4_AVX2): Likewise.
7924 (VI8_AVX2): Likewise.
7925 (VIMAX_AVX2): Likewise.
7926 (SSESCALARMODE): Likewise.
7927 (VI12_AVX2): Likewise.
7928 (VI24_AVX2): Likewise.
a3654104 7929 (VI124_AVX2): Likewise.
5deb404d 7930 (VI248_AVX2): Likewise.
7931 (VI48_AVX2): Likewise.
7932 (VI4SD_AVX2): Likewise.
7933 (V48_AVX2): Likewise.
a3654104 7934 (AVX256MODE2P): Likewise.
7935 (AVXMODE48P_DI): Likewise.
7936 (sse2_avx2): New mode attribute.
5deb404d 7937 (ssse3_avx2): Likewise.
7938 (sse4_1_avx2): Likewise.
7939 (avx_avx2): Likewise.
a3654104 7940 (ssebytemode): Likewise.
5deb404d 7941 (AVXTOSSEMODE): Likewise.
5deb404d 7942 (AVXMODE48P_DI): Likewise.
7943 (gthrfirstp): Likewise.
7944 (gthrlastp): Likewise.
a3654104 7945 (lshift): New code_iterator
7946 (lshift): New code attribute.
7947 (lshift): Likewise.
7948 (ssescalarmodesuffix): Update.
7949 (sseunpackmode): Likewise.
7950 (ssepackmode): Likewise.
7951 (avx2_vec_dupv4sf): New insn pattern.
5deb404d 7952 (avx2_vec_dupv8sf): Likewise.
7953 (avx2_interleave_highv4di): Likewise.
7954 (avx2_interleave_lowv4di): Likewise.
a3654104 7955 (avx2_umulv4siv4di3): Likewise
7956 (*avx2_umulv4siv4di3): Likewise
7957 (avx2_pmaddwd): Likewise.
5deb404d 7958 (*avx2_pmaddwd): Likewise.
a3654104 7959 (avx2_lshrqv4di3): Likewise.
7960 (avx2_lshlqv4di3): Likewise.
5deb404d 7961 (avx2_lshl<mode>3): Likewise.
a3654104 7962 (avx2_<umaxmin:code><mode>3): Likewise.
7963 (*avx2_<umaxmin:code><mode>3): Likewise.
7964 (avx2_<smaxmin:code><mode>3): Likewise.
7965 (*avx2_<smaxmin:code><mode>3): Likewise.
5deb404d 7966 (avx2_eq<mode>3): Likewise.
7967 (*avx2_eq<mode>3): Likewise.
7968 (avx2_gt<mode>3): Likewise.
5deb404d 7969 (avx2_interleave_highv32qi): New.
7970 (avx2_interleave_lowv32qi): Likewise.
7971 (avx2_interleave_highv16hi): Likewise.
7972 (avx2_interleave_lowv16hi): Likewise.
7973 (avx2_interleave_highv8si): Likewise.
7974 (avx2_interleave_lowv8si): Likewise.
a3654104 7975 (avx2_pshufd): Likewise.
5deb404d 7976 (avx2_pshufd_1): Likewise.
7977 (avx2_pshuflwv3): Likewise.
7978 (avx2_pshuflw_1): Likewise.
7979 (avx2_pshufhwv3): Likewise.
7980 (avx2_pshufhw_1): Likewise.
7981 (avx2_uavgv32qi3): Likewise.
7982 (*avx2_uavgv32qi3): Likewise.
7983 (avx2_uavgv16hi3): Likewise.
7984 (*avx2_uavgv16hi3): Likewise.
a3654104 7985 (avx2_pmovmskb): Likewise.
5deb404d 7986 (avx2_phaddwv16hi3): Likewise.
7987 (avx2_phadddv8si3): Likewise.
7988 (avx2_phaddswv16hi3): Likewise.
7989 (avx2_phsubwv16hi3): Likewise.
7990 (avx2_phsubdv8si3): Likewise.
7991 (avx2_phsubswv16hi3): Likewise.
7992 (avx2_pmaddubsw256): Likewise.
7993 (avx2_umulhrswv16hi3): Likewise.
7994 (*avx2_umulhrswv16hi3): Likewise.
a3654104 7995 (avx2_packusdw): Likewise.
7996 (avx2_pblendd<mode>): Likewise.
5deb404d 7997 (avx2_<code>v16qiv16hi2): Likewise.
7998 (avx2_<code>v8qiv8si2): Likewise.
7999 (avx2_<code>v8hiv8si2): Likewise.
8000 (avx2_<code>v4qiv4di2): Likewise.
8001 (avx2_<code>v4hiv4di2): Likewise.
8002 (avx2_<code>v4siv4di2): Likewise.
8003 (avx2_pbroadcast<mode>): Likewise.
8004 (avx2_permvarv8si): Likewise.
8005 (avx2_permv4df): Likewise.
8006 (avx2_permvarv8sf): Likewise.
8007 (avx2_permv4di): Likewise.
8008 (avx2_permv2ti): Likewise.
8009 (avx2_vec_dupv4df): Likewise.
8010 (avx2_vbroadcasti128_<mode>): Likewise.
8011 (avx2_vec_set_lo_v4di): Likewise.
8012 (avx2_vec_set_hi_v4di): Likewise.
a3654104 8013 (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
5deb404d 8014 (avx2_extracti128): Likewise.
8015 (avx2_inserti128): Likewise.
8016 (avx2_ashrvv8si): Likewise.
8017 (avx2_ashrvv4si): Likewise.
8018 (avx2_<lshift>vv8si): Likewise.
8019 (avx2_<lshift>v<mode>): Likewise.
8020 (avx2_<lshift>vv2di): Likewise.
8021 (avx2_gathersi<mode>): Likewise.
8022 (*avx2_gathersi<mode>): Likewise.
8023 (avx2_gatherdi<mode>): Likewise.
8024 (*avx2_gatherdi<mode>): Likewise.
8025 (avx2_gatherdi<mode>256): Likewise.
8026 (*avx2_gatherdi<mode>256): Likewise.
f738f968 8027 (<plusminus_insn><mode>3): Use VI mode iterator.
8028 (*<plusminus_insn><mode>3): Use VI mode iterator.
a3654104 8029 (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
8030 sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
8031 (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
8032 *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
f738f968 8033 (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator.
8034 (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator.
a3654104 8035 (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
8036 Use VI2_AVX2 mode iterator.
8037 (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
f738f968 8038 Use VI2_AVX2 mode iterator.
8039 (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator.
8040 (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator.
8041 (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
8042 Use VI4_AVX2 mode iterator.
8043 (ashr<mode>3): Use VI24_AVX2 mode iterator.
8044 (lshr<mode>3): Use VI248_AVX2 mode iterator.
8045 (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
8046 Use VIMAX_AVX2 mode iterator.
8047 (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
8048 Use VI mode iterator.
8049 (*andnot<mode>3): Update for AVX2.
8050 (*<any_logic:code><mode>3): Likewise.
a3654104 8051 (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
f738f968 8052 Use VI1_AVX mode iterator.
a3654104 8053 (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
f738f968 8054 Use VI2_AVX mode iterator.
a3654104 8055 (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
f738f968 8056 Use VI1_AVX mode iterator.
8057 (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
8058 Use VI8_AVX2 mode iterator.
8059 (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
8060 Use VI1_AVX2 mode iterator.
8061 (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
8062 Use VI124_AVX2 mode iterator.
8063 (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
8064 Use SSESCALARMODE mode iterator.
8065 (abs<mode>2): Use VI124_AVX2 mode iterator.
8066 (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
8067 Use VI8_AVX2 mode iterator.
8068 (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
8069 Use VI1_AVX2 mode iterator.
8070 (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
8071 Use VI1_AVX2 mode iterator.
8072 (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
8073 Use VI2_AVX2 mode iterator.
a3654104 8074 (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
f738f968 8075 avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
a3654104 8076 (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
f738f968 8077 avx_maskstore<ssemodesuffix><avxsizesuffix>.
8078 Use V48_AVX2 mode iterator.
5deb404d 8079 * doc/extend.texi: Document AVX2 built-in functions.
8080 * doc/invoke.texi: Document -mavx2.
8081
f0bafd5c 80822011-08-22 Matthias Klose <doko@debian.org>
8083
8084 Revert:
8085 2011-07-11 Arthur Loiret <aloiret@debian.org>
8086 Matthias Klose <doko@debian.org>
8087 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
8088 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
8089 convention.
8090 * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
8091
3d4c18fe 80922011-08-22 Mikael Pettersson <mikpe@it.uu.se>
8093
8094 PR bootstrap/50146
8095 * ira-color.c (assign_hard_reg): Move saved_nregs declaration
8096 to #ifndef HONOR_REG_ALLOC_ORDER block.
8097
7e66a69e 80982011-08-21 Richard Henderson <rth@redhat.com>
8099
8100 * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
8101 * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
8102 * resource.c (next_insn_no_annul): Likewise.
8103 (mark_set_resources): Likewise.
8104 * reorg.c (delete_from_delay_slot): Likewise.
8105 (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
8106 (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
8107
e703b283 81082011-08-21 Uros Bizjak <ubizjak@gmail.com>
8109
8110 * config/i386/i386.md (any_div): Remove.
8111 (sgnprefix): Update for removal.
8112 (u): Ditto.
8113
342f23d2 81142011-08-20 Vladimir Makarov <vmakarov@redhat.com>
8115
8116 * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
8117 for ira_reg_class_max_nregs. Increase pressure by 1.
8118 (mark_pseudo_regno_subword_dead): Use allocno class
8119 for ira_reg_class_max_nregs.
8120
8ddcab8c 81212011-08-20 Richard Henderson <rth@redhat.com>
8122
8123 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
e703b283 8124 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
8ddcab8c 8125 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
8126 config/c6x/ltf.c: Adjust include path for soft-fp.
8127
ef1da805 81282011-08-20 H.J. Lu <hongjiu.lu@intel.com>
8129
8130 PR other/46770
8131 * config.gcc (tm_file): Add initfini-array.h if
8132 .init_arrary/.fini_array are supported.
8133
8134 * crtstuff.c: Don't generate .ctors nor .dtors sections if
8135 USE_INITFINI_ARRAY is defined.
8136
8137 * output.h (default_elf_init_array_asm_out_constructor): New.
8138 (default_elf_fini_array_asm_out_destructor): Likewise.
8139 * varasm.c (elf_init_array_section): Likewise.
8140 (elf_fini_array_section): Likewise.
8141 (get_elf_initfini_array_priority_section): Likewise.
8142 (default_elf_init_array_asm_out_constructor): Likewise.
8143 (default_elf_fini_array_asm_out_destructor): Likewise.
8144
8145 * config/initfini-array.h: New.
8146
c1863f1d 81472011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
8148
8149 * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
8150 OK for ST_REGS and FP_REGS before taking those classes into account.
8151
be06fcd6 81522011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
8153
8154 * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
8155 before checking for annulled branches.
8156
99680dcf 81572011-08-20 Uros Bizjak <ubizjak@gmail.com>
8158
8159 * config/i386/i386.c (ix86_binary_operator_ok): Use
8160 satisfies_constraint_L.
8161
ed5d0bf8 81622011-08-20 Uros Bizjak <ubizjak@gmail.com>
8163 Michael Matz <matz@suse.de>
8164
8165 * config/i386/i386.c (ix86_expand_round_sse4): Expand as
8166 trunc (a + copysign (nextafter (0.5, 0.0), a)).
8167
903209fc 81682011-08-20 Anatoly Sokolov <aesok@post.ru>
8169
8170 * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8171 * doc/tm.texi: Regenerate.
8172 * targhooks.c (default_preferred_output_reload_class): Don't use
8173 PREFERRED_OUTPUT_RELOAD_CLASS macro.
8174 * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
8175
0ab72b53 81762011-08-20 Jakub Jelinek <jakub@redhat.com>
8177
8178 PR tree-optimization/48739
8179 * tree-ssa.c: Include cfgloop.h.
ed5d0bf8 8180 (execute_update_addresses_taken): When updating ssa, if in loop closed
8181 SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
0ab72b53 8182 * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
8183
53aaaa2e 81842011-08-19 Vladimir Makarov <vmakarov@redhat.com>
8185
8186 PR rtl-optimization/49936
8187 * ira.c (ira_init_register_move_cost): Ignore too small subclasses
8188 for calculation of max register move costs.
8189
032558a4 81902011-08-19 Joseph Myers <joseph@codesourcery.com>
8191
8192 * c-parser.c (c_parser_postfix_expression): Convert operands of
8193 __builtin_complex to their semantic types.
8194
ffc5011b 81952011-08-19 H.J. Lu <hongjiu.lu@intel.com>
8196
8197 PR middle-end/49721
8198 * explow.c (convert_memory_address_addr_space): Also permute the
8199 conversion and addition of constant for zero-extend.
8200
bff4ad11 82012011-08-19 Joseph Myers <joseph@codesourcery.com>
8202
ed5d0bf8 8203 * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
bff4ad11 8204 * doc/extend.texi (__builtin_complex): Document.
8205
ffebd9c5 82062011-08-19 Andrew Stubbs <ams@codesourcery.com>
8207
8208 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
8209 beyond conversions.
8210 (convert_mult_to_widen): Convert constant inputs to the right type.
8211 (convert_plusminus_to_widen): Don't automatically reject inputs that
8212 are not an SSA_NAME.
8213 Convert constant inputs to the right type.
8214
12421545 82152011-08-19 Andrew Stubbs <ams@codesourcery.com>
8216
8217 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
8218 to the correct type.
8219
22ffd684 82202011-08-19 Andrew Stubbs <ams@codesourcery.com>
8221
8222 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
8223 unsigned inputs of different modes.
8224 (convert_plusminus_to_widen): Likewise.
8225
0989f516 82262011-08-19 Andrew Stubbs <ams@codesourcery.com>
8227
8228 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
8229 'type'.
8230 Use 'type' from caller, not inferred from 'rhs'.
8231 Don't reject non-conversion statements. Do return lhs in this case.
8232 (is_widening_mult_p): Add new argument 'type'.
8233 Use 'type' from caller, not inferred from 'stmt'.
8234 Pass type to is_widening_mult_rhs_p.
8235 (convert_mult_to_widen): Pass type to is_widening_mult_p.
8236 (convert_plusminus_to_widen): Likewise.
8237
287c271c 82382011-08-19 Andrew Stubbs <ams@codesourcery.com>
8239
8240 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
8241 Ensure the the larger type is the first operand.
8242
3f2ab719 82432011-08-19 Andrew Stubbs <ams@codesourcery.com>
8244
8245 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
8246 unsupported unsigned multiplies to signed.
8247 (convert_plusminus_to_widen): Likewise.
8248
07ea3e5c 82492011-08-19 Andrew Stubbs <ams@codesourcery.com>
8250
8251 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
8252 conversion statement separating multiply-and-accumulate.
8253
9488020c 82542011-08-19 Richard Guenther <rguenther@suse.de>
8255
8256 PR tree-optimization/50067
8257 * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
8258 offset only if we accounted for it.
8259
aff5fb4d 82602011-08-19 Andrew Stubbs <ams@codesourcery.com>
8261
8262 * config/arm/arm.md (maddhidi4): Remove '*' from name.
8263 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
8264 * optabs.c (find_widening_optab_handler_and_mode): New function.
8265 (expand_widen_pattern_expr): Use find_widening_optab_handler.
8266 (expand_binop_directly): Likewise.
8267 (expand_binop): Likewise.
8268 * optabs.h (find_widening_optab_handler): New macro define.
8269 (find_widening_optab_handler_and_mode): New prototype.
8270 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
8271 type precision rules.
8272 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
8273 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
8274 (is_widening_mult_rhs_p): Allow widening by more than one mode.
8275 Explicitly disallow mis-matched input types.
8276 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
8277 input types to fit the new handler.
8278 (convert_plusminus_to_widen): Likewise.
8279
5a574e8b 82802011-08-19 Andrew Stubbs <ams@codesourcery.com>
8281
8282 * expr.c (expand_expr_real_2): Use widening_optab_handler.
8283 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
8284 (gen_insn): $N now means $a must be wider than $b, not consecutive.
8285 * optabs.c (widened_mode): New function.
8286 (expand_widen_pattern_expr): Use widening_optab_handler.
8287 (expand_binop_directly): Likewise.
8288 (expand_binop): Likewise.
8289 * optabs.h (widening_optab_handlers): New struct.
8290 (optab_d): New member, 'widening'.
8291 (widening_optab_handler): New function.
8292 (set_widening_optab_handler): New function.
8293 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
8294 widening_optab_handler.
8295 (convert_plusminus_to_widen): Likewise.
8296
4755ceab 82972011-08-19 Joseph Myers <joseph@codesourcery.com>
8298
8299 * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
8300 pedantic.
ed5d0bf8 8301 * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
4755ceab 8302 * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
8303
bfa29ed4 83042011-08-19 Joseph Myers <joseph@codesourcery.com>
8305
8306 * opth-gen.awk: Do not declare target save/restore structures and
8307 functions if IN_RTS defined.
8308
de98d721 83092011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
8310
8311 PR target/49437
8312 * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
8313 when stack was realigned in interrupt handler prologue.
8314
985c6e3a 83152011-08-18 Joseph Myers <joseph@codesourcery.com>
8316
8317 * c-decl.c (shadow_tag_warned): Check for _Noreturn.
8318 (quals_from_declspecs): Assert _Noreturn not present.
8319 (grokdeclarator): Handle _Noreturn.
8320 (build_null_declspecs): Initialize noreturn_p.
8321 (declspecs_add_scspec): Handle RID_NORETURN.
8322 * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
8323 (c_parser_attributes): Handle RID_NORETURN.
8324 * c-tree.h (struct c_declspecs): Add noreturn_p.
8325 * ginclude/stdnoreturn.h: New.
8326 * Makefile.in (USER_H): Add stdnoreturn.h.
8327
d2a15bb8 83282011-08-18 Kirill Yukhin <kirill.yukhin@intel.com>
8329
8330 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
8331 (OPTION_MASK_ISA_AVX_UNSET): Update.
8332 (OPTION_MASK_ISA_AVX2_UNSET): New.
8333 (ix86_handle_option): Handle OPT_mavx2 case.
8334 * config/i386/cpuid.h (bit_AVX2): New.
8335 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
8336 AVX2 feature.
8337 * config/i386/i386-c.c (ix86_target_macros_internal):
8338 Conditionally define __AVX2__.
ed5d0bf8 8339 * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
8340 Define "core-avx2" processor alias. Handle avx2 option.
d2a15bb8 8341 (ix86_valid_target_attribute_inner_p): Handle avx2 option.
8342 * config/i386/i386.h (TARGET_AVX2): New.
8343 * config/i386/i386.opt (mavx2): New.
8344 * doc/invoke.texi: Document -mavx2.
8345
42f875c3 83462011-08-18 Vladimir Makarov <vmakarov@redhat.com>
8347
8348 PR rtl-optimization/49890
8349 * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
8350 subclasses of class which is superset of a pressure class.
8351
aecf3645 83522011-08-18 H.J. Lu <hongjiu.lu@intel.com>
8353 Igor Zamyatin <igor.zamyatin@intel.com>
8354
8355 * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
8356 with HOST_WIDE_INT for isa_flag.
8357 (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
8358 isa variables.
8359
8360 * config/i386/i386.c (ix86_target_string): Replace int with
8361 HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa.
8362 (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
8363 (pta_flags): Removed.
8364 (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
8365 (pta): Use HOST_WIDE_INT on flags.
8366 (builtin_isa): Use HOST_WIDE_INT on isa.
8367 (ix86_add_new_builtins): Likewise.
8368 (def_builtin): Use HOST_WIDE_INT on mask.
8369 (def_builtin_const): Likewise.
8370 (builtin_description): Likewise.
8371
8372 * config/i386/i386.opt (ix86_isa_flags): Replace int with
8373 HOST_WIDE_INT.
8374 (ix86_isa_flags_explicit): Likewise.
8375 (x_ix86_isa_flags_explicit): Likewise.
8376
4682ca16 83772011-08-17 Vladimir Makarov <vmakarov@redhat.com>
8378
8379 PR rtl-optimization/50107
8380 * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
8381 (ira_hard_reg_in_set_p): New.
8382
8383 * ira-color.c (calculate_saved_nregs): New.
8384 (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all
8385 hard regs.
8386 (allocno_reload_assign, fast_allocation): Use
8387 ira_hard_reg_set_intersection_p instead of
8388 ira_hard_reg_not_in_set_p.
8389
8390 * ira.c (setup_reg_renumber): Use
8391 ira_hard_reg_set_intersection_p instead of
8392 ira_hard_reg_not_in_set_p.
8393 (setup_allocno_assignment_flags, calculate_allocation_cost): Use
8394 ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
8395
8396 * ira-costs.c (ira_tune_allocno_costs): Use
8397 ira_hard_reg_set_intersection_p instead of
8398 ira_hard_reg_not_in_set_p.
8399
72ec6882 84002011-08-18 H.J. Lu <hongjiu.lu@intel.com>
8401 Igor Zamyatin <igor.zamyatin@intel.com>
8402
8403 * hwint.h (HOST_WIDE_INT_1): New.
8404
8405 * opt-functions.awk (switch_bit_fields): Initialize the
8406 host_wide_int field.
8407 (host_wide_int_var_name): New.
8408 (var_type_struct): Check and return HOST_WIDE_INT.
8409
8410 * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
8411
8412 * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
8413
8414 * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly
8415 check masks for HOST_WIDE_INT.
8416
8417 * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
8418 (option_enabled): Likewise.
8419 (get_option_state): Likewise.
8420
8421 * opts.h (cl_option): Add cl_host_wide_int. Change var_value
8422 to HOST_WIDE_INT.
8423
16a1895e 84242011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8425 Marc Glisse <marc.glisse@normalesup.org>
8426
8427 PR libstdc++-v3/1773
8428 * target.def (decl_mangling_context): New C++ hook.
8429 * doc/tm.texi: Regenerate.
8430 * config/sol2-cxx.c, config/sol2-stubs.c: New files.
8431 * config/sol2-protos.h: Group by source file.
8432 (solaris_cxx_decl_mangling_context): Declare.
8433 * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
8434 * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
8435 Use $<.
8436 * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
8437 Add sol2-stubs.o to extra_objs.
8438
f15697cd 84392011-08-18 Jakub Jelinek <jakub@redhat.com>
8440
a6949f31 8441 PR target/50009
8442 * stor-layout.c (update_alignment_for_field): Don't ICE on
8443 packed flexible array members if ms_bitfield_layout_p.
8444
4061f98e 8445 PR target/50092
8446 * config/i386/i386.c (assign_386_stack_local): Call validize_mem
8447 on the result before returning it.
8448
f15697cd 8449 PR debug/50017
8450 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
8451 is a debug stmt, use location of the first non-debug stmt after it.
8452
4c222147 84532011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
8454
8455 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
8456 (arm_size_rtx_costs): Likewise.
8457
84cc84ec 84582011-08-18 Richard Guenther <rguenther@suse.de>
8459
8460 * tree.h (tree_int_cst_msb): Remove.
8461 * tree.c (tree_int_cst_msb): Likewise.
8462 (tree_int_cst_sign_bit): Move from ...
8463 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
8464
20d892d1 84652011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
8466
8467 * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
8468 * doc/tm.texi: Regenerate.
8469 * target.def (rtx_costs): Add an opno parameter.
8470 * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
8471 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
8472 * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
8473 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
8474 * cse.c (COST_IN): Add an opno parameter.
8475 (notreg_cost): Likewise. Update call to rtx_cost.
8476 (COST, fold_rtx): Update accordingly.
8477 * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
8478 * expmed.c (emit_store_flag): Likewise.
8479 * optabs.c (avoid_expensive_constant): Add an opno parameter.
8480 Update call to rtx_cost.
8481 (expand_binop_directly, expand_binop): Likewise.
8482 (expand_twoval_binop, prepare_cmp_insn): Likewise.
8483 * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
8484 (set_src_cost, get_full_set_src_cost): Update accordingly.
8485 * rtlanal.c (rtx_cost): Add an opno parameter. Update call
8486 to target hook.
8487 (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
8488 (default_adress_cost): Update calls to rtx_cost.
8489
8490 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
8491 (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
8492 (arm_rtx_costs): Add an opno parameter.
8493 * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
8494 adjust any recursive rtx-cost calls.
8495 * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
8496 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
8497 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
8498 * config/cris/cris.c (cris_rtx_costs): Likewise.
8499 * config/frv/frv.c (frv_rtx_costs): Likewise.
8500 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
8501 * config/i386/i386.c (ix86_rtx_costs): Likewise.
8502 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
8503 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
8504 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
8505 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
8506 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
8507 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
8508 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
8509 * config/mep/mep.c (mep_rtx_cost): Likewise.
8510 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
8511 * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
8512 (mips_zero_extend_cost): Add an opno parameter.
8513 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
8514 * config/mn10300/mn10300.c (mn10300_address_cost): Update call
8515 to rtx_cost.
8516 (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
8517 rtx-cost calls.
8518 * config/pa/pa.c (hppa_rtx_costs): Likewise.
8519 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
8520 * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
8521 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
8522 (rs6000_debug_rtx_costs): Likewise.
8523 * config/s390/s390.c (s390_rtx_costs): Likewise.
8524 * config/score/score-protos.h (score_rtx_costs): Likewise.
8525 * config/score/score.c (score_rtx_costs): Likewise.
8526 * config/sh/sh.c (andcosts): Update call to rtx_cost.
8527 (sh_rtx_costs): Add an opno parameter.
8528 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
8529 * config/spu/spu.c (spu_rtx_costs): Likewise.
8530 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
8531 * config/v850/v850.c (v850_rtx_costs): Likewise.
8532 * config/vax/vax.c (vax_rtx_costs): Likewise.
8533 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
8534
7013e87c 85352011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
8536
8537 * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
8538 * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
8539 rtx_cost.
8540 * calls.c (precompute_register_parameters): Likewise.
8541 * combine.c (expand_compound_operation, make_extraction): Likewise.
8542 (force_to_mode, distribute_and_simplify_rtx): Likewise.
8543 * dse.c (find_shift_sequence): Likewise.
8544 * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
8545 * expr.c (compress_float_constant): Likewise.
8546 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
8547 * gcse.c (want_to_gcse_p): Likewise.
8548 * ifcvt.c (noce_try_sign_mask): Likewise.
8549 * loop-doloop.c (doloop_optimize): Likewise.
8550 * loop-invariant.c (create_new_invariant): Likewise.
8551 * optabs.c (avoid_expensive_constant): Likewise.
8552 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
8553 (try_replace_in_use, reload_cse_move2add): Likewise.
8554 * reload1.c (calculate_elim_costs_all_insns): Likewise.
8555 (note_reg_elim_costly): Likewise.
8556 * rtlanal.c (insn_rtx_cost): Likewise.
8557 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8558 * stmt.c (lshift_cheap_p): Likewise.
8559 * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
8560 * config/avr/avr.c (final_prescan_insn): Likewise.
8561 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
8562 * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
8563
b72d459f 85642011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
8565
8566 * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
8567 * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
8568 * cfgloopanal.c (seq_cost): Likewise.
8569 * loop-invariant.c (create_new_invariant): Likewise.
8570 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
8571 (reload_cse_move2add): Use get_full_set_rtx_cost.
8572
1bc4fc63 85732011-08-18 Richard Guenther <rguenther@suse.de>
8574
8575 * expr.c (get_inner_reference): Fix typo in last change.
8576
b1757d46 85772011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
8578 Joseph Myers <joseph@codesourcery.com>
8579
8580 PR tree-optimization/49963
8581 * hwint.c (absu_hwi): Define.
8582 * hwint.h (absu_hwi): Declare.
8583 * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
8584 of abs_hwi.
8585 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
8586 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
8587
2ad5f5fc 85882011-08-18 Richard Guenther <rguenther@suse.de>
8589
8590 * expr.c (get_inner_reference): Sign-extend the constant
8591 twos-complement offset before doing arbitrary precision
8592 arithmetic on it.
8593 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
8594 (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
8595 to get_constraint_for_ptr_offset.
8596
407892e8 85972011-08-17 Kaz Kojima <kkojima@gcc.gnu.org>
8598
8599 PR target/50068
8600 * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
8601
a0553bff 86022011-08-17 Richard Guenther <rguenther@suse.de>
8603
8604 * tree.h (convert_to_ptrofftype_loc): New function.
8605 (convert_to_ptrofftype): Define.
8606 * builtins.c (expand_builtin_bzero): Use size_type_node.
8607 (fold_builtin_bzero): Likewise.
8608 (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
8609 * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
8610 * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
8611 (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
8612 * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
ed5d0bf8 8613 * fold-const.c (build_range_check): Negate using the original type.
a0553bff 8614 (fold_unary_loc): Use fold_build_pointer_plus_loc.
8615 * gimple-fold.c (gimple_adjust_this_by_delta): Use
8616 convert_to_ptrofftype.
8617 * gimplify.c (gimplify_self_mod_expr): Likewise.
8618 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
8619 (graphite_create_new_loop_guard): Likewise.
8620 * graphite-sese-to-poly.c (my_long_long): Remove.
8621 (scop_ivs_can_be_represented): Adjust.
8622 * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
8623 * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
8624 * tree-loop-distribution.c (build_size_arg_loc): Use
8625 size_type_node.
8626 (generate_memset_zero): Simplify.
8627 * tree-mudflap.c: Use fold_convert, not convert.
8628 * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
8629 its own type.
8630 (determine_offset): Likewise for DR_STEP.
8631 (valid_initializer_p): Likewise.
8632 * tree-profile.c (prepare_instrumented_value): Convert the pointer
8633 to an integer type of same size.
8634 * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
8635 to sizetype without need.
8636 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
8637 * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
8638 * tree-ssa-loop-manip.c (create_iv): Likewise.
8639 (determine_exit_conditions): Adjust comment.
8640 * tree-ssa-pre.c (create_expression_by_pieces): Use
8641 convert_to_ptrofftype.
8642 * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
8643 * varasm.c (array_size_for_constructor): Compute using double_ints.
8644
686195ea 86452011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8646
8647 * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
8648 when generating an integer result where possible. Short-cut
8649 comparison against 0 also for QImode.
8650
fa695424 86512011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8652
8653 * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
8654 * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
8655 prototype.
8656 * config/spu/spu.c (spu_legitimize_reload_address): New function.
8657 (spu_legitimate_address_p): Do not check displacement if the base
8658 is an eliminable stack register.
8659
7d7d4922 86602011-08-16 Anatoly Sokolov <aesok@post.ru>
8661
8662 * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
8663 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
8664 * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
8665 m32c_preferred_output_reload_class): Remove.
8666 * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
8667 Change rclass argument and return types to reg_class_t. Use
8668 reg_class_subset_p instead of class_sizes.
8669 (m32c_preferred_output_reload_class): Make static. Change rclass
8670 argument and return types to reg_class_t.
8671 (TARGET_PREFERRED_RELOAD_CLASS,
8672 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8673
1afd7cda 86742011-08-16 Kai Tietz <ktietz@redhat.com>
8675
8676 * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
8677
c73fee76 86782011-08-16 Richard GUenther <rguenther@suse.de>
8679
8680 PR tree-optimization/50082
8681 * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
8682 warnings here, instead of ...
8683 (ssa_forward_propagate_and_combine): ... here.
8684 (forward_propagate_into_comparison_1): Adjust.
8685 (forward_propagate_into_comparison): Likewise.
8686 (forward_propagate_into_gimple_cond): Likewise.
8687 (forward_propagate_into_cond): Likewise.
8688
806be071 86892011-08-16 Andreas Schwab <schwab@redhat.com>
8690
8691 * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
8692 instead of ggc_alloc_zone_vec_rtvec_def.
8693
a845d317 86942011-08-16 Richard Guenther <rguenther@suse.de>
8695
8696 * tree.h (ptrofftype_p): New helper function.
8697 * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
8698 offset verification.
8699 (verify_gimple_assign_binary): Likewise.
8700 * tree.c (build2_stat): Likewise.
8701 * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
8702 (reset_evolution_in_loop): Likewise.
8703 * tree-chrec.h (build_polynomial_chrec): Likewise.
8704
5e36e119 87052011-08-16 Liang Wang <lwang1@marvell.com>
8706
8707 * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
8708 ggc_alloc_zone_vec_rtvec_def.
8709
5360e345 87102011-08-16 Richard Guenther <rguenther@suse.de>
8711
8712 * tree-vrp.c (extract_range_from_multiplicative_op_1): New
8713 helper factored out from ...
8714 (extract_range_from_binary_expr_1): ... here. Re-structure
8715 to not glob handling too different tree codes.
8716
4bb7c660 87172011-08-15 Richard Henderson <rth@redhat.com>
8718
8719 PR middle-end/50006
8720 * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
8721 setting out to include allocate_stack named pattern as well.
8722 * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
8723 * stmt.c (expand_stack_restore): Likewise.
8724
0a3b5912 87252011-08-15 Richard Guenther <rguenther@suse.de>
8726
8727 PR middle-end/50082
8728 * fold-const.c (maybe_canonicalize_comparison_1): Properly
8729 convert the modified operand to the other operand type.
8730 (fold_comparison): Call maybe_canonicalize_comparison_1 with
8731 useless conversions stripped from comparison operands.
8732
713b2724 87332011-08-15 Richard Guenther <rguenther@suse.de>
8734
8735 * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
8736 (extract_range_from_unary_expr_1): Restructure.
8737
78e606ea 87382011-08-15 Richard Guenther <rguenther@suse.de>
8739
8740 PR tree-optimization/50058
8741 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
8742 copy matching.
8743
26ff80c0 87442011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8745
8746 PR target/50022
8747 * config/arm/arm.c (output_move_double): Add 2 parameters
8748 to count the number of insns emitted and whether to emit or not.
8749 Use the flag to decide when to emit and count number of instructions
8750 that will be emitted.
8751 Handle case where output_move_double might be called for calculating
8752 lengths with an invalid constant.
8753 (arm_count_output_move_double_insns): Define.
8754 * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
8755 (output_move_double): Adjust prototype.
8756 * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
8757 output_move_double.
8758 ("*movdi_vfp_cortexa8"): Likewise and add attribute
8759 for ce_count.
8760 * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
8761 ("*movdf_soft_insn"): Likewise.
8762 * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
8763 ("*cirrus_thumb2_movdi"): Likewise.
8764 ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
8765 ("*cirrus_movdf_hard_insn"): Likewise.
8766 * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
8767 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
8768 ("mov<mode>_internal VMMX"): Likewise.
8769 * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
8770
ce7da6fe 87712011-08-14 Uros Bizjak <ubizjak@gmail.com>
8772
8773 * config/i386/i386.c (ix86_expand_round_sse4): New function.
8774 * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
8775 * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
8776 for TARGET_ROUND.
8777
8778 (rint<mode>2): Simplify TARGET_ROUND check.
8779 (floor<mode>2): Ditto.
8780 (ceil<mode>2): Ditto.
8781 (btrunc<mode>2): Ditto.
8782
f7b18294 87832011-08-14 Anatoly Sokolov <aesok@post.ru>
8784
8785 * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
8786 as mmix_preferred_output_reload_class.
8787
cffa155c 87882011-08-14 Georg-Johann Lay <avr@gjlay.de>
ce7da6fe 8789
cffa155c 8790 * PR target/49903
8791 * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
8792 (branch_unspec): New insn.
8793 (branch): Beauty farm.
8794 * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC
8795 to be IF_THEN_ELSE.
8796 (avr_compare_pattern, avr_reorg_remove_redundant_compare):
8797 New static functions.
8798 (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN.
8799 Use CONST_INT_P. Beauty.
8800
0741df1e 88012011-08-12 Richard Henderson <rth@redhat.com>
8802
8803 PR rtl-opt/49994
8804 * sched-init.h (struct deps_desc): Add sched_before_next_jump.
8805 * sched-deps.c (init_deps): Clear it.
8806 (deps_analyze_insn): Consume it.
8807 (sched_analyze_insn): Fill it.
8808
df79f48f 88092011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8810
ed5d0bf8 8811 PR target/48328
df79f48f 8812 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
8813 for tbh instructions.
8814
ed5d0bf8 88152011-08-12 Diego Novillo <dnovillo@google.com>
7f385784 8816
8817 * data-streamer.h (streamer_write_zero): Rename from output_zero.
ce7da6fe 8818 (streamer_write_uhwi): Rename from lto_output_uleb128.
8819 (streamer_write_hwi): Rename from output_sleb128.
8820 (streamer_write_string): Rename from lto_output_string.
8821 (streamer_string_index): Rename from lto_string_index.
8822 (streamer_write_string_with_length): Rename from
8823 lto_output_string_with_length.
8824 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
8825 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
8826 (streamer_read_string): Rename from lto_input_string.
8827 (streamer_read_indexed_string): Rename from input_string_internal.
8828 (streamer_read_uhwi): Rename from lto_input_uleb128.
8829 (streamer_read_hwi): Rename from lto_input_sleb128.
8830 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
8831 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
8832 (streamer_write_enum): Rename from lto_output_enum.
8833 (streamer_read_enum): Rename from lto_input_enum.
8834 (streamer_write_record_start): Rename from output_record_start.
8835 (streamer_read_record_start): Rename from input_record_start.
8836 (streamer_write_bitpack): Rename from lto_output_bitpack.
8837 (streamer_read_bitpack): Rename from lto_input_bitpack.
8838 (streamer_write_char_stream): Rename from lto_output_1_stream.
8839 (streamer_read_uchar): Rename from lto_input_1_unsigned.
8840 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
8841 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
8842 (streamer_read_string_cst): Rename from input_string_cst.
8843 (streamer_read_chain): Rename from lto_input_chain.
8844 (streamer_alloc_tree): Rename from lto_materialize_tree.
8845 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
8846 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
8847 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
8848 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
8849 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
8850 (streamer_write_chain): Rename from lto_output_chain.
8851 (streamer_write_tree_header): Rename from lto_output_tree_header.
8852 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
8853 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
8854 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
8855 (streamer_write_builtin): Rename from lto_output_builtin_tree.
8856 (streamer_check_handled_ts_structures): Rename from
8857 check_handled_ts_structures.
8858 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
8859 (streamer_tree_cache_insert_at): Rename from
8860 lto_streamer_cache_insert_at.
8861 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
8862 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
8863 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
8864 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
8865 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
8866 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
8867 (write_identifier): Rename from output_identifier.
8868 (write_ts_common_tree_pointers): Rename from
8869 lto_output_ts_common_tree_pointers.
8870 (write_ts_vector_tree_pointers): Rename from
8871 lto_output_ts_vector_tree_pointers.
8872 (write_ts_complex_tree_pointers): Rename from
8873 lto_output_ts_complex_tree_pointers.
8874 (write_ts_decl_minimal_tree_pointers): Rename from
8875 lto_output_ts_decl_minimal_tree_pointers.
8876 (write_ts_decl_common_tree_pointers): Rename from
8877 lto_output_ts_decl_common_tree_pointers.
8878 (write_ts_decl_non_common_tree_pointers): Rename from
8879 lto_output_ts_decl_non_common_tree_pointers.
8880 (write_ts_decl_with_vis_tree_pointers): Rename from
8881 lto_output_ts_decl_with_vis_tree_pointers.
8882 (write_ts_field_decl_tree_pointers): Rename from
8883 lto_output_ts_field_decl_tree_pointers.
8884 (write_ts_function_decl_tree_pointers): Rename from
8885 lto_output_ts_function_decl_tree_pointers.
8886 (write_ts_type_common_tree_pointers): Rename from
8887 lto_output_ts_type_common_tree_pointers.
8888 (write_ts_type_non_common_tree_pointers): Rename from
8889 lto_output_ts_type_non_common_tree_pointers.
8890 (write_ts_list_tree_pointers): Rename from
8891 lto_output_ts_list_tree_pointers.
8892 (write_ts_vec_tree_pointers): Rename from
8893 lto_output_ts_vec_tree_pointers.
8894 (write_ts_exp_tree_pointers): Rename from
8895 lto_output_ts_exp_tree_pointers.
8896 (write_ts_block_tree_pointers): Rename from
8897 lto_output_ts_block_tree_pointers.
8898 (write_ts_binfo_tree_pointers): Rename from
8899 lto_output_ts_binfo_tree_pointers.
8900 (write_ts_constructor_tree_pointers): Rename from
8901 lto_output_ts_constructor_tree_pointers.
8902 (write_ts_target_option): Rename from lto_output_ts_target_option.
8903 (write_ts_translation_unit_decl_tree_pointers): Rename from
8904 lto_output_ts_translation_unit_decl_tree_pointers.
8905 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
8906 Rename from lto_streamer_cache_add_to_node_array.
8907 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
8908 (record_common_node): Rename from lto_record_common_node.
7f385784 8909
8910 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
8911 declarations.
8912 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
8913 function.
8914 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
8915 unused function.
8916 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
8917 (ipa-reference.o): Likewise.
8918 * lto-section-out.c: Include data-streamer.h.
8919 * ipa-reference.c: Include data-streamer.h.
8920
bd021c1c 89212011-08-12 Nick Clifton <nickc@redhat.com>
8922
ce7da6fe 8923 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
bd021c1c 8924 * doc/md.texi (cmpstrn): Note that the comparison stops if both
8925 fetched bytes are zero.
8926 (cmpstr): Likewise.
8927 (cmpmem): Note that the comparison does not stop if both of the
8928 fetched bytes are zero.
8929
80ff6494 89302011-08-12 Uros Bizjak <ubizjak@gmail.com>
8931
8932 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
8933 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
8934 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
8935 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
8936 to integer_type_node.
8937 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
8938 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
8939 * builtins.c (expand_builtin_in): Ditto.
8940 (mathfn_built_in_1): Ditto.
8941 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
8942 BUILT_IN_IFLOOR.
8943 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
8944 BUILT_IN_IROUND.
8945 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
8946 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
8947 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
8948
77c6bddb 89492011-08-12 Richard Guenther <rguenther@suse.de>
8950
ed5d0bf8 8951 * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
77c6bddb 8952
89532011-08-12 Romain Geissler <romain.geissler@gmail.com>
02ea0cd9 8954
8955 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
8956
1f5f87f6 89572011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
8958
8959 * config/arm/arm.c (get_label_padding): New function.
d806079e 8960 (create_fix_barrier, arm_reorg): Use it.
1f5f87f6 8961
52d12c0f 89622011-08-11 Uros Bizjak <ubizjak@gmail.com>
8963
8964 PR target/49781
8965 * config/i386/i386.md (*lea_5_zext): New.
8966 (*lea_6_zext): Ditto.
8967 * config/i386/predicates.md (const_32bit_mask): New predicate.
8968 (lea_address_operand): Reject AND.
8969 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
8970 const_32bit_mask immediate.
8971 (ix86_print_operand_address): Handle AND.
8972 (memory_address_length): Ditto.
8973
e4ae859d 89742011-08-11 Romain Geissler <romain.geissler@gmail.com>
52d12c0f 8975 Brian Hackett <bhackett1024@gmail.com>
e4ae859d 8976
8977 * plugin.def: Add event for finish_decl.
8978 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
8979 * c-decl.c (finish_decl): Invoke callbacks on above event.
8980 * doc/plugins.texi: Document above event.
8981
b11771e1 89822011-08-11 Richard Guenther <rguenther@suse.de>
8983
8984 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
8985 lookups, make looking through aggregate copies stronger.
8986
a36f1a95 89872011-08-11 Richard Henderson <rth@redhat.com>
8988
8989 PR bootstrap/50018
8990 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
8991
446dbdd8 89922011-08-11 Richard Guenther <rguenther@suse.de>
8993
8994 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
8995 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
8996 (vrp_visit_stmt): Likewise.
8997
33da34ea 89982011-08-11 Richard Guenther <rguenther@suse.de>
8999
9000 PR middle-end/50040
9001 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
9002 load of the other piece with TREE_NO_WARNING.
9003 * tree-flow.h (warn_uninit): Adjust prototype.
9004 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
9005 the base variable and the expression that is used separately.
9006 Properly query all TREE_NO_WARNING flags.
9007 (struct walk_data): Remove.
9008 (warn_uninitialized_var): Likewise.
9009 (warn_uninitialized_vars): Do not walk gimple pieces but simply
9010 look at all SSA uses of the statement. Handle unused memory
9011 separately.
9012 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
9013
f3dc1120 90142011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
9015
52d12c0f 9016 * config/rx/rx.md (movsicc): Allow register to register transfers.
f3dc1120 9017 (*movsicc): Likewise.
9018 (*stcc): Restrict this pattern to EQ and NE compares.
9019 (*stcc_reg): New pattern. Works for any comparison but only for
9020 register transfers.
9021
515cf651 90222011-08-11 Diego Novillo <dnovillo@google.com>
9023
9024 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
9025 Call stream_write_tree instead of output_record_start.
9026 (lto_output_ts_binfo_tree_pointers): Likewise.
9027
9028 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
9029 Convert it to a macro.
9030 (stream_read_tree): Likewise.
9031
9032 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
9033 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
9034
9035 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
9036 and tree_read_bitfields.
9037 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
9038 (lto_write_tree): Call it.
9039 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
9040 * streamer-hooks.h (struct streamer_hooks): Remove fields
9041 name, is_streamable and alloc_tree. Update all users.
9042 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
9043 (lto_materialize_tree): ... here.
9044 Handle CALL_EXPR codes.
9045 Remove call to lto_streamer_cache_append.
52d12c0f 9046 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
515cf651 9047 * tree-streamer.h (tree_read_bitfields): Declare.
9048
9049 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
9050 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
9051 * tree-streamer.h (stream_read_tree): New. Replace all calls
9052 to lto_input_tree with it.
9053 (stream_write_tree): New. Replace all calls to lto_output_tree,
9054 lto_output_tree_ref and lto_output_tree_or_ref with it.
9055 * lto-streamer-in.c (lto_read_tree): Inline code from
9056 lto_streamer_read_tree.
9057 (lto_input_tree): Move from tree-streamer-in.c.
9058 * lto-streamer-out.c (lto_output_tree_ref): Make static.
9059 Remove handling of NULL values for EXPR.
9060 Do not handle EXPRs that are not indexable.
9061 (lto_write_tree): Move from tree-streamer-out.c.
9062 Inline lto_streamer_write_tree.
9063 (lto_output_tree): Move from tree-streamer-out.c.
9064 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
9065 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
9066 (lto_preload_common_nodes): Likewise.
9067 Remove assertions and adjustments for nodes
9068 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
9069 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
52d12c0f 9070 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
515cf651 9071 * lto-streamer.h (lto_input_tree): Declare.
9072 (lto_output_tree_ref): Remove.
9073 * streamer-hooks.h (struct streamer_hooks): Remove fields
9074 preload_common_nodes, indexable_with_decls_p,
9075 pack_value_fields, unpack_value_fields and output_tree_header.
9076 Update all users.
9077 * tree-streamer-in.c (lto_materialize_tree): Make extern.
9078 (lto_input_tree_pointers): Likewise.
9079 (lto_read_tree): Move to lto-streamer-in.c.
9080 (lto_input_integer_cst): Make extern.
9081 (lto_get_pickled_tree): Likewise.
9082 (lto_get_builtin_tree): Likewise.
9083 (lto_input_tree): Move to lto-streamer-in.c.
9084 * tree-streamer-out.c (pack_value_fields): Make extern.
9085 (lto_output_tree_or_ref): Remove. Replace all callers with
9086 calls to stream_write_tree.
9087 (lto_output_builtin_tree): Make extern.
9088 (lto_streamer_write_tree): Inline into lto_write_tree.
9089 (lto_output_tree_pointers): Make extern.
9090 (lto_output_tree_header): Likewise.
9091 (lto_output_integer_cst): Likewise.
9092 (lto_write_tree): Move to lto-streamer-out.c.
9093 (lto_output_tree): Likewise.
52d12c0f 9094 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
515cf651 9095 (preload_common_nodes): Likewise.
9096 (lto_streamer_cache_create): Call it.
9097 * tree-streamer.h: Include streamer-hooks.h.
9098 (stream_write_tree): New.
9099 (stream_read_tree): New.
9100 (lto_input_tree): Remove.
9101 (lto_materialize_tree): Declare.
9102 (lto_input_tree_pointers): Declare.
9103 (lto_get_pickled_tree): Declare.
9104 (lto_get_builtin_tree): Declare.
9105 (lto_input_integer_cst): Declare.
9106 (lto_output_tree_header): Declare.
9107 (pack_value_fields): Declare.
9108 (lto_output_tree_pointers): Declare.
9109 (lto_output_integer_cst): Declare.
9110 (lto_output_builtin_tree): Declare.
9111
457f77d1 91122011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
9113
9114 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
9115 only if producer writes to the register given by regno.
9116
60ba0654 91172011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
9118 Alexander Monakov <amonakov@ispras.ru>
9119
9120 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
9121 (sched_get_condition_with_rev_uncached): ... this. Factor out
9122 condition caching logic into ...
9123 (sched_get_condition_with_rev): ... this. Reimplement. Do not
9124 attempt to use cache for instructions with zero luid.
9125 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
9126 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
9127
bdcc104c 91282011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
9129
9130 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
9131 get_seqno_for_a_jump. Update the caller.
9132 (get_seqno_by_succs): New. Use it ...
9133 (get_seqno_for_a_jump): ... here to find a seqno if looking at
9134 predecessors was not sufficient.
9135 (get_seqno_by_preds): Include head in iteration range, exclude insn.
9136
c1c8a3d0 91372011-08-11 Dmitry Melnik <dm@ispras.ru>
9138
9139 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
9140
1f53e226 91412011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
9142
9143 * sel-sched-ir.h (register_unavailable_p): Declare.
9144 * sel-sched-ir.c (register_unavailable_p): New. Use it...
9145 (set_unavailable_target_for_expr): ... here to properly test
9146 availability of a register.
9147 (speculate_expr): Ditto.
9148 * sel-sched.c (substitute_reg_in_expr): Ditto.
9149 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
9150
619459a3 91512011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
9152
9153 * sel-sched.c (verify_target_availability): Fix usage of
9154 hard_regno_nregs.
9155
13434dcb 91562011-08-11 Dmitry Melnik <dm@ispras.ru>
9157
9158 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
9159 recognized by cannot_copy_insn_p hook and volatile instructions.
9160
32bbc704 91612011-08-11 Dmitry Melnik <dm@ispras.ru>
9162
9163 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
9164
2334f0df 91652011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
9166
9167 * doc/md.texi (define_bypass): Say that the instruction names can
9168 be filename-style globs.
9169 * Makefile.in (FNMATCH_H): Define.
9170 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
9171 * genattrtab.c: Include fnmatch.h.
9172 (bypass_list): Change field name from "insn" to "pattern".
9173 (gen_bypass_1): Update accordingly.
9174 (process_bypasses): Use fnmatch to check for matches between
9175 insn reservations and define_bypasses.
9176 * genautomata.c: Include fnmatch.h.
9177 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
9178 and out_pattern respectively.
9179 (gen_bypass, insert_bypass): Update accordingly.
9180 (for_each_matching_insn, process_bypass_2, process_bypass_1)
9181 (process_bypass): New functions.
9182 (process_decls): Use process_bypass. Update after field name changes.
9183
12bf3919 91842011-08-11 Georg-Johann Lay <avr@gjlay.de>
f3dc1120 9185
12bf3919 9186 PR target/49687
9187 * config/avr/avr.md (smulqi3_highpart): New insn.
9188 (umulqi3_highpart): New insn.
9189 (*subqi3.ashiftrt7): New insn.
9190 (smulhi3_highpart): New expander.
9191 (umulhi3_highpart): Nex expander.
9192 (*smulhi3_highpart_call): New insn.
9193 (*umulhi3_highpart_call): New insn.
9194 (extend_u): New code attribute.
9195 (extend_prefix): Rename code attribute to extend_su.
9196 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
9197 widening QI/HI multiply.
9198
243cccda 91992011-08-11 Ira Rosen <ira.rosen@linaro.org>
9200
9201 PR tree-optimization/50039
9202 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
9203 that DEF_STMT has a stmt_vec_info.
9204
c43db984 92052011-08-10 Richard Guenther <rguenther@suse.de>
9206
9207 * tree.h (can_trust_pointer_alignment): Remove.
9208 * builtins.c (can_trust_pointer_alignment): Remove.
9209
7dfa155b 92102011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
9211
9212 * c-typeck.c (scalar_to_vector): New function. Try scalar to
9213 vector conversion.
9214 (stv_conv): New enum for scalar_to_vector return type.
9215 (build_binary_op): Adjust.
9216 * doc/extend.texi: Description of scalar to vector expansion.
9217
957d0361 92182011-08-10 Richard Guenther <rguenther@suse.de>
9219
9220 * tree.h (get_pointer_alignment): Remove max-align argument.
9221 (get_object_alignment): Likewise.
9222 * builtins.c (get_object_alignment_1): Adjust.
9223 (get_object_alignment): Remove max-align argument.
9224 (get_pointer_alignment): Likewise.
9225 (expand_builtin_strlen): Adjust.
9226 (expand_builtin_memcpy): Likewise.
9227 (expand_builtin_mempcpy_args): Likewise.
9228 (expand_builtin_strncpy): Likewise.
9229 (expand_builtin_memset_args): Likewise.
9230 (expand_builtin_memcmp): Likewise.
9231 (expand_builtin_strcmp): Likewise.
9232 (expand_builtin_strncmp): Likewise.
9233 (get_builtin_sync_mem): Likewise.
9234 (fold_builtin_memset): Likewise.
9235 (fold_builtin_memory_op): Likewise.
9236 (expand_builtin_memory_chk): Likewise.
9237 * emit-rtl.c (get_mem_align_offset): Likewise.
9238 (set_mem_attributes_minus_bitpos): Likewise.
9239 * expr.c (expand_assignment): Likewise.
9240 (expand_expr_real_1): Likewise.
9241 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
9242 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
9243 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
9244 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
9245 * value-prof.c (gimple_stringops_transform): Likewise.
9246
4c4bf817 92472011-08-10 Paulo J. Matos <paulo.matos@csr.com>
9248
9249 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
9250 * doc/tm.texi: Regenerate.
9251
20ff4398 92522011-08-10 Georg-Johann Lay <avr@gjlay.de>
52d12c0f 9253
20ff4398 9254 PR target/29560
9255 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
9256 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
9257 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
9258 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
9259 shift target is unused.
9260
f8abb542 92612011-08-10 Richard Guenther <rguenther@suse.de>
9262
9263 PR tree-optimization/49937
9264 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
9265 using get_object_alignment_1.
9266
3af06b97 92672011-08-09 Uros Bizjak <ubizjak@gmail.com>
9268
9269 * config/i386/i386.c (ix86_emit_i387_round): New function.
9270 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
9271 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
9272 Use ix86_emit_i387_round to expand round function for i387 math.
9273 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
9274 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
9275
21889c08 92762011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9277
9278 * config/sync.c: Move to ../libgcc.
3af06b97 9279 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
21889c08 9280 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
9281 Remove.
9282
f7e13ca6 92832011-08-09 Anatoly Sokolov <aesok@post.ru>
9284
9285 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
9286 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
9287 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
9288 Change 'from' and 'to' arguments type to reg_class_t.
9289 (TARGET_REGISTER_MOVE_COST): Define.
9290
10de87c3 92912011-08-09 Vladimir Makarov <vmakarov@redhat.com>
9292
9293 PR target/50026
9294 Revert:
9295 PR rtl-optimization/49990
9296 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
9297 ignore classes which can not change mode.
9298 (find_costs_and_classes): Ditto.
9299
63bb6dcf 93002011-08-09 Richard Guenther <rguenther@suse.de>
9301
9302 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
9303 information for ranges with only negative values.
9304 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
9305 BIT_AND_EXPR handling to handle ranges with negative values.
9306
33541f98 93072011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
9308
52d12c0f 9309 * config/i386/i386.c: Remove traling spaces.
9310 * config/i386/sse.md: Likewise.
9311 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
9312 (*fma_fmsub_<mode>): Likewise.
9313 (*fma_fnmadd_<mode>): Likewise.
9314 (*fma_fnmsub_<mode>): Likewise.
33541f98 9315
07db3800 93162011-08-09 Nick Clifton <nickc@redhat.com>
9317
9318 * config/rx/rx.md: Disable extender peepholes at -O3.
9319
023f367a 93202011-08-09 Uros Bizjak <ubizjak@gmail.com>
9321
9322 PR target/49781
9323 * config/i386/i386.md (reload_noff_load): New.
9324 (reload_noff_store): Ditto.
9325 * config/i386/i386.c (ix86_secondary_reload): Use
9326 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
9327 double-word moves from/to non-offsetable addresses instead of
9328 generating XMM temporary.
9329
9382a007 93302011-08-09 Anatoly Sokolov <aesok@post.ru>
9331
9332 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
9333
d42d0fe0 93342011-08-09 Ira Rosen <ira.rosen@linaro.org>
9335
9336 PR tree-optimization/50014
9337 * tree-vect-loop.c (vectorizable_reduction): Get def type before
9338 calling vect_get_vec_def_for_stmt_copy ().
9339
363f7c88 93402011-08-08 Vladimir Makarov <vmakarov@redhat.com>
9341
9342 PR rtl-optimization/49990
9343 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
9344 ignore classes which can not change mode.
9345 (find_costs_and_classes): Ditto.
9346
a3b0eb41 93472011-08-08 Richard Henderson <rth@redhat.com>
9348
9349 PR middle-end/49990
9350 * config/i386/i386.c (ix86_expand_prologue): Call
9351 for SEH target gen_prologue_use instead of gen_blockage
9352 at prologue's end.
9353
bdb2a896 93542011-08-08 Martin Jambor <mjambor@suse.cz>
9355
9356 PR middle-end/49923
9357 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
9358 memory alignment.
9359
2541503d 93602011-08-08 Diego Novillo <dnovillo@google.com>
9361
9362 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
9363 (DATA_STREAMER_H): New.
9364 (GIMPLE_STREAMER_H): New.
9365 (TREE_STREAMER_H): New.
9366 (STREAMER_HOOKS_H): New.
9367 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
9368 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
9369 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
9370 (data-streamer.o): New.
9371 (data-streamer-in.o): New.
9372 (data-streamer-out.o): New.
9373 (gimple-streamer-in.o): New.
9374 (gimple-streamer-out.o): New.
9375 (streamer-hooks.o): New.
9376 (tree-streamer.o): New.
9377 (tree-streamer-in.o): New.
9378 (tree-streamer-out.o): New.
023f367a 9379 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2541503d 9380 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
9381 GIMPLE_STREAMER_H and TREE_STREAMER_H.
9382 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
9383 GIMPLE_STREAMER_H and TREE_STREAMER_H.
9384 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
023f367a 9385 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2541503d 9386 (ipa-inline-analysis.o): Likewise.
9387 (ipa-pure-const.o): Likewise.
9388 * data-streamer-in.c: New.
9389 * data-streamer-out.c: New.
9390 * data-streamer.c: New.
9391 * data-streamer.h: New.
9392 * gimple-streamer-in.c: New.
9393 * gimple-streamer-out.c: New.
9394 * gimple-streamer.h: New.
9395 * ipa-inline-analysis.c: Include data-streamer.h.
9396 * ipa-prop.c: Include data-streamer.h.
9397 * ipa-pure-const.c: Include data-streamer.h.
9398 * lto-cgraph.c: Include data-streamer.h.
9399 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
9400 (lto_input_widest_uint_uleb128): Likewise.
9401 (lto_input_sleb128): Likewise.
9402 (bp_unpack_var_len_unsigned): Likewise.
9403 (bp_unpack_var_len_int): Likewise.
9404 * lto-section-out.c (lto_output_uleb128_stream): Move to
9405 data-streamer-out.c.
9406 (lto_output_widest_uint_uleb128_stream): Likewise.
9407 (lto_output_sleb128_stream): Likewise.
9408 (bp_pack_var_len_unsigned): Likewise.
9409 (bp_pack_var_len_int): Likewise.
023f367a 9410 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
2541503d 9411 (struct string_slot): Remove. Update all users.
9412 (lto_tag_check_set): Make extern.
9413 (lto_tag_check_range): Move to lto-streamer.h.
9414 (lto_tag_check): Likewise.
9415 (hash_string_slot_node): Remove. Update all users.
9416 (eq_string_slot_node): Remove. Update all users.
9417 (string_for_index): Move to data-streamer-in.c
9418 (input_string_internal): Likewise.
9419 (input_string_cst): Move to tree-streamer-in.c.
9420 (input_identifier): Likewise.
9421 (lto_input_string): Move to data-streamer-in.c
9422 (input_record_start): Move to data-streamer.h
9423 (canon_file_name): Use new definition of struct string_slot
023f367a 9424 from data-streamer.h. Set S_SLOT.LEN.
2541503d 9425 (lto_input_location): Make extern.
9426 (lto_input_chain): Move to tree-streamer-in.c.
9427 (lto_init_eh): Make extern.
9428 (input_phi): Move to gimple-streamer-in.c.
9429 (input_gimple_stmt): Likewise.
9430 (input_bb): Likewise.
9431 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
9432 (unpack_ts_real_cst_value_fields): Likewise.
9433 (unpack_ts_fixed_cst_value_fields): Likewise.
9434 (unpack_ts_decl_common_value_fields): Likewise.
9435 (unpack_ts_decl_wrtl_value_fields): Likewise.
9436 (unpack_ts_decl_with_vis_value_fields): Likewise.
9437 (unpack_ts_function_decl_value_fields): Likewise.
9438 (unpack_ts_type_common_value_fields): Likewise.
9439 (unpack_ts_block_value_fields): Likewise.
9440 (unpack_ts_translation_unit_decl_value_fields): Likewise.
9441 (unpack_value_fields): Likewise.
9442 (lto_materialize_tree): Likewise.
9443 (lto_input_ts_common_tree_pointers): Likewise.
9444 (lto_input_ts_vector_tree_pointers): Likewise.
9445 (lto_input_ts_complex_tree_pointers): Likewise.
9446 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
9447 (lto_input_ts_decl_common_tree_pointers): Likewise.
9448 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
9449 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
9450 (lto_input_ts_field_decl_tree_pointers): Likewise.
9451 (lto_input_ts_function_decl_tree_pointers): Likewise.
9452 (lto_input_ts_type_common_tree_pointers): Likewise.
9453 (lto_input_ts_type_non_common_tree_pointers): Likewise.
9454 (lto_input_ts_list_tree_pointers): Likewise.
9455 (lto_input_ts_vec_tree_pointers): Likewise.
9456 (lto_input_ts_exp_tree_pointers): Likewise.
9457 (lto_input_ts_block_tree_pointers): Likewise.
9458 (lto_input_ts_binfo_tree_pointers): Likewise.
9459 (lto_input_ts_constructor_tree_pointers): Likewise.
9460 (lto_input_ts_target_option): Likewise.
9461 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
9462 (lto_input_tree_pointers): Likewise.
9463 (lto_get_pickled_tree): Likewise.
9464 (lto_get_builtin_tree): Likewise.
9465 (lto_read_tree): Likewise.
9466 (lto_input_integer_cst): Likewise.
9467 (lto_input_tree): Likewise.
9468 * lto-streamer-out.c: Include data-streamer.h,
9469 gimple-streamer.h and streamer-hooks.h.
9470 (struct string_slot): Move to data-streamer.h.
9471 (hash_string_slot_node): Likewise.
9472 (eq_string_slot_node): Likewise.
9473 (lto_string_index): Move to data-streamer-out.c.
9474 (lto_output_string_with_length): Likewise.
9475 (lto_output_string): Likewise.
9476 (output_string_cst): Move to tree-streamer-out.c.
9477 (output_identifier): Likewise.
9478 (output_zero): Move to data-streamer-out.c
9479 (output_uleb128): Likewise.
9480 (output_sleb128): Likewise.
9481 (output_record_start): Move to data-streamer.h
9482 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
9483 (pack_ts_real_cst_value_fields): Likewise.
9484 (pack_ts_fixed_cst_value_fields): Likewise.
9485 (pack_ts_decl_common_value_fields): Likewise.
9486 (pack_ts_decl_wrtl_value_fields): Likewise.
9487 (pack_ts_decl_with_vis_value_fields): Likewise.
9488 (pack_ts_function_decl_value_fields): Likewise.
9489 (pack_ts_type_common_value_fields): Likewise.
9490 (pack_ts_block_value_fields): Likewise.
9491 (pack_ts_translation_unit_decl_value_fields): Likewise.
9492 (pack_value_fields): Likewise.
9493 (lto_output_chain): Likewise.
9494 (lto_output_ts_common_tree_pointers): Likewise.
9495 (lto_output_ts_vector_tree_pointers): Likewise.
9496 (lto_output_ts_complex_tree_pointers): Likewise.
9497 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
9498 (lto_output_ts_decl_common_tree_pointers): Likewise.
9499 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
9500 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
9501 (lto_output_ts_field_decl_tree_pointers): Likewise.
9502 (lto_output_ts_function_decl_tree_pointers): Likewise.
9503 (lto_output_ts_type_common_tree_pointers): Likewise.
9504 (lto_output_ts_type_non_common_tree_pointers): Likewise.
9505 (lto_output_ts_list_tree_pointers): Likewise.
9506 (lto_output_ts_vec_tree_pointers): Likewise.
9507 (lto_output_ts_exp_tree_pointers): Likewise.
9508 (lto_output_ts_block_tree_pointers): Likewise.
9509 (lto_output_ts_binfo_tree_pointers): Likewise.
9510 (lto_output_ts_constructor_tree_pointers): Likewise.
9511 (lto_output_ts_target_option): Likewise.
9512 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
9513 (lto_output_tree_pointers): Likewise.
9514 (lto_output_tree_header): Likewise.
9515 (lto_output_builtin_tree): Likewise.
9516 (lto_write_tree): Likewise.
9517 (lto_output_integer_cst): Likewise.
9518 (lto_output_tree): Likewise.
9519 (output_phi): Move to gimple-streamer-out.c.
9520 (output_gimple_stmt): Likewise.
9521 (output_bb): Likewise.
9522 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
9523 (streamer_hooks): Move to streamer-hooks.c.
9524 (check_handled_ts_structures): Move to tree-streamer.c
9525 (lto_streamer_cache_add_to_node_array): Likewise.
9526 (lto_streamer_cache_insert_1): Likewise.
9527 (lto_streamer_cache_insert): Likewise.
9528 (lto_streamer_cache_insert_at): Likewise.
9529 (lto_streamer_cache_append): Likewise.
9530 (lto_streamer_cache_lookup): Likewise.
9531 (lto_streamer_cache_get): Likewise.
9532 (lto_record_common_node): Likewise.
9533 (lto_preload_common_nodes): Likewise.
9534 (lto_streamer_cache_create): Likewise.
9535 (lto_streamer_cache_delete): Likewise.
9536 (streamer_hooks_init): Move to streamer-hooks.c.
9537 * lto-streamer.h: Include diagnostic.h
9538 (struct output_block, struct lto_input_block,
023f367a 9539 struct data_in, struct bitpack_d): Remove forward declarations.
2541503d 9540 (struct bitpack_d): Move to data-streamer.h.
9541 (struct lto_streamer_cache_d): Move to tree-streamer.h.
9542 (struct streamer_hooks): Move to streamer-hooks.h.
9543 (bp_pack_var_len_unsigned): Move to data-streamer.h.
9544 (bp_pack_var_len_int): Likewise.
9545 (bp_unpack_var_len_unsigned): Likewise.
9546 (bp_unpack_var_len_int): Likewise.
9547 (lto_input_location): Declare.
9548 (lto_tag_check_set): Declare.
9549 (lto_init_eh): Declare.
9550 (lto_output_tree_ref): Declare.
9551 (lto_output_location): Declare.
9552 (bitpack_create): Move to data-streamer.h.
9553 (bp_pack_value): Likewise.
9554 (lto_output_bitpack): Likewise.
9555 (lto_input_bitpack): Likewise.
9556 (bp_unpack_value): Likewise.
9557 (lto_output_1_stream): Likewise.
9558 (lto_input_1_unsigned): Likewise.
9559 (lto_output_int_in_range): Likewise.
9560 (lto_input_int_in_range): Likewise.
9561 (bp_pack_int_in_range): Likewise.
9562 (bp_unpack_int_in_range): Likewise.
9563 (lto_output_enum): Likewise.
9564 (lto_input_enum): Likewise.
9565 (bp_pack_enum): Likewise.
9566 (bp_unpack_enum): Likewise.
9567 * streamer-hooks.c: New.
9568 * streamer-hooks.h: New.
9569 * tree-streamer-in.c: New.
9570 * tree-streamer-out.c: New.
9571 * tree-streamer.c: New.
9572 * tree-streamer.h: New.
9573
fe5ef4a0 95742011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9575
9576 * gthr-posix95.h: Remove.
9577 * gthr.h [_PTHREADS95]: Remove.
9578 * configure.ac (enable_threads): Remove posix95.
9579 * configure: Regenerate.
023f367a 9580 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
fe5ef4a0 9581
023f367a 95822011-08-08 Uros Bizjak <ubizjak@gmail.com>
2938eab6 9583
9584 PR target/49781
9585 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
9586 SImode addresses.
9587 (ix86_print_operand_address): Handle zero-extended addresses.
9588 (memory_address_length): Add length of addr32 prefix for
9589 zero-extended addresses.
9590 (ix86_secondary_reload): Handle moves to/from double-word general
9591 registers from/to zero-extended addresses.
9592 * config/i386/predicates.md (lea_address_operand): Reject
9593 zero-extended operands.
9594
e451a093 95952011-08-08 H.J. Lu <hongjiu.lu@intel.com>
9596
9597 PR other/48007
2938eab6 9598 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
e451a093 9599
9600 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
9601 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
9602
9603 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
9604 (_Unwind_Context_Reg_Val): Likewise.
9605 (_Unwind_Get_Unwind_Word): Likewise.
9606 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
9607 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
9608 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
9609 for EXTENDED_CONTEXT_BIT.
9610 (__frame_state_for): Likewise.
9611 (uw_init_context_1): Likewise.
9612 (_Unwind_GetGR): Updated.
9613 (_Unwind_SetGR): Likewise.
9614 (_Unwind_GetGRPtr): Likewise.
9615 (_Unwind_SetGRPtr): Likewise.
9616 (_Unwind_SetGRValue): Likewise.
9617 (_Unwind_GRByValue): Likewise.
9618 (uw_install_context_1): Likewise.
9619
9620 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
9621 ASSUME_EXTENDED_UNWIND_CONTEXT.
9622 * doc/tm.texi: Regenerated.
9623
77eb3c2f 96242011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9625
9626 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
9627
e5220601 96282011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9629
9630 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
9631 Linux/GNU-specific.
9632 (DEC Alpha Options, -mtune): Likewise.
9633 (MIPS Options, -march): native is supported on IRIX.
9634
76fd9e61 96352011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9636
9637 * config/sparc/driver-sparc.c: New file.
9638 * config/sparc/x-sparc: New file.
2938eab6 9639 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
9640 * config/sparc/sparc.opt (native): New value for enum processor_type.
76fd9e61 9641 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
9642 * config/sparc/sparc.c (sparc_option_override): Abort if
9643 PROCESSOR_NATIVE gets here.
9644 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
9645 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
9646 DRIVER_SELF_SPECS): Define.
9647 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
9648 (SPARC Options, -mtune): Likewise.
9649 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
9650 Substitute result.
9651 * configure: Regenerate.
9652 * Makefile.in (EXTRA_GCC_LIBS): Set.
9653 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
9654 (cpp$(exeext)): Likewise.
9655
113fbe09 96562011-08-08 Richard Guenther <rguenther@suse.de>
9657
9658 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
9659 split out from ...
9660 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
9661 by composition.
9662
92c6b5e2 96632011-08-08 Mikael Pettersson <mikpe@it.uu.se>
9664
9665 PR tree-optimization/50005
9666 * ipa-inline-analysis (remap_predicate): Add cast to
9667 silence signed/unsigned comparison warning.
9668
2beb48b8 96692011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
9670
9671 * modulo-sched.c (get_sched_window): Use a table for the debug output.
9672 Print the current ii.
9673 (sms_schedule_by_order): Reduce whitespace in dump line.
9674
0f7b323c 96752011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
9676
9677 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
9678 and one loop for successors. Fix upper bound of memory range.
9679
0d25d8c2 96802011-08-06 Uros Bizjak <ubizjak@gmail.com>
9681
9682 PR target/50001
9683 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
9684 (TARGET_INSTANTIATE_DECLS): New define.
9685
43406128 96862011-08-06 Paolo Bonzini <bonzini@gnu.org>
2938eab6 9687 Mikael Morin <mikael.morin@sfr.fr>
43406128 9688
9689 * Makefile.in (INCLUDES_FOR_TARGET): New.
9690 (LIBGCC2_CFLAGS): Use it.
0d25d8c2 9691 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
43406128 9692
5c616237 96932011-08-06 Uros Bizjak <ubizjak@gmail.com>
9694
9695 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
9696 frame->save_regs_using_mov calculation.
9697
675d6e0d 96982011-08-06 Uros Bizjak <ubizjak@gmail.com>
9699
9700 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
9701 * config/i386/sse.md (castmode): New mode attribute.
9702 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
9703 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
9704
4dbe7ac1 97052011-08-05 Jan Hubicka <jh@suse.cz>
9706
9707 PR middle-end/49494
9708 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
9709
478e80e0 97102011-08-05 Jan Hubicka <jh@suse.cz>
9711
9712 PR middle-end/49500
9713 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
9714 handle aliases.
9715 (create_emultls_var):New function.
9716 (ipa_lower_emutls): Handle aliases correctly.
9717
67baa302 97182011-08-05 Jan Hubicka <jh@suse.cz>
9719
9720 PR middle-end/49735
9721 * ipa-inline.c (recursive_inlining): Look through aliases.
9722
01bb102a 97232011-08-05 Jason Merrill <jason@redhat.com>
9724
9725 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
9726 declarations to beginning of function.
9727
902ef38a 97282011-08-05 Bernd Schmidt <bernds@codesourcery.com>
9729
9730 PR rtl-optimization/49900
9731 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
9732 ensure basic blocks stay in the same order.
9733
b634c730 97342011-08-05 Aldy Hernandez <aldyh@redhat.com>
9735
9736 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
9737 store_bit_field.
9738 (s390_expand_atomic): Same.
9739
b0fb421c 97402011-08-05 Richard Henderson <rth@redhat.com>
9741
9742 PR rtl-opt/49977
9743 * dwarf2cfi.c (scan_insn_after): Split out of ...
9744 (scan_trace): ... here. Correctly place notes wrt sequences.
9745
5b2686e6 97462011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
9747 Richard Henderson <rth@redhat.com>
9748
9749 PR rtl-opt/49982
9750 * expr.c (fixup_args_size_notes): Look through no-op moves.
9751
13acb9da 97522011-08-05 Uros Bizjak <ubizjak@gmail.com>
9753
9754 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
9755 of "m" for operand 0. Add type and mode attribute.
9756 (*pushxf_nointeger"): Use "<" constraint for operand 0.
9757 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
9758 constraint instead of "o" for opreand 1.
9759 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
e10cb373 9760 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
9761 operand 0, alternative 4.
9762 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
13acb9da 9763
97642011-08-05 Uros Bizjak <ubizjak@gmail.com>
9765
9766 * config/i386/predicates.md (lea_address_operand): Rename from
9767 no_seg_address_operand.
9768 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
9769 (*lea_1_zext): Ditto.
9770 (*lea_2): Ditto.
9771 (*lea_2_zext): Ditto.
9772
97732011-08-05 Uros Bizjak <ubizjak@gmail.com>
9774
9775 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
9776 parts.base and parts.index.
9777 * config/i386/predicates.md (aligned_operand): Ditto.
9778 (cmpxchg8b_pic_memory_operand): Ditto.
9779
84600db5 97802011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9781
9782 * config/soft-fp: Move to ../libgcc.
9783 * Makefile.in (SFP_MACHINE): Remove.
9784 (libgcc-support): Remove $(SFP_MACHINE) dependency.
9785 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
9786 * config/arm/t-arm-softfp: Move to
9787 ../libgcc/config/arm/t-softfp.
9788 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
9789 * config/c6x/t-c6x-softfp: Remove.
9790 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
9791 * config/i386/t-fprules-softfp: Move to
9792 ../libgcc/config/t-softfp-tf.
9793 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
9794 * config/ia64/t-fprules-softfp: Remove.
9795 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
9796 * config/lm32/t-fprules-softfp: Remove.
9797 * config/moxie/sfp-machine.h: Remove.
9798 * config/moxie/t-moxie-softfp: Remove.
9799 * config/rs6000/darwin-ldouble-format: Move to
9800 ../libgcc/config/rs6000/ibm-ldouble-format.
9801 * config/rs6000/darwin-ldouble.c: Move to
9802 ../libgcc/config/rs6000/ibm-ldouble.c
9803 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
9804 * config/rs6000/libgcc-ppc64.ver: Likewise.
9805 * config/rs6000/sfp-machine.h: Likewise.
9806 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
9807 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
9808 (LIB2FUNCS_EXTRA): Remove.
9809 (TARGET_LIBGCC2_CFLAGS): Remove.
9810 * config/rs6000/t-aix52: Likewise
9811 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
9812 $(srcdir)/config/rs6000/darwin-ldouble.c.
9813 (SHLIB_MAPFILES): Remove.
9814 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
9815 $(srcdir)/config/rs6000/darwin-ldouble.c.
9816 * config/rs6000/t-fprules-softfp: Move to
9817 ../libgcc/config/t-softfp-sfdf.
9818 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
9819 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
9820 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
9821 $(srcdir)/config/rs6000/darwin-ldouble.c.
9822 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
9823 * config/score/t-score-softfp: Remove.
9824 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
9825 soft-fp/t-softfp from tmake_file.
9826 (arm*-*-uclinux*): Likewise.
9827 (arm*-*-ecos-elf): Likewise.
9828 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
9829 (arm*-*-rtems*): Likewise.
9830 (arm*-*-elf): Likewise.
9831 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
9832 tmake_file.
9833 (moxie-*-uclinux*): Likewise.
9834 (moxie-*-rtems*): Likewise.
9835 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
9836 tmake_file.
9837 (lm32-*-rtems*): Likewise.
9838 (lm32-*-uclinux*): Likewise.
9839 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
9840 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
9841 (powerpc-*-linux*, powerpc64-*-linux*): Remove
9842 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
9843 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
9844 tmake_file.
9845 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
9846 tmake_file.
9847 (tic6x-*-uclinux): Likewise.
9848 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
9849 soft-fp/t-softfp from tmake_file.
9850 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
9851 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
9852 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
13acb9da 9853 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
84600db5 9854 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
9855
a23b9c51 98562011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9857
9858 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
13acb9da 9859 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
a23b9c51 9860 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
9861 TPBIT, TPBIT_FUNCS.
9862 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
9863 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
9864 Remove.
9865 * config/arm/t-vxworks: Likewise.
9866 * config/arm/t-wince-pe: Likewise.
9867 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
9868 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9869 * config/bfin/t-bfin-elf: Likewise.
9870 * config/bfin/t-bfin-linux: Likewise.
9871 * config/bfin/t-bfin-uclinux: Likewise.
9872 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
9873 Remove.
9874 * config/fr30/t-fr30: Likewise.
9875 * config/frv/t-frv: Likewise.
9876 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
9877 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9878 * config/m32c/t-m32c: Likewise.
9879 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
9880 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9881 * config/mcore/t-mcore: Likewise.
9882 * config/mep/t-mep: Likewise.
9883 * config/microblaze/t-microblaze: Likewise.
9884 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
9885 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9886 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
9887 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9888 * config/mn10300/t-linux: Remove.
9889 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9890 * config/pdp11/t-pdp11: Likewise.
9891 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
9892 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
9893 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9894 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
9895 * config/rs6000/t-aix52: Likewise.
9896 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
9897 $(srcdir)/config/rs6000/ppc64-fp.c.
9898 * config/rs6000/t-fprules-fpbit: Remove.
9899 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
9900 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9901 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
9902 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9903 * config/sparc/t-elf: Likewise.
9904 * config/sparc/t-leon: Likewise.
9905 * config/sparc/t-leon3: Likewise.
9906 * config/spu/t-spu-elf: Likewise.
9907 (DPBIT_FUNCS): Remove.
9908 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
9909 * config/v850/t-v850: Likewise.
9910 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
9911 (avr-*-*): Likewise.
9912 (h8300-*-rtems*): Set libgcc_tm_file.
9913 (h8300-*-elf*): Likewise.
9914 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
9915 tmake_file.
9916 (powerpc-*-eabisim*): Likewise.
9917 (powerpc-*-elf*): Likewise.
9918 (powerpc-*-eabialtivec*): Likewise.
9919 (powerpc-xilinx-eabi*): Likewise.
9920 (powerpc-*-eabi*): Likewise.
9921 (powerpc-*-rtems*): Likewise.
9922 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
9923 (powerpcle-*-elf*): Likewise.
9924 (powerpcle-*-eabisim*): Likewise.
9925 (powerpcle-*-eabi*): Likewise.
9926 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
9927 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
9928 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
9929 Remove.
9930
e59be7e3 99312011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9932
9933 * Makefile.in (UNWIND_H): Remove.
9934 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
9935 ../libgcc/Makefile.in.
9936 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
9937 (LIBUNWINDDEP): Remove.
9938 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
9939 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
9940 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
9941 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
9942 Don't copy $(UNWIND_H).
13acb9da 9943 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
e59be7e3 9944 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
9945 * aclocal.m4: Regenerate.
9946 * configure: Regenerate.
9947 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
9948 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
9949 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
9950 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
9951 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
9952 * config/arm/libunwind.S, config/arm/pr-support.c,
9953 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
9954 ../libgcc/config/arm.
9955 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
9956 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
9957 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
9958 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
9959 ($(T)frvend$(objext)): Likewise.
9960 * config/ia64/t-glibc (LIB2ADDEH): Remove.
9961 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
9962 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
9963 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
9964 ../libgcc/config/ia64.
9965 * config/ia64/t-hpux (LIB2ADDEH): Remove.
9966 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
9967 * config/ia64/t-vms (LIB2ADDEH): Remove.
9968 * config/ia64/vms.h (UNW_IVMS_MODE,
9969 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
9970 * config/picochip/t-picochip (LIB2ADDEH): Remove.
9971 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
9972 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
9973 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
9974 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
9975 $(srcdir)/../libgcc to refer to unwinder sources.
9976 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
9977 * config/t-darwin (LIB2ADDEH): Remove.
9978 * config/t-freebsd (LIB2ADDEH): Remove.
9979 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
9980 * config/t-libunwind-elf: Move to ../libgcc/config.
9981 * config/t-linux (LIB2ADDEH): Remove.
9982 * config/t-sol2 (LIB2ADDEH): Remove.
9983 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
9984 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
9985
4e51667e 99862011-08-05 H.J. Lu <hongjiu.lu@intel.com>
9987
9988 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
9989
9990 * doc/invoke.texi: Document core-avx-i.
9991
6aec97be 99922011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9993
9994 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
9995
2f4ce795 99962011-08-05 Ira Rosen <ira.rosen@linaro.org>
9997
9998 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
9999 result of multiple results reduction when extracting the final
10000 value using scalar code.
10001
6c696748 100022011-08-05 Richard Guenther <rguenther@suse.de>
10003
10004 PR tree-optimization/49984
10005 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
10006
f26adbc1 100072011-08-05 Richard Guenther <rguenther@suse.de>
10008
10009 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
10010 return true for constant integer ranges.
10011 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
10012 BIT_IOR_EXPR handling.
10013
2190c507 100142011-08-04 Kai Tietz <ktietz@redhat.com>
10015
10016 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
10017 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
10018
45eea33f 100192011-08-04 Ira Rosen <ira.rosen@linaro.org>
10020
10021 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
10022 pattern def statement, and its access macro.
10023 (NUM_PATTERNS): Set to 5.
10024 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
10025 pattern def statement.
10026 (vect_transform_loop): Likewise.
10027 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
10028 function vect_recog_over_widening_pattern ().
10029 (vect_operation_fits_smaller_type): New function.
10030 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
10031 Likewise.
10032 (vect_pattern_recog_1): Move the code that marks pattern
10033 statements to vect_mark_pattern_stmts (), and call it. Update
10034 documentation.
10035 * tree-vect-stmts.c (vect_supportable_shift): New function.
10036 (vect_analyze_stmt): Handle pattern def statement.
10037 (new_stmt_vec_info): Initialize pattern def statement.
10038
83a435b8 100392011-08-04 Richard Henderson <rth@redhat.com>
10040
10041 PR target/49964
10042 * config/i386/i386.c (ix86_expand_call): Don't create nested
10043 PARALLELs for TARGET_VZEROUPPER.
10044 (ix86_split_call_vzeroupper): Fix extraction of the original call.
10045 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
10046 recognize nested PARALLELs.
10047 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
10048 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
10049 *sibcall_value_pop_vzeroupper): Likewise.
10050
897445c7 100512011-08-04 Richard Henderson <rth@redhat.com>
10052
10053 PR middle-end/49968
10054 * calls.c (expand_call): Use fixup_args_size_notes for
10055 emit_stack_restore.
10056 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
10057 in non-standard modes.
10058
bd3ce038 100592011-08-04 Jakub Jelinek <jakub@redhat.com>
10060
10061 * gcc.c (self_spec): New variable.
10062 (static_specs): Add self_spec.
10063 (main): Call do_self_spec on "self_spec" specs after reading
10064 user specs files. Move compare_debug handling right after that.
10065
c37659ce 100662011-08-04 Richard Guenther <rguenther@suse.de>
10067
10068 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
10069 (value_range_nonnegative_p): New function.
10070 (ssa_name_nonnegative_p): Use it.
10071 (value_range_constant_singleton): New function.
10072 (op_with_constant_singleton_value_range): Use it.
10073 (extract_range_from_binary_expr_1): New function, split out from ...
10074 (extract_range_from_binary_expr): ... this. Remove fallback
10075 constant folding done here.
10076
d6f3306a 100772011-08-04 Richard Guenther <rguenther@suse.de>
10078
10079 PR tree-optimization/49806
10080 * tree-vrp.c (op_with_boolean_value_range_p): New function.
10081 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
10082 a new statement for a final conversion to bool.
10083
6d70c713 100842011-08-04 Romain Geissler <romain.geissler@gmail.com>
10085
10086 * gengtype-state.c: Include "bconfig.h" if
10087 GENERATOR_FILE is defined, "config.h" otherwise.
10088 * gengtype.c: Likewise.
10089 * gengtype-lex.l: Likewise.
10090 * gengtype-parse.c: Likewise.
10091 * Makefile.in (gengtype-lex.o-warn): New variable.
10092 (plugin_resourcesdir): Likewise.
10093 (plugin_bindir): Likewise.
10094 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
10095 (MOSTLYCLEANFILES): Add gengtype$(exeext).
10096 (native): Depend on gengtype$(exeext) is $enable_plugin
10097 is set to "yes".
10098 (gtype.state): Depend on s-gtype. Use temporary file.
10099 (gengtype-lex.o): New rule.
10100 (gengtype-parse.o): Likewise.
10101 (gengtype-state.o): Likewise.
10102 (gengtype$(exeext)): Likewise.
10103 (install-gengtype): Likewise.
10104 (gengtype.o): Likewise.
10105 (build/gengtype.o): Depend on version.h.
10106 (build/gengtype-state): Depend on double-int.h, version.h,
10107 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
10108 (install-plugin): Depend on install-gengtype.
10109
b7831f3e 101102011-08-04 Jakub Jelinek <jakub@redhat.com>
10111
10112 PR middle-end/49905
10113 * tree.h (init_attributes): New prototype.
10114 * attribs.c (init_attributes): No longer static.
10115
1ef7c666 101162011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10117
10118 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
10119 maybe_suffix.
10120
ece97230 101212011-08-03 David Li <davidxl@google.com>
10122
10123 * tree-optimize.c (execute_fixup_cfg): Fix up entry
10124 outgoing edge counts after inlining.
10125
a648ea35 101262011-08-03 David Li <davidxl@google.com>
10127
10128 * profile.c (compute_branch_probabilities): Compute
10129 function frequency after profile annotation.
10130
01d6314d 101312011-08-04 Alan Modra <amodra@gmail.com>
10132
10133 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
10134 use_backchain_to_restore_sp initialisation.
10135 (rs6000_legitimate_offset_address_p): Simplify offset test.
10136
342ec65b 101372011-08-03 Richard Henderson <rth@redhat.com>
10138
10139 * config/spu/spu.md: Use define_c_enum instead of define_constants.
10140 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
10141 (UNSPECV_NOP): New.
10142
2324fa12 101432011-08-03 Richard Henderson <rth@redhat.com>
10144
10145 PR target/34888
10146 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
10147
68b093cd 101482011-08-03 Jakub Jelinek <jakub@redhat.com>
10149
10150 PR tree-optimization/49948
10151 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
10152
afe8797e 101532011-08-03 Anatoly Sokolov <aesok@post.ru>
10154
10155 * config/m32c/m32c.c (class_sizes): Remove.
10156 (reduce_class): Change arguments and return type to reg_class_t.
10157 Change type cc var to HARD_REG_SET. Change type best var to
10158 reg_class_t. Change type best_size var to unsigned int. Remove
10159 initialization class_sizes var. Use reg_class_size array instead
10160 of class_sizes. Use reg_class_contents array instead
10161 of class_contents.
10162
105f72b0 101632011-08-03 Richard Guenther <rguenther@suse.de>
10164
10165 PR middle-end/49958
10166 * fold-const.c (fold_binary_loc): Only associate
10167 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
10168 overflow wraps.
10169
e0691b9a 101702011-08-03 Alan Modra <amodra@gmail.com>
10171
10172 PR rtl-optimization/49941
10173 * jump.c (mark_jump_label): Comment.
10174 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
10175 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
10176 (mark_used_flags): Don't mark RETURN.
10177
7624240a 101782011-08-03 Richard Guenther <rguenther@suse.de>
10179
10180 PR tree-optimization/49938
10181 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
10182 deal with a POLYNOMIAL_CHREC.
10183
a5ea7ace 101842011-08-03 Revital Eres <revital.eres@linaro.org>
10185
10186 * modulo-sched.c (calculate_stage_count,
10187 calculate_must_precede_follow, get_sched_window,
10188 try_scheduling_node_in_cycle, remove_node_from_ps): Add
10189 declaration.
10190 (update_node_sched_params, set_must_precede_follow, optimize_sc):
10191 New functions.
10192 (reset_sched_times): Call update_node_sched_params.
10193 (sms_schedule): Call optimize_sc.
10194 (get_sched_window): Change function arguments.
10195 (sms_schedule_by_order): Update call to get_sched_window.
10196 Call set_must_precede_follow.
10197 (calculate_stage_count): Add function argument.
10198
dfe00a8f 101992011-08-02 Richard Henderson <rth@redhat.com>
10200
10201 PR target/49864
bad07f00 10202 PR target/49879
dfe00a8f 10203 * reg-notes.def (REG_ARGS_SIZE): New.
10204 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
10205 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
10206 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
10207 different stack levels.
10208 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
10209 (maybe_move_args_size_note): New.
10210 (combine_stack_adjustments_for_block): Use it.
10211 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
10212 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
10213 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
10214 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
10215 (cur_cfa): New.
10216 (queued_args_size): Remove.
10217 (add_cfi_args_size): Assert size is non-negative.
10218 (stack_adjust_offset, dwarf2out_args_size): Remove.
10219 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
10220 (notice_args_size, notice_eh_throw): New.
10221 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
10222 (dwarf2out_frame_debug_adjust_cfa): Likewise.
10223 (dwarf2out_frame_debug_cfa_offset): Likewise.
10224 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
10225 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
10226 (change_cfi_row): Don't emit args_size.
10227 (maybe_record_trace_start_abnormal): Split out from ...
10228 (maybe_record_trace_start): Here. Set args_size_undefined.
10229 (create_trace_edges): Update to match.
10230 (scan_trace): Handle REG_ARGS_SIZE.
10231 (connect_traces): Connect args_size between EH insns.
10232 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
10233 * explow.c (suppress_reg_args_size): New.
10234 (adjust_stack_1): Split out from ...
10235 (adjust_stack): ... here.
10236 (anti_adjust_stack): Use it.
10237 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
10238 * expr.c (mem_autoinc_base): New.
10239 (fixup_args_size_notes): New.
10240 (emit_single_push_insn_1): Rename from emit_single_push_insn.
10241 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
10242 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
10243 * reload1.c (reload_as_needed): Likewise.
10244 * rtl.h (fixup_args_size_notes): Declare.
10245
5ebd604f 102462011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
10247
10248 PR bootstrap/49914
10249 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
10250 of abs.
10251 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
10252 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
10253
a5c6cfdd 102542011-08-02 Richard Henderson <rth@redhat.com>
10255
10256 * config/h8300/h8300.c (push, pop): Return the insn.
10257 (h8300_swap_into_er6): Generate correct unwind info.
10258 (h8300_swap_out_of_er6): Likewise.
eadd7e6b 10259 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
10260 complex cfa expression.
10261 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
a5c6cfdd 10262
78be71f4 102632011-08-02 H.J. Lu <hongjiu.lu@intel.com>
10264
10265 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10266
e8bd1224 102672011-08-02 Richard Henderson <rth@redhat.com>
10268
10269 PR target/49878
10270 * config/h8300/h8300.c (h8300_move_ok): New.
10271 * config/h8300/h8300-protos.h: Declare it.
10272 * config/h8300/h8300.md (P): New mode iterator.
10273 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
10274 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
10275 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
10276 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
10277 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
10278 and pushqi1_h8300hs_normal; use PRE_MODIFY and
10279 register_no_sp_elim_operand.
10280 (*pushhi1_h8300hs_<P>): Similarly.
10281 (pushqi1, pushhi1, pushhi1_h8300): Remove.
10282 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
10283
090df986 102842011-08-02 Richard Henderson <rth@redhat.com>
10285
10286 PR target/49881
10287 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
10288
2169f33b 102892011-08-02 Jakub Jelinek <jakub@redhat.com>
10290
10291 * c-parser.c (enum c_parser_prec): New enum, moved from within
10292 c_parser_binary_expression.
10293 (c_parser_binary_expression): Add PREC argument. Stop parsing
10294 if operator has lower or equal precedence than PREC.
10295 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
10296 callers.
10297 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
10298 Adjust c_finish_omp_atomic caller.
10299 (c_parser_omp_taskyield): New function.
10300 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
10301 (c_parser_omp_clause_name): Handle final and mergeable clauses.
10302 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
10303 functions.
10304 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
10305 and PRAGMA_OMP_CLAUSE_MERGEABLE.
10306 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
10307 (c_parser_omp_clause_reduction): Handle min and max.
10308 * c-typeck.c (c_finish_omp_clauses): Don't complain about
10309 const qualified predetermined vars in firstprivate clause.
10310 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
10311 Handle MIN_EXPR and MAX_EXPR.
10312 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
10313 and OMP_CLAUSE_MERGEABLE.
10314 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
10315 and OMP_ATOMIC_CAPTURE_NEW.
10316 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
10317 OMP_CLAUSE_MERGEABLE.
10318 (omp_clause_code_name): Likewise.
10319 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
10320 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
10321 and OMP_CLAUSE_MERGEABLE.
10322 (OMP_CLAUSE_FINAL_EXPR): Define.
10323 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
10324 OMP_CLAUSE_MERGEABLE.
10325 (expand_task_call): Likewise.
10326 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
10327 (expand_omp_atomic_fetch_op): Handle cases where old or new
10328 value is needed afterwards.
10329 (expand_omp_atomic): Call expand_omp_atomic_load resp.
10330 expand_omp_atomic_store.
10331 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
10332 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
10333 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
10334 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
10335 * tree-nested.c (convert_nonlocal_omp_clauses,
10336 convert_local_omp_clauses): Likewise.
10337 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
10338 OMP_ATOMIC_CAPTURE_NEW): New.
10339 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
10340 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
10341 New inlines.
10342 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
10343 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
10344 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
10345
75200312 103462011-08-02 Kai Tietz <ktietz@redhat.com>
10347
10348 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
10349 boolean-type.
10350 (ssa_forward_propagate_and_combine): Interprete result of
10351 forward_propagate_comparison.
10352 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
10353 boolean-typed operands for comparisons.
10354
a5717a97 103552011-08-02 Georg-Johann Lay <avr@gjlay.de>
e0691b9a 10356
a5717a97 10357 * config/avr/libgcc.S: Gather related function in the
10358 same input section.
e0691b9a 10359 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
a5717a97 10360 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
10361 references.
10362 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
10363 __udivmodsi4, __divmodsi4, __prologue_saves__,
10364 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
10365 __do_copy_data, __do_clear_bss, __do_global_ctors,
10366 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
10367
1d57f0d3 103682011-08-02 Uros Bizjak <ubizjak@gmail.com>
10369
10370 PR target/47766
10371 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
10372 (stack_protect_test): The pattern compares ptr_mode value.
10373
3d573bac 103742011-08-02 Alan Modra <amodra@gmail.com>
10375
10376 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
10377 note for save_LR_around_toc_setup sequence.
10378
b19d44e5 103792011-08-01 H.J. Lu <hongjiu.lu@intel.com>
10380
1d57f0d3 10381 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
b19d44e5 10382
2fa63533 103832011-08-01 Sebastian Pop <sebastian.pop@amd.com>
10384 Joseph Myers <joseph@codesourcery.com>
10385
10386 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
10387 * hwint.c: Include diagnostic-core.h.
10388 (abs_hwi): New.
10389 (gcd): Moved here...
10390 (pos_mul_hwi): New.
10391 (mul_hwi): New.
10392 (least_common_multiple): Moved here...
10393 * hwint.h (gcd): ... from here.
10394 (least_common_multiple): ... from here.
10395 (HOST_WIDE_INT_MIN): New.
10396 (HOST_WIDE_INT_MAX): New.
10397 (abs_hwi): Declared.
10398 (gcd): Declared.
10399 (pos_mul_hwi): Declared.
10400 (mul_hwi): Declared.
10401 (least_common_multiple): Declared.
10402 * omega.c (check_pos_mul): Removed.
10403 (check_mul): Removed.
10404 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
10405 mul_hwi instead of check_mul.
10406
22d4c405 104072011-08-01 Richard Henderson <rth@redhat.com>
10408
10409 PR target/49881
10410 * config/avr/avr.h (PUSH_ROUNDING): New.
10411 * config/avr/avr.md (pushqi1): Rename from *pushqi.
10412 (*pushhi, *pushsi, *pushsf): Remove.
10413 (MPUSH): New mode iterator.
10414 (push<MPUSH>1): New expander.
10415
27925877 104162011-08-01 Anatoly Sokolov <aesok@post.ru>
10417
10418 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
10419 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
10420 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
10421 mmix_preferred_output_reload_class): Remove.
10422 * config/mmix/mmix.c (mmix_preferred_reload_class,
10423 mmix_preferred_output_reload_class): Make static. Change rclass
10424 argument and return type to reg_class_t.
10425 (TARGET_PREFERRED_RELOAD_CLASS,
10426 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10427
aadec354 104282011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
10429
10430 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
10431 handling.
10432
6e353f72 104332011-08-01 H.J. Lu <hongjiu.lu@intel.com>
10434
10435 PR target/47766
10436 * config/i386/i386.md (PTR): New.
10437 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
10438 (stack_protect_test): Likewise.
10439 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
10440 (stack_tls_protect_set_<mode>): Likewise.
10441 (stack_tls_protect_test_<mode>): Likewise.
10442
3c22703a 104432011-08-01 Uros Bizjak <ubizjak@gmail.com>
10444
10445 PR target/49927
10446 * config/i386/i386.c (ix86_address_subreg_operand): New.
10447 (ix86_decompose_address): Use ix86_address_subreg_operand.
10448 (ix86_legitimate_address_p): Do not assert that subregs satisfy
10449 register_no_elim_operand in DImode.
10450
6b809b99 104512011-08-01 Ira Rosen <ira.rosen@linaro.org>
10452
10453 PR tree-optimization/49926
10454 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
10455 in a chain doesn't have uses both inside and outside the loop.
10456
6db2e6e8 104572011-08-01 Georg-Johann Lay <avr@gjlay.de>
3c22703a 10458
6db2e6e8 10459 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
10460 * config/avr/avr-devices.c (avr_mcu_types): Use it.
10461 * config/avr/avr-mcus.def (AVR_MCU): Use it.
10462 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
10463 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
10464 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
10465 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
10466 to detect if XJMP must not be skipped.
10467
9a4af446 104682011-08-02 Alan Modra <amodra@gmail.com>
10469
3c22703a 10470 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
10471 Delete.
9a4af446 10472 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
10473 (rs6000_emit_prologue): Don't prematurely return when
10474 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
10475 save_toc_in_prologue case.
10476 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
10477 calls_alloca.
10478
efc29afe 104792011-08-01 Georg-Johann Lay <avr@gjlay.de>
9a4af446 10480
efc29afe 10481 * config/avr/avr-devices.c: Delete SVN property svn:executable.
10482 * config/avr/predicates.md: Ditto.
10483 * config/avr/driver-avr.c: Ditto.
10484 * config/avr/genopt.sh: Set SVN property svn:executable to *.
10485
ab6e3ce0 104862011-08-01 H.J. Lu <hongjiu.lu@intel.com>
10487
10488 * calls.c (emit_library_call_value_1): Declare size only if
10489 BLOCK_REG_PADDING is defined.
10490
a3398ee6 104912011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
10492
10493 PR target/49547
3c22703a 10494 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
a3398ee6 10495 (x86_64-*-*): Likewise.
10496 * config/i386/i386.opt (mlzcnt): New.
10497 * config/i386/abmintrin.h: File removed.
10498 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
3c22703a 10499 * config/i386/lzcntintrin.h: ... here. New file.
a3398ee6 10500 (__lzcnt): Rename to ...
10501 (__lzcnt32): ... this.
10502 * config/i386/bmiintrin.h (head): Update copyright year.
10503 (__lzcnt_u16): Removed.
10504 (__lzcnt_u32): Likewise.
10505 (__lzcnt_u64): Likewise.
10506 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
10507 is defined, remove abmintrin.h.
10508 * config/i386/cpuid.h (bit_LZCNT): New.
10509 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
10510 LZCNT feature.
10511 * config/i386/i386-c.c (ix86_target_macros_internal): Define
10512 __LZCNT__ if needed.
10513 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
10514 (ix86_option_override_internal): Handle LZCNT option.
10515 (ix86_valid_target_attribute_inner_p): Likewise.
10516 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
10517 * config/i386/i386.h (TARGET_LZCNT): New.
10518 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
10519 * config/i386/i386.md (clz<mode>2): Update insn constraint.
10520 (clz<mode>2_lzcnt): Likewise.
10521 * doc/invoke.texi: Mention -mlzcnt option.
10522 * doc/extend.texi: Likewise.
10523
bbbe4599 105242011-08-01 Julian Brown <julian@codesourcery.com>
10525
10526 * configure.ac (fixed-point): Add ARM support.
10527 * configure: Regenerate.
10528 * config/arm/arm.c (arm_fixed_mode_set): New struct.
10529 (arm_set_fixed_optab_libfunc): New.
10530 (arm_set_fixed_conv_libfunc): New.
10531 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
10532 ARM-specific names.
10533 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
10534 return values in SImode.
10535 (arm_return_in_msb): Return fixed-point types in the msb.
10536 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
10537 upwards.
10538 (arm_scalar_mode_supported_p): Support fixed-point modes.
10539 (arm_vector_mode_supported_p): Support vector fixed-point modes.
10540 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
10541 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
10542 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
10543 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
10544 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
10545 New mode iterators.
10546 (qaddsub_suf): New mode attribute.
10547 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
10548 vector modes.
10549 * config/arm/predicates.md (sat_shift_operator): New predicate.
10550 * config/arm/arm-fixed.md: New.
10551 * config/arm/arm.md: Include arm-fixed.md.
10552 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
10553
37cd19a4 105542011-08-01 Julian Brown <julian@codesourcery.com>
10555
10556 * calls.c (emit_library_call_value_1): Support padding for libcall
10557 arguments and return values.
10558 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
10559 downwards in big-endian mode.
10560
76005733 105612011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10562
10563 PR debug/49887
10564 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
10565 * config/sol2-protos.h: Likewise.
10566 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
10567 solaris_code_end.
10568 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
10569 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
10570 solaris_file_end.
10571 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
10572
7f7ae544 105732011-08-01 Julian Brown <julian@codesourcery.com>
10574
10575 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
10576
ba002eb4 105772011-08-01 Julian Brown <julian@codesourcery.com>
10578
10579 * final.c (output_addr_const): Print fixed-point constants as
10580 decimal not hex.
10581
5adf2733 105822011-08-01 Richard Guenther <rguenther@suse.de>
10583
10584 * stor-layout.c (initialize_sizetypes): Properly sign-extend
10585 bitsiztype TYPE_MAX_VALUE.
10586
df484ac6 105872011-08-01 Julian Brown <julian@codesourcery.com>
10588
10589 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
10590 comparison helpers.
10591
24b780d3 105922011-07-31 Richard Henderson <rth@redhat.com>
10593
10594 * config/h8300/crti.asm: Add flags to .section directive.
10595 * config/h8300/crtn.asm: Likewise.
10596
621fad71 105972011-07-31 Richard Henderson <rth@redhat.com>
10598
10599 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
10600 * tree.c (build_common_tree_nodes): Likewise.
10601
094f8370 106022011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
10603
10604 PR target/49880
10605 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
10606 (divsi3_i1): Likewise.
10607
b248bf30 106082011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10609
10610 PR tree-optimization/49749
10611 * tree-ssa-reassoc.c (get_rank): New forward declaration.
10612 (PHI_LOOP_BIAS): New macro.
10613 (phi_rank): New function.
10614 (loop_carried_phi): Likewise.
10615 (propagate_rank): Likewise.
10616 (get_rank): Add calls to phi_rank and propagate_rank.
9a4af446 10617
343b0655 106182011-07-31 H.J. Lu <hongjiu.lu@intel.com>
10619
10620 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
10621 of TARGET_64BIT.
10622 (PTRDIFF_TYPE): Likewise.
10623
e56ef720 106242011-07-31 Uros Bizjak <ubizjak@gmail.com>
10625
10626 PR target/49920
10627 * config/i386/i386.md (strset): Do not expand strset_singleop
10628 when %eax or $edi are fixed.
10629 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
10630 (*strsetsi_1): Ditto.
10631 (*strsethi_1): Ditto.
10632 (*strsetqi_1): Ditto.
10633 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
10634 (*rep_stossi): Ditto.
10635 (*rep_stosqi): Ditto.
3c22703a 10636 (*strlenqi_1): Ditto.
e56ef720 10637 (cmpstrnsi): Also fail when %ecx is fixed.
10638 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
10639 (*cmpstrnqi_1): Ditto.
e56ef720 10640 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
10641 (*strmovsi_1): Ditto.
10642 (*strmovhi_1): Ditto.
10643 (*strmovqi_1): Ditto.
10644 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
10645 (*rep_movsi): Ditto.
10646 (*rep_movqi): Ditto.
10647
c2e7013d 106482011-07-31 Mikael Pettersson <mikpe@it.uu.se>
10649
10650 PR target/47908
10651 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
10652 Disable instruction scheduling for non-ColdFire targets.
10653 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
10654
9f995d88 106552011-07-31 Revital Eres <revital.eres@linaro.org>
10656
10657 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
10658 of anti-dep edge from a branch.
10659 (add_cross_iteration_register_deps): Create anti-dep edge from
10660 a branch.
10661
abbfd803 106622011-07-31 Revital Eres <revital.eres@linaro.org>
10663
10664 * modulo-sched.c: Change comment.
10665 (reset_sched_times): Fix print message.
10666 (print_partial_schedule): Add print info.
10667
1b48bba8 106682011-07-31 Tom de Vries <tom@codesourcery.com>
10669
10670 PR middle-end/43513
10671 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
10672 get_object_alignment and TYPE_ALIGN.
10673
dfc8fda4 106742011-07-30 Tom de Vries <tom@codesourcery.com>
10675
10676 PR middle-end/43513
10677 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
10678 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
10679
ea3d3176 106802011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10681
10682 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
10683 <sys/sbd.h>.
10684 (cpu_types): New array.
10685 (cputype): New function.
10686 (host_detect_local_cpu): Only define buf, f if !__sgi__.
10687 Use scaninvent instead of /proc/cpuinfo if __sgi__.
10688 * config.host: Also use driver-native.o, mips/x-native on
10689 mips-sgi-irix*.
e56ef720 10690 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
ea3d3176 10691 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
10692 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
10693
784ad964 106942011-07-29 Jakub Jelinek <jakub@redhat.com>
10695
10696 PR middle-end/49897
10697 PR middle-end/49898
10698 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
10699 in nested parallel and outer is a gimple_reg, mark it as addressable
10700 and set its bit in task_shared_vars bitmap too.
10701
e0b7913f 107022011-07-29 Uros Bizjak <ubizjak@gmail.com>
10703
10704 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
10705
d2914357 107062011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10707
10708 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
10709 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
10710 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
10711 AMASK_LOCKPFTCHOK): Define.
10712 (host_detect_local_cpu): Remove buf, f, cpu_names.
10713 Define cpu_types, implver, amask.
10714 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
10715 native CPU.
10716 * config.host: Also use driver-alpha.o, alpha/x-alpha on
10717 alpha*-dec-osf*.
10718 * config/alpha/osf5.h [__alpha__ || __alpha]
10719 (host_detect_local_cpu): Declare.
10720 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
10721 (DRIVER_SELF_SPECS): Define.
10722
1d96f528 107232011-07-29 Uros Bizjak <ubizjak@gmail.com>
10724
10725 PR target/47715
10726 * config/i386/i386.md (*load_tp_x32): New.
10727 (*load_tp_x32_zext): Ditto.
10728 (*add_tp_x32): Ditto.
10729 (*add_tp_x32_zext): Ditto.
10730 (*load_tp_<mode>): Disable for TARGET_X32 targets.
10731 (*add_tp_<mode>): Ditto.
10732 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
10733 ptr_mode and convert to Pmode if needed.
10734
ef2de86b 107352011-07-29 Georg-Johann Lay <avr@gjlay.de>
1d96f528 10736
ef2de86b 10737 PR target/49687
10738 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
10739 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
10740 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
10741 Add X to register footprint: Clobber r26/r27.
10742
de67cbb8 107432011-07-29 Richard Guenther <rguenther@suse.de>
10744
10745 * builtins.c (fold_builtin_signbit): Build the comparison
10746 with a proper type.
10747
450c0971 107482011-07-29 Richard Guenther <rguenther@suse.de>
10749
10750 PR tree-optimization/49893
10751 * tree-predcom.c (suitable_reference_p): Volatile references
10752 are not suitable.
10753
fe02678b 107542011-07-29 Georg-Johann Lay <avr@gjlay.de>
1d96f528 10755
fe02678b 10756 PR target/49313
10757 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
10758 (__ctzsi2): Result for 0 may be undefined.
10759 (__ctzhi2): Result for 0 may be undefined.
10760 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
10761 (__popcountsi2): Ditto. And don't clobber r26.
10762 (__popcountdi2): Ditto. And don't clobber r27.
10763 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
10764 (parityhi2): New expand.
10765 (paritysi2): New expand.
10766 (popcounthi2): New expand.
10767 (popcountsi2): New expand.
10768 (clzhi2): New expand.
10769 (clzsi2): New expand.
10770 (ctzhi2): New expand.
10771 (ctzsi2): New expand.
10772 (ffshi2): New expand.
10773 (ffssi2): New expand.
10774 (copysignsf3): New insn.
10775 (bswapsi2): New expand.
10776 (*parityhi2.libgcc): New insn.
10777 (*parityqihi2.libgcc): New insn.
10778 (*paritysihi2.libgcc): New insn.
10779 (*popcounthi2.libgcc): New insn.
10780 (*popcountsi2.libgcc): New insn.
10781 (*popcountqi2.libgcc): New insn.
10782 (*popcountqihi2.libgcc): New insn-and-split.
10783 (*clzhi2.libgcc): New insn.
10784 (*clzsihi2.libgcc): New insn.
10785 (*ctzhi2.libgcc): New insn.
10786 (*ctzsihi2.libgcc): New insn.
10787 (*ffshi2.libgcc): New insn.
10788 (*ffssihi2.libgcc): New insn.
10789 (*bswapsi2.libgcc): New insn.
10790
fb41023e 107912011-07-29 Richard Guenther <rguenther@suse.de>
10792
10793 * tree-vrp.c (get_value_range): Only set parameter default
10794 definitions to varying, leave others at undefined.
10795 (extract_range_from_binary_expr): Fix undefined handling.
10796 (vrp_visit_phi_node): Handle merged undefined state.
10797
690dd636 107982011-07-29 Wei Guozhi <carrot@google.com>
10799
10800 PR rtl-optimization/49799
10801 * combine.c (make_compound_operation): Check if the bit field is valid
10802 before change it to bit field extraction.
10803
8cc069c4 108042011-07-29 Bernd Schmidt <bernds@codesourcery.com>
10805
10806 PR rtl-optimization/49891
10807 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
10808 newly created returnjumps.
10809
5a4f6e8c 108102011-07-28 DJ Delorie <dj@redhat.com>
10811
5b9418fd 10812 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
10813 local frame in a naked function, and produce a suitable error for
10814 that specific case.
10815
5a4f6e8c 10816 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
10817 registers to be reloaded in HI classes when the target is HI.
10818
24a2ecdb 108192011-07-28 Sebastian Pop <sebastian.pop@amd.com>
10820
10821 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
10822 bound_one, bound_two.
10823
04f7c859 108242011-07-28 Sebastian Pop <sebastian.pop@amd.com>
10825
10826 PR middle-end/48648
10827 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
10828 CLAST assignments.
10829 (translate_clast): Same.
10830 (translate_clast_assignment): New.
10831
2a483856 108322011-07-28 Sebastian Pop <sebastian.pop@amd.com>
10833
10834 PR tree-optimization/49876
10835 * sese.c (rename_uses): Do not return false on gloog_error: set
10836 the new_expr to integer_zero_node and continue code generation.
10837 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
10838
6aed0484 108392011-07-28 Jakub Jelinek <jakub@redhat.com>
10840
10841 PR debug/49846
10842 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
10843 arguments also check if they aren't initialized with a MODE_INT
10844 mode of the same size.
10845
704384eb 108462011-07-28 Aldy Hernandez <aldyh@redhat.com>
10847
10848 * expr.c (get_bit_range): Handle *MEM_REF's.
10849
4115ac36 108502011-07-28 Bernd Schmidt <bernds@codesourcery.com>
10851
10852 * rtlanal.c (tablejump_p): False for returns.
10853 * reorg.c (first_active_target_insn): New static function.
10854 (find_end_label): Set JUMP_LABEL for a new returnjump.
10855 (optimize_skip, get_jump_flags, rare_destination,
10856 mostly_true_jump, get_branch_condition,
10857 steal_delay_list_from_target, own_thread_p,
10858 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
10859 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
10860 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
10861 * jump.c (delete_related_insns): Likewise.
10862 (jump_to_label_p): New function.
10863 (redirect_target): New static function.
10864 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
10865 (redirect_jump_1): Assert that the new label is nonnull.
10866 (redirect_jump): Likewise.
10867 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
10868 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
10869 exit block.
10870 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
10871 changed. Ensure that the right label is passed to redirect_jump.
10872 * function.c (emit_return_into_block,
10873 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
10874 ret_rtx in their JUMP_LABEL.
10875 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
10876 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
10877 pass ret_rtx as label.
10878 * cfglayout.c (fixup_reorder_chain): Use
10879 force_nonfallthru_and_redirect rather than force_nonfallthru.
10880 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
10881 * rtl.h (ANY_RETURN_P): New macro.
10882 (jump_to_label_p): Declare.
10883 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
10884 JUMP_LABELs.
10885 (mark_target_live_regs): Likewise.
10886 * basic-block.h (force_nonfallthru_and_redirect): Declare.
10887 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
10888 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
10889 alpha_tablejump_best_label): Remove functions.
10890 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
10891 alpha_tablejump_best_label): Remove declarations.
10892 * config/sh/sh.c (barrier_align, split_branches): Adjust for
10893 ret_rtx in JUMP_LABELs.
10894 * config/arm/arm.c (is_jump_table): Likewise.
10895
9e08230d 108962011-07-28 Uros Bizjak <ubizjak@gmail.com>
10897
10898 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
10899 special predicate. Remove explicit mode checks.
10900
7e446711 109012011-07-28 Jakub Jelinek <jakub@redhat.com>
10902
9e08230d 10903 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
10904 DW_AT_data_member_location containing just DW_OP_plus_uconst.
94609033 10905
7e446711 10906 PR debug/49871
10907 * dwarf2out.c (size_of_die, value_format, output_die): Use
10908 DW_FORM_udata instead of DW_FORM_data[48] for
10909 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
10910
91932f71 109112011-07-28 H.J. Lu <hongjiu.lu@intel.com>
10912
d305f2ce 10913 * config/i386/i386.md (*tls_global_dynamic_64): Update
10914 length attribute.
91932f71 10915
9ac02d8f 109162011-07-28 Uros Bizjak <ubizjak@gmail.com>
10917
10918 PR target/47715
10919 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
10920 tls_symbolic_operand check. Update code sequence for TARGET_X32.
10921 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
10922 (tls_dynamic_gnu2_64): Ditto.
10923 (*tls_dynamic_gnu2_lea_64): Ditto.
10924 (*tls_dynamic_gnu2_call_64): Ditto.
10925 (*tls_dynamic_gnu2_combine_64): Ditto.
10926
6b4db1bd 109272011-07-28 H.J. Lu <hongjiu.lu@intel.com>
10928
10929 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
10930
cbc284cd 109312011-07-28 H.J. Lu <hongjiu.lu@intel.com>
10932
10933 PR target/47364
10934 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
10935
c42b1beb 109362011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10937
10938 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
10939 before the core constraints. Adjust attributes.
9e08230d 10940 ("*thumb2_movdf_vfp"): Likewise.
c42b1beb 10941
eea7f7eb 109422011-07-28 Kai Tietz <ktietz@redhat.com>
10943
9ac02d8f 10944 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
eea7f7eb 10945 (simplify_truth_ops_using_ranges): Likewise.
10946 (build_assert_expr_for): Likewise.
10947 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
10948 and handle BIT_NOT_EXPR for truth-operation.
10949
f6ad34dd 109502011-07-28 Georg-Johann Lay <avr@gjlay.de>
9ac02d8f 10951
f6ad34dd 10952 PR target/49313
10953 Undo r176835 from trunk
10954 2011-07-27 Georg-Johann Lay
10955
713e2ad9 109562011-07-28 Georg-Johann Lay <avr@gjlay.de>
9ac02d8f 10957
713e2ad9 10958 PR target/49687
10959 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
10960 Add _muluhisi3, _mulshisi3, _usmulhisi3.
10961 * config/avr/libgcc.S (__mulsi3): Rewrite.
10962 (__mulhisi3): Rewrite.
10963 (__umulhisi3): Rewrite.
10964 (__usmulhisi3): New.
10965 (__muluhisi3): New.
10966 (__mulshisi3): New.
10967 (__mulohisi3): New.
10968 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
10969 declare.
10970 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
10971 (pseudo_register_or_const_int_operand): New.
10972 (combine_pseudo_register_operand): New.
10973 (u16_operand): New.
10974 (s16_operand): New.
10975 (o16_operand): New.
10976 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
10977 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
10978 (any_extend, any_extend2): New code iterators.
10979 (extend_prefix): New code attribute.
10980 (mulsi3): Rewrite. Turn insn to expander.
10981 (mulhisi3): Ditto.
10982 (umulhisi3): Ditto.
10983 (usmulhisi3): New expander.
10984 (*mulsi3): New insn-and-split.
10985 (mulu<mode>si3): New insn-and-split.
10986 (muls<mode>si3): New insn-and-split.
10987 (mulohisi3): New insn-and-split.
10988 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
10989 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
10990 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
10991 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
10992 insn-and-split.
10993 (*mulsi3_call): Rewrite.
10994 (*mulhisi3_call): Rewrite.
10995 (*umulhisi3_call): Rewrite.
10996 (*usmulhisi3_call): New insn.
10997 (*muluhisi3_call): New insn.
10998 (*mulshisi3_call): New insn.
10999 (*mulohisi3_call): New insn.
11000 (extendqihi2): Use combine_pseudo_register_operand as predicate
11001 for operand 1.
11002 (extendqisi2): Ditto.
11003 (zero_extendqihi2): Ditto.
11004 (zero_extendqisi2): Ditto.
11005 (zero_extendhisi2): Ditto.
11006 (extendhisi2): Ditto. Don't early-clobber operand 0.
11007
4875cd5a 110082011-07-28 Uros Bizjak <ubizjak@gmail.com>
11009
11010 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
11011
38a66497 110122011-07-27 Sebastian Pop <sebastian.pop@amd.com>
11013
11014 PR tree-optimization/49471
11015 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
11016 iv only when the largest type is unsigned. Do not call
11017 lang_hooks.types.type_for_size.
11018
c71f56ce 110192011-07-27 Sebastian Pop <sebastian.pop@amd.com>
11020
11021 PR middle-end/45450
11022 * graphite-poly.c (apply_poly_transforms): Disable legality check
11023 after an openscop read.
11024
1034b719 110252011-07-27 Sebastian Pop <sebastian.pop@amd.com>
11026
11027 PR middle-end/47691
11028 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
11029 copy_bb_and_scalar_dependences.
11030 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
11031 (graphite_copy_stmts_from_block): Update call to rename_uses.
11032 (copy_bb_and_scalar_dependences): Update call to
11033 graphite_copy_stmts_from_block.
11034 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
11035
7a986272 110362011-07-27 Georg-Johann Lay <avr@gjlay.de>
1034b719 11037
7a986272 11038 PR target/49313
11039 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
11040 (__ctzsi2): Result for 0 may be undefined.
11041 (__ctzhi2): Result for 0 may be undefined.
11042 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
11043 (__popcountsi2): Ditto. And don't clobber r26.
11044 (__popcountdi2): Ditto. And don't clobber r27.
11045 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
11046 (parityhi2): New expand.
11047 (paritysi2): New expand.
11048 (popcounthi2): New expand.
11049 (popcountsi2): New expand.
11050 (clzhi2): New expand.
11051 (clzsi2): New expand.
11052 (ctzhi2): New expand.
11053 (ctzsi2): New expand.
11054 (ffshi2): New expand.
11055 (ffssi2): New expand.
11056 (copysignsf3): New insn.
11057 (bswapsi2): New expand.
11058 (*parityhi2.libgcc): New insn.
11059 (*parityqihi2.libgcc): New insn.
11060 (*paritysihi2.libgcc): New insn.
11061 (*popcounthi2.libgcc): New insn.
11062 (*popcountsi2.libgcc): New insn.
11063 (*popcountqi2.libgcc): New insn.
11064 (*popcountqihi2.libgcc): New insn-and-split.
11065 (*clzhi2.libgcc): New insn.
11066 (*clzsihi2.libgcc): New insn.
11067 (*ctzhi2.libgcc): New insn.
11068 (*ctzsihi2.libgcc): New insn.
11069 (*ffshi2.libgcc): New insn.
11070 (*ffssihi2.libgcc): New insn.
11071 (*bswapsi2.libgcc): New insn.
11072
675e9361 110732011-07-27 Uros Bizjak <ubizjak@gmail.com>
11074
11075 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
11076 the mode of symbolic_opreand RTXes.
11077
d5979ebe 110782011-07-27 Uros Bizjak <ubizjak@gmail.com>
11079
9e08230d 11080 * config/i386/predicates.md (x86_64_movabs_operand): Return false
11081 for pic_32bit_operand RTXes.
d5979ebe 11082 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
11083 in DImode.
11084
08410c65 110852011-07-27 Kai Tietz <ktietz@redhat.com>
11086
05b56dfa 11087 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
11088 for 32-bit, too.
11089 (ix86_handle_abi_attribute): Allow function attributes
11090 ms_abi/sysv_abi in 32-bit mode, too.
11091 * doc/extend.texi: Adjust attribute documentation.
11092
08410c65 11093 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
11094 expression handling.
11095 (and_var_with_comparison_1): Likewise.
11096
4bb60ec7 110972011-07-27 Aldy Hernandez <aldyh@redhat.com>
11098
11099 * params.h (ALLOW_STORE_DATA_RACES): New.
11100 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
11101 * Makefile.in (expr.o): Depend on PARAMS_H.
11102 * machmode.h (get_best_mode): Add argument.
11103 * fold-const.c (optimize_bit_field_compare): Add argument to
11104 get_best_mode.
11105 (fold_truthop): Same.
11106 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
11107 * expr.c (emit_group_store): Same.
11108 (copy_blkmode_from_reg): Same.
11109 (write_complex_part): Same.
11110 (optimize_bitfield_assignment_op): Add argument.
11111 Add argument to get_best_mode.
11112 (get_bit_range): New.
d5979ebe 11113 (expand_assignment): Calculate maxbits and pass it down accordingly.
4bb60ec7 11114 (store_field): New argument.
d5979ebe 11115 (expand_expr_real_2): New argument to store_field. Include params.h.
4bb60ec7 11116 * expr.h (store_bit_field): New argument.
11117 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
11118 into account maxbits.
11119 * calls.c (store_unaligned_arguments_into_pseudos): New argument
11120 to store_bit_field.
11121 * expmed.c (store_bit_field_1): New argument. Use it.
11122 (store_bit_field): Same.
11123 (store_fixed_bit_field): Same.
11124 (store_split_bit_field): Same.
11125 (extract_bit_field_1): Pass new argument to get_best_mode.
11126 (extract_bit_field): Same.
11127 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
11128 * doc/invoke.texi: Document parameter allow-store-data-races.
11129
f5038a76 111302011-07-27 Jakub Jelinek <jakub@redhat.com>
11131
d5979ebe 11132 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
f5038a76 11133
cfd7906e 111342011-07-27 Kai Tietz <ktietz@redhat.com>
11135
11136 * tree-vrp.c (extract_range_from_binary_expr): Remove
11137 TRUTH-binary cases and add new bitwise-cases.
11138 (extract_range_from_assignment): Likewise.
11139 (register_edge_assert_for_1): Likeiwise.
11140 (register_edge_assert_for): Likewise.
11141 (simplify_truth_ops_using_ranges): Likewise.
11142 (simplify_stmt_using_ranges): Likewise.
11143
7ab44cda 111442011-07-26 H.J. Lu <hongjiu.lu@intel.com>
11145
11146 PR target/47372
11147 * config/i386/i386.c (ix86_delegitimize_address): Call
11148 simplify_gen_subreg for PIC with mode of x only if modes of
11149 x and orig_x are different.
11150
4d29a91a 111512011-07-26 Jakub Jelinek <jakub@redhat.com>
11152
11153 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
11154 to GC allocated copy of the string.
11155 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
11156 before .debug_line, not after it.
11157
2c8ee7ae 111582011-07-26 Sebastian Pop <sebastian.pop@amd.com>
11159
11160 PR middle-end/47046
11161 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
11162 evolution_function_is_affine_p on CHREC_RIGHT.
11163
7d30f431 111642011-07-26 Sebastian Pop <sebastian.pop@amd.com>
11165
11166 * tree-data-ref.c (max_stmt_executions_tree): Do not call
11167 lang_hooks.types.type_for_size.
11168
afad2061 111692011-07-26 Sebastian Pop <sebastian.pop@amd.com>
11170
11171 PR middle-end/47653
11172 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
11173 loops using wrapping semantics.
11174
0d0cdcaa 111752011-07-26 Sebastian Pop <sebastian.pop@amd.com>
11176
11177 PR middle-end/48805
11178 * tree-scalar-evolution.c (instantiate_scev_r): Return
11179 chrec_dont_know for ADDR_EXPR.
11180
ffd3655d 111812011-07-26 Uros Bizjak <ubizjak@gmail.com>
11182 H.J. Lu <hongjiu.lu@intel.com>
11183
11184 PR target/47369
11185 PR target/49853
11186 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
11187 if legitimize_tls_address returned operand in wrong mode. Allow
11188 SImode and DImode symbolic operand for PIC. Call convert_to_mode
11189 if legitimize_pic_address returned operand in wrong mode.
11190
071a5e44 111912011-07-26 Martin Jambor <mjambor@suse.cz>
11192
11193 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
11194 return false for invariants.
11195
b51a1082 111962011-07-26 Uros Bizjak <ubizjak@gmail.com>
11197
11198 * config/i386/i386.md (add->lea splitter): Implement using SWI
11199 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
11200 (add->lea zext splitter): Change operand 2 predicate to
11201 x86_64_nonmemory_operand.
11202
4b2d5543 112032011-07-26 Richard Guenther <rguenther@suse.de>
11204
11205 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
11206 frequency makes everything hot.
11207
db3e66dc 112082011-07-26 Richard Guenther <rguenther@suse.de>
11209
11210 PR tree-optimization/49840
11211 * tree-vrp.c (range_fits_type_p): Properly handle full
11212 double-int precision.
11213
7b9dcf83 112142011-07-26 Martin Jambor <mjambor@suse.cz>
11215
11216 PR bootstrap/49786
11217 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
11218 counts.
11219 (update_specialized_profile): Likewise.
11220
231a5310 112212011-07-26 Uros Bizjak <ubizjak@gmail.com>
11222 H.J. Lu <hongjiu.lu@intel.com>
11223
11224 PR target/47381
11225 PR target/49832
11226 PR target/49833
11227 * config/i386/i386.md (i): Change SImode attribute to "e".
11228 (g): Change SImode attribute to "rme".
11229 (di): Change SImode attribute to "nF".
11230 (general_operand): Change SImode attribute to x86_64_general_operand.
11231 (general_szext_operand): Change SImode attribute to
11232 x86_64_szext_general_operand.
11233 (immediate_operand): Change SImode attribute to
11234 x86_64_immediate_operand.
11235 (nonmemory_operand): Change SImode attribute to
11236 x86_64_nonmemory_operand.
11237 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
11238 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
11239 (*lea_1): Use SWI48 mode iterator.
11240 (*lea_1_zext): New insn pattern.
11241 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
11242 (*bt<mode>): Ditto.
11243 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
11244 Update operand constraints.
11245 (addsi_1_zext): Ditto.
11246 (*add<mode>2): Ditto.
11247 (*addsi_3_zext): Ditto.
11248 (*subsi_1_zext): Ditto.
11249 (*subsi_2_zext): Ditto.
11250 (*subsi_3_zext): Ditto.
11251 (*addsi3_carry_zext): Ditto.
11252 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
11253 (*mulsi3_1_zext): Ditto.
11254 (*andsi_1): Ditto.
11255 (*andsi_1_zext): Ditto.
11256 (*andsi_2_zext): Ditto.
11257 (*<any_or:code>si_1_zext): Ditto.
11258 (*<any_or:code>si_2_zext): Ditto.
11259 (*test<mode>_1): Use <general_operand> predicate for operand 1.
11260 (*and<mode>_2): Ditto.
11261 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
11262 (add->lea splitter): Check operand modes in insn constraint. Extend
11263 operands less than SImode wide to SImode.
11264 (add->lea zext splitter): Do not extend input operands to DImode.
11265 (*lea_general_1): Handle only QImode and HImode operands.
11266 (*lea_general_2): Ditto.
11267 (*lea_general_3): Ditto.
11268 (*lea_general_1_zext): Remove.
11269 (*lea_general_2_zext): Ditto.
11270 (*lea_general_3_zext): Ditto.
11271 (*lea_general_4): Check operand modes in insn constraint. Extend
11272 operands less than SImode wide to SImode.
11273 (ashift->lea splitter): Ditto.
11274 * config/i386/i386.c (ix86_print_operand_address): Print address
11275 registers with 'q' modifier on 64bit targets.
11276 * config/i386/predicates.md (pic_32bit_opreand): Define as special
11277 predicate. Reject non-SI and non-DI modes.
11278
72dbeb36 112792011-07-25 Andrew Pinski <apinski@cavium.com>
11280
11281 PR tree-opt/49671
11282 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
11283 TREE_THIS_NOTRAP into the inner most MEM_REF.
11284 Always copy TREE_THIS_VOLATILE.
11285 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
11286 arguments are not volatile references.
11287
f927e607 112882011-07-25 Richard Henderson <rth@redhat.com>
11289
11290 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
11291 * final.c (final_scan_insn): Don't test for it.
11292 (rest_of_clean_state): Likewise.
11293
f9ac12d1 112942011-07-25 Richard Henderson <rth@redhat.com>
11295
11296 PR debug/49841
11297 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
11298 (emit_frame_save): Likewise.
11299 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
11300 insn onto a dummy blockage insn after the join label.
11301
ce4a64fd 113022011-07-25 Richard Henderson <rth@redhat.com>
11303
11304 * dwarf2cfi.c (dw_trace_info): Add ID member.
11305 (get_trace_index): Remove. Change users to use ID member.
11306 (before_next_cfi_note): New.
11307 (connect_traces): Remove unreachable traces before the main loop.
11308 Look across one trace and generate remember/restore_state if needed.
11309
35bf1d17 113102011-07-25 Richard Henderson <rth@redhat.com>
11311
11312 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
11313
19c83f00 113142011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
11315
11316 * genattr.c (write_upcase, gen_attr <enum definition writing>):
11317 Move to ...
11318 * genattr-common.c ... here.
11319 (main): Call gen_attr.
11320 * optc-gen.awk: Make generated program include insn-attr-common.h .
11321 * Makefile.in (oprions.o): Depend on insn-attr-common.h
11322
b9e1ef49 113232011-07-25 Anatoly Sokolov <aesok@post.ru>
11324
11325 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11326 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
11327 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
11328 m32c_print_operand, m32c_print_operand_address): Remove.
11329 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
11330 Change return type to bool. Change argument type to bool.
11331 (m32c_print_operand, m32c_print_operand_address): Make static.
11332 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
11333 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11334
0b0d7802 113352011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11336
11337 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
11338 attributes): Document mmap.
11339
7a7fb407 113402011-07-25 Anatoly Sokolov <aesok@post.ru>
11341
11342 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
11343 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
11344 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
11345 mmix_print_operand, mmix_print_operand_address): Remove.
11346 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
11347 Change return type to bool. Change argument type to bool.
11348 (mmix_print_operand, mmix_print_operand_address): Make static.
231a5310 11349 (mmix_intval, mmix_output_condition): Change 'x' argument type
7a7fb407 11350 to const_rtx.
11351 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
11352 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11353
959d6369 113542011-07-25 Georg-Johann Lay <avr@gjlay.de>
231a5310 11355
959d6369 11356 PR target/39386
11357 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
11358 shift counter for x << x and x >> x shifts.
11359
e8287058 113602011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11361
11362 PR target/47124
11363 * config.gcc: Reject *-*-solaris2 configuration.
11364
728dcc71 113652011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
11366
11367 PR tree-optimization/49809
11368 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
11369 gimple_get_lhs instead of gimple_assign_lhs.
11370
71d67b2d 113712011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11372
11373 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
11374
ff0739e0 113752011-07-25 Richard Guenther <rguenther@suse.de>
11376
11377 PR tree-optimization/49822
11378 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
11379 more. Make sure to preserve stmts with side-effects. Properly
11380 handle virtual defs, follow a longer def chain.
11381
6ee97920 113822011-07-22 Romain Geissler <romain.geissler@gmail.com>
11383
11384 PR plugins/45348
11385 PR plugins/48425
11386 PR plugins/46577
11387 * Makefile.in: Do not flatten c-family directory when installing
11388 plugin headers.
11389
69d925d0 113902011-07-25 Eric Botcazou <ebotcazou@adacore.com>
11391
11392 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
11393 original nodes if we are dealing with virtual clones.
11394
3d81ca5e 113952011-07-25 Bernd Schmidt <bernds@codesourcery.com>
11396
11397 * common/config/c6x/c6x-common.c: New file.
11398
9e074001 113992011-07-25 Roman Zhuykov <zhroma@ispras.ru>
11400
11401 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
11402
f0938d2c 114032011-07-25 Richard Guenther <rguenther@suse.de>
11404
11405 PR tree-optimization/49715
11406 * tree-vrp.c: Include expr.h and optabs.h.
11407 (range_fits_type_): New function.
11408 (simplify_float_conversion_using_ranges): Likewise.
11409 (simplify_stmt_using_ranges): Call it.
11410 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
11411 * optabs.c (can_float_p): Export.
11412 * optabs.h (can_float_p): Declare.
11413
e0186710 114142011-07-25 Richard Guenther <rguenther@suse.de>
11415
11416 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
11417 (get_value_range): For out-of-range SSA names or names created
11418 after propagation return a read-only varying range.
11419 (dump_all_value_ranges): Adjust.
11420 (vrp_initialize): Likewise.
11421 (vrp_finalize): Likewise.
11422
c247c822 114232011-07-24 Richard Henderson <rth@redhat.com>
11424
11425 PR debug/49831
11426 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
11427 them entirely.
11428
afde4c94 114292011-07-24 Richard Henderson <rth@redhat.com>
11430
11431 PR debug/49825
11432 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
11433 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
11434
ad5618b3 114352011-07-24 Richard Henderson <rth@redhat.com>
11436
11437 PR debug/49827
11438 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
11439
eb656671 114402011-07-24 Richard Henderson <rth@redhat.com>
11441
11442 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
11443 Zero args_size for abnormal edges. Adjust all callers.
11444
215db506 114452011-07-24 Richard Henderson <rth@redhat.com>
11446
11447 PR debug/49825
11448 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
11449
d45e065f 114502011-07-24 H.J. Lu <hongjiu.lu@intel.com>
11451
11452 PR bootstrap/49835
11453 * collect2.c (demangle_flag): Removed.
11454
73caa9f3 114552011-07-24 Sandra Loosemore <sandra@codesourcery.com>
11456
11457 * configure.ac (demangler_in_ld): Default to yes.
11458 * configure: Regenerated.
11459 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
11460 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
11461 --no-demangle options straight through to ld. When
11462 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
11463 way that has the intended effect on Windows.
11464
97c251e4 114652011-07-23 Richard Henderson <rth@redhat.com>
11466
11467 * dwarf2cfi.c: Include basic-block.h.
11468 (dw_label_info): Remove.
11469 (trace_work_list, trace_index): New.
11470 (remember_row, emit_cfa_remember): Remove.
11471 (dw_trace_info_hash, dw_trace_info_eq): New.
11472 (get_trace_index, get_trace_info): New.
11473 (save_point_p): New.
11474 (free_cfi_row): Remove.
11475 (add_cfi): Do not emit DW_CFA_remember_state.
11476 (cfa_row_equal_p): New.
11477 (barrier_args_size): Remove.
11478 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
11479 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
11480 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
11481 (dwarf2out_cfi_begin_epilogue): Remove.
11482 (dwarf2out_frame_debug_restore_state): Remove.
11483 (connect_traces, create_pseudo_cfg): New.
11484 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
11485 * Makefile.in (dwarf2cfi.o): Update.
11486
b1613fc3 114872011-07-23 Richard Henderson <rth@redhat.com>
11488
11489 * dwarf2cfi.c (dw_trace_info): New.
11490 (dw_label_info): New.
11491 (cie_return_save): New.
11492 (cur_trace): New.
11493 (queued_args_size): Rename from args_size. Update all users.
11494 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
11495 (def_cfa_1): Use cur_trace instead of cfa_*.
11496 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
11497 (clobbers_queued_reg_save, reg_saved_in): Likewise.
11498 (dwarf2out_frame_debug_expr): Likewise.
11499 (create_cie_data): Split out from ...
11500 (execute_dwarf2_frame): ... here. Initialize cur_trace.
11501
e53680b9 115022011-07-23 Richard Henderson <rth@redhat.com>
11503
11504 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
11505 Update all users to match.
11506 (execute_dwarf2_frame): Free reg_saved_in_data.
11507
c73aa568 115082011-07-23 Richard Henderson <rth@redhat.com>
11509
11510 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
11511 (queued_reg_saves): Don't GTY. Change to a VEC.
11512 (queue_reg_save): Update to match.
11513 (dwarf2out_flush_queued_reg_saves): Likewise.
11514 (clobbers_queued_reg_save): Likewise.
11515 (reg_saved_in): Likewise.
11516 (execute_dwarf2_frame): Free queued_reg_saves.
11517
1b1ea44c 115182011-07-23 Richard Henderson <rth@redhat.com>
11519
11520 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
11521
0b3b5cad 115222011-07-23 Richard Henderson <rth@redhat.com>
11523
11524 * dwarf2cfi.c (add_cfi_args_size): Split out from...
11525 (dwarf2out_args_size): ... here.
11526 (add_cfi_restore): Split out from ...
11527 (dwarf2out_frame_debug_cfa_restore): ... here.
11528 (def_cfa_0): Split out from ...
11529 (def_cfa_1): ... here.
11530 (cfi_oprnd_equal_p, cfi_equal_p): New.
11531 (change_cfi_row): New.
11532 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
11533 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
11534 (output_cfis): Remove.
11535 * dwarf2out.c (output_fde): Simplify output_cfi loop.
11536 (dwarf2out_switch_text_section): Don't call output_cfis.
11537 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
11538 * dwarf2out.h: Update decls.
11539 (enum dw_val_class): Add dw_val_class_none.
11540
e9fe542d 115412011-07-23 Richard Henderson <rth@redhat.com>
11542
11543 * dwarf2cfi.c (update_row_reg_save): New.
11544 (dwarf2out_frame_debug_cfa_expression): Use it.
11545 (dwarf2out_frame_debug_cfa_restore): Likewise.
11546 (reg_save): Likewise. Do not emit DW_CFA_same_value.
11547
7b1c31a0 115482011-07-23 Richard Henderson <rth@redhat.com>
11549
11550 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
11551
eb93b3f4 115522011-07-23 Richard Henderson <rth@redhat.com>
11553
11554 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
11555 (cie_cfi_row): New.
11556 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
11557 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
11558 (cur_row, remember_row): New.
11559 (def_cfa_1): Use cur_row instead of the old_* variables.
11560 (dwarf2out_frame_debug_restore_state): Similarly.
11561 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
11562 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
11563 (dwarf2out_frame_debug_adjust_cfa): Likewise.
11564 (dwarf2out_frame_debug_cfa_offset): Likewise.
11565 (dwarf2out_frame_debug_expr): Likewise.
11566 (execute_dwarf2_frame): Set up cur_row.
11567 * dwarf2out.h (struct cfa_loc): Mark for GTY.
11568
f59cbcbf 115692011-07-23 Richard Henderson <rth@redhat.com>
11570
11571 * basic-block.h (EDGE_PRESERVE): New.
11572 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
11573 * bb-reorder.c: Include except.h.
11574 (fix_up_crossing_landing_pad): New.
231a5310 11575 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
f59cbcbf 11576 landing pads in the right partition. Duplicate as necessary.
11577 (partition_hot_cold_basic_blocks): Fix up DF info after
11578 duplicating landing pads.
11579 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
11580 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
11581 is set properly. Validate that EH edges are not CROSSING.
11582 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
11583 (dw2_build_landing_pads): ... here.
11584 (convert_to_eh_region_ranges): Remove code to fixup crossing
11585 landing pads.
11586 * except.h (expand_dw2_landing_pad_for_region): Declare.
11587 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
11588
397d79f2 115892011-07-23 Richard Earnshaw <rearnsha@arm.com>
11590
11591 PR target/49816
11592 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
11593
a6ae59ca 115942011-07-22 Jason Merrill <jason@redhat.com>
11595
11596 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
11597
d8346073 115982011-07-22 Richard Henderson <rth@redhat.com>
11599
11600 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
11601
58c74e1e 116022011-07-22 Richard Henderson <rth@redhat.com>
11603
11604 * jump.c (maybe_propagate_label_ref): Split out of...
11605 (mark_all_labels): ... here. Do not attempt label_ref
11606 propagation while in cfglayout mode.
11607
f45370f8 116082011-07-22 Jakub Jelinek <jakub@redhat.com>
11609
60699ecd 11610 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
11611 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
11612 (dwarf_attr_name): Handle DW_AT_GNU_macros.
11613 (dwarf2out_define): If the vector is empty and
11614 lineno is 0, emit a dummy entry first.
11615 (dwarf2out_undef): Likewise. Remove redundant semicolon.
11616 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
11617 optimize_macinfo_range): New functions.
11618 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
11619 mergeable, optimize longer strings using
11620 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
11621 optimize longer sequences of define/undef ops from headers
11622 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
11623 emit a section headers.
11624 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
11625 and macinfo_section_label to DEBUG_MACRO_SECTION
11626 resp. DEBUG_MACRO_SECTION_LABEL.
11627 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
11628 instead of DW_AT_macro_info.
11629
f45370f8 11630 PR other/32998
11631 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
11632 options.
11633 * dwarf2out.c: Include opts.h.
11634 (dchar_p): New typedef. Define heap VEC for it.
11635 (producer_string): New variable.
11636 (gen_producer_string): New function.
11637 (gen_compile_unit_die): Use it.
231a5310 11638 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
f45370f8 11639 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
11640 * doc/invoke.texi: Document -grecord-gcc-switches and
11641 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
11642 to -frecord-gcc-switches description.
11643
27282252 116442011-07-22 Jason Merrill <jason@redhat.com>
11645
11646 PR c++/30112
11647 * c-decl.c (c_linkage_bindings): Define.
11648
267001d7 116492011-07-22 Eric Botcazou <ebotcazou@adacore.com>
11650
11651 PR debug/49815
11652 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
11653
f7d9435a 116542011-07-22 H.J. Lu <hongjiu.lu@intel.com>
11655
11656 * config/i386/i386.c (ix86_option_override_internal): Disallow
11657 MS ABI in x32 mode.
11658 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
11659 only for TARGET_LP64.
231a5310 11660 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
f7d9435a 11661
09fe50ef 116622011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
66e006d8 11663
11664 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
11665 avoid warnings when GCC is built with a C++ compiler.
11666
54e8af13 116672011-07-22 Martin Jambor <mjambor@suse.cz>
11668
11669 PR lto/49796
11670 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
231a5310 11671 if decl node is in another partition, call cgraph_get_node only once.
54e8af13 11672
2c6c4996 116732011-07-22 Uros Bizjak <ubizjak@gmail.com>
11674
27ea9038 11675 * config.gcc (x86_64-*-linux*): Set
2c6c4996 11676 default_gnu_indirect_function to yes.
11677
2e5dc41c 116782011-07-22 Richard Guenther <rguenther@suse.de>
11679
11680 PR tree-optimization/45819
11681 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11682 preserve volatile and notrap flags.
11683
6678cb4e 116842011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11685 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11686
11687 PR bootstrap/49794
11688 * configure.ac: Test AM_ICONV with CXX.
11689 * configure: Regenerate.
11690 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
11691
e828ad34 116922011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11693
11694 PR bootstrap/49797
11695 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
11696 (set_cloog_options): Use it.
11697
00dacc40 116982011-07-22 Jakub Jelinek <jakub@redhat.com>
11699
11700 PR c++/49756
11701 * gcc.c (main): Call stack_limit_increase (64MB).
11702 * toplev.c (toplev_main): Likewise.
11703
00679807 117042011-07-21 H.J. Lu <hongjiu.lu@intel.com>
11705
11706 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
11707 instead of force_reg.
11708
0c5fff87 117092011-07-21 H.J. Lu <hongjiu.lu@intel.com>
11710
11711 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
11712 needed and use force_reg after convert.
11713 (ix86_expand_call): Likewise.
11714 (ix86_expand_special_args_builtin): Likewise.
11715 (ix86_expand_builtin): Likewise.
11716
4c48fb0e 117172011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11718
11719 PR middle-end/47654
11720 PR middle-end/49649
11721 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
11722 in parameter. Initialize v1 and v2 based on the values returned
11723 by clast_name_to_lb_ub.
11724 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
11725 values.
11726 (type_for_clast_bin): Same.
11727 (type_for_clast_expr): Same.
11728 (type_for_clast_eq): Update calls to type_for_clast_expr.
11729 (type_for_clast_for): Same.
11730 (build_iv_mapping): Same.
11731 * graphite-ppl.h (value_min): New.
11732
e45543a0 117332011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11734
11735 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
11736 types whenever possible.
11737
7cfe5b1f 117382011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11739
11740 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
11741 and ub fields.
11742 (new_clast_name_index): Add lb and ub parameters.
11743 (free_clast_name_index): New.
11744 (clast_name_to_lb_ub): New.
11745 (save_clast_name_index): Add lb and ub parameters.
11746 (compute_bounds_for_param): New.
11747 (type_for_level): Removed.
11748 (type_for_clast_for): Removed level parameter. Do not call
11749 type_for_level.
11750 (graphite_create_new_loop): Store the lb and ub for the clast_name
11751 of the iterator of the loop that has been generated.
11752 (graphite_create_new_loop_guard): Remove parameter level.
11753 (create_params_index): Store the lb and ub of each parameter.
11754 (gloog): Use free_clast_name_index. Pass to create_params_index
11755 the current scop.
11756
28013ca9 117572011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11758
11759 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
11760 (max_precision_type): Inline max_signed_precision_type.
11761 (type_for_clast_red): Use max_precision_type.
11762 (type_for_clast_bin): Same.
11763 (type_for_clast_for): Same.
11764
954e0498 117652011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11766
11767 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
11768 type_for_interval.
11769 (gcc_type_for_value): Renamed type_for_value.
11770 (gcc_type_for_clast_term): Renamed type_for_clast_term.
11771 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
11772 (gcc_type_for_clast_red): Renamed type_for_clast_red.
11773 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
11774 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
11775 (graphite_translate_clast_equation): Update calls.
11776 (compute_type_for_level): Renamed type_for_level.
11777 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
11778 (build_iv_mapping): Update calls.
11779 (graphite_create_new_loop_guard): Same.
11780
bf662ce7 117812011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11782
11783 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
11784 comment.
11785
17e7716e 117862011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11787
11788 * graphite-clast-to-gimple.c (struct ivs_params): New.
11789 (clast_name_to_gcc): Use ivs_params to pass around parameters.
11790 (clast_to_gcc_expression): Same.
11791 (clast_to_gcc_expression_red): Same.
11792 (gcc_type_for_clast_term): Same.
11793 (gcc_type_for_clast_expr): Same.
11794 (gcc_type_for_clast_red): Same.
11795 (gcc_type_for_clast_bin): Same.
11796 (gcc_type_for_clast_eq): Same.
11797 (graphite_translate_clast_equation): Same.
11798 (graphite_create_guard_cond_expr): Same.
11799 (graphite_create_new_guard): Same.
11800 (graphite_create_new_loop): Same.
11801 (build_iv_mapping): Same.
11802 (translate_clast_user): Same.
11803 (graphite_create_new_loop_guard): Same.
11804 (translate_clast): Same.
11805 (translate_clast_for_loop): Same.
11806 (translate_clast_for): Same.
11807 (translate_clast_guard): Same.
11808 (initialize_cloog_names): Fix typo.
11809 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
11810
c5f2229b 118112011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11812
11813 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
11814 (new_clast_name_index): Add level parameter.
11815 (clast_name_to_level): New.
11816 (save_clast_name_index): Add level parameter.
11817 (newivs_to_depth_to_newiv): Removed.
11818 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
11819 (graphite_create_new_loop): Add level parameter. Pass level to
11820 save_clast_name_index.
11821 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
11822 (create_params_index): Pass level to save_clast_name_index.
11823
35048891 118242011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11825
11826 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
11827 recompute type, lb, and ub. Get them from...
11828 (graphite_create_new_loop_guard): ...here. Pass in parameter
11829 pointers to type, lb, and ub.
11830 (translate_clast_for_loop): Update function calls.
11831 (translate_clast_for): Same.
11832
9f6fd65f 118332011-07-21 Sebastian Pop <sebastian.pop@amd.com>
11834
11835 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
11836 psct_dynamic_dim.
11837 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
11838 (gcc_type_for_iv_of_clast_loop): Update use of level.
11839 (gloog): Start counting nesting level from 0.
11840 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
11841 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
11842 psct_dynamic_dim on level.
11843
d97f844f 118442011-07-21 H.J. Lu <hongjiu.lu@intel.com>
11845
11846 * config/i386/i386.c (ix86_legitimize_address): Convert to
11847 Pmode if needed.
11848
d88c9c8d 118492011-07-21 H.J. Lu <hongjiu.lu@intel.com>
11850
11851 * config/i386/i386.c (function_value_64): Always return pointers
11852 in Pmode.
11853 (ix86_promote_function_mode): New.
11854 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
11855
aa52f48f 118562011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11857
11858 PR tree-optimization/49749
11859 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
11860 remove no-longer-used maxrank variable.
2c6c4996 11861
114786e6 118622011-07-21 Georg-Johann Lay <avr@gjlay.de>
2c6c4996 11863
114786e6 11864 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
11865
a88d399f 118662011-07-21 Jason Merrill <jason@redhat.com>
11867
11868 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
11869 * recog.h (struct insn_data_d): Check it instead of
11870 HAVE_DESIGNATED_INITIALIZERS.
11871 * genoutput.c (output_insn_data): Likewise.
11872
882f8b55 118732011-07-21 Richard Guenther <rguenther@suse.de>
11874
11875 PR tree-optimization/49770
11876 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
11877 valueized any operand. Renamed from ...
11878 (valueize_refs): ... this. New wrapper around valueize_refs_1.
11879 (valueize_shared_reference_ops_from_ref): Return whether we
11880 valueized any operand.
11881 (vn_reference_lookup): Only when we valueized any operand
11882 use the valueized reference for alias analysis. Do not preserve
11883 the original reference tree in this case.
11884
c3f46109 118852011-07-21 Uros Bizjak <ubizjak@gmail.com>
11886
11887 * config/i386/i386.c (ix86_decompose_address): Reject all but
7b7d33ca 11888 register operands and subregs of DImode hard registers in index.
c3f46109 11889
4b5f1658 118902011-07-21 Kai Tietz <ktietz@redhat.com>
11891
11892 * fold-const.c (fold_unary_loc): Preserve indirect
11893 comparison cast to none-boolean type.
11894 * tree-ssa.c (useless_type_conversion_p): Preserve cast
11895 from/to boolean-type.
c3f46109 11896 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
11897 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
4b5f1658 11898 * tree-cfg.c (verify_gimple_comparison): Check result
11899 type of comparison expression.
c3f46109 11900 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
11901 of condition result and disallow type-cast sinking into comparison.
4b5f1658 11902
89c8f35a 119032011-07-21 Richard Guenther <rguenther@suse.de>
11904
11905 * tree-ssa-forwprop.c (combine_conversions): Return whether
11906 we have to run cfg-cleanup. Properly remove dead stmts.
11907 (ssa_forward_propagate_and_combine): Adjust.
11908
3a45e441 119092011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
11910
11911 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
11912
89dd6fe9 119132011-07-21 Kai Tietz <ktietz@redhat.com>
11914
11915 * tree-ssa-propagate.c (substitute_and_fold): Use
11916 do_dce flag to deside, if BB's statements are scanned
11917 in last to first, or first to last order.
11918
f9fb96f9 119192011-07-21 Georg-Johann Lay <avr@gjlay.de>
c3f46109 11920
f9fb96f9 11921 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
11922
9636738d 119232011-07-20 H.J. Lu <hongjiu.lu@intel.com>
11924 Uros Bizjak <ubizjak@gmail.com>
11925 Richard Henderson <rth@redhat.com>
11926
11927 * config/i386/constraints.md (w): New.
11928
11929 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
11930 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
11931
11932 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
11933 instead of TARGET_64BIT.
11934
11935 * config/i386/i386.md (indirect_jump): Replace
11936 nonimmediate_operand with indirect_branch_operand.
11937 (*indirect_jump): Likewise. Replace constraint "m" with "w".
7b7d33ca 11938 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
11939 Convert operand 0 to Pmode for x32 if not PIC.
9636738d 11940 (*tablejump_1): Replace nonimmediate_operand with
11941 indirect_branch_operand. Replace constraint "m" with "w".
11942 (*call_vzeroupper): Replace constraint "m" with "w".
11943 (*call): Likewise.
11944 (*call_rex64_ms_sysv_vzeroupper): Likewise.
11945 (*call_rex64_ms_sysv): Likewise.
11946 (*call_value_vzeroupper): Likewise.
11947 (*call_value): Likewise.
11948 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
11949 (*call_value_rex64_ms_sysv): Likewise.
7b7d33ca 11950 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
9636738d 11951
11952 * config/i386/predicates.md (indirect_branch_operand): New.
11953 (call_insn_operand): Support x32.
11954
2e337e8f 119552011-07-20 Michael Eager <eager@eagercon.com>
11956
11957 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
11958
25c39539 119592011-07-20 Richard Henderson <rth@redhat.com>
11960
11961 * cfg.c (dump_bb_info): Dump basic_block->flags.
11962 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
11963
1c38a177 119642011-07-20 Uros Bizjak <ubizjak@gmail.com>
11965
11966 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
11967 of DImode hard registers in index.
11968 (ix86_legitimate_address_p): Allow subregs of base and index to span
11969 more than a word. Assert that subregs of base and index satisfy
11970 register_no_elim_operand predicates. Reject addresses where
11971 base and index have different modes.
11972
17c6be22 119732011-07-20 Robert Millan <rmh@gnu.org>
11974
11975 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
11976
c2841599 119772011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11978
11979 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
11980 removing now-unnecessary assignment.
11981
7d4ec7eb 119822011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11983
11984 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
11985 memory address space to the type's address space.
11986
0b90fc76 119872011-07-20 Georg-Johann Lay <avr@gjlay.de>
1c38a177 11988
0b90fc76 11989 PR target/36467
11990 PR target/49687
1c38a177 11991 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
11992 and expand appropriately if there is a CONST_INT in operand2.
0b90fc76 11993 (usmulqihi3): New insn.
11994 (*sumulqihi3): New insn.
11995 (*osmulqihi3): New insn.
11996 (*oumulqihi3): New insn.
11997 (*muluqihi3.uconst): New insn_and_split.
11998 (*muluqihi3.sconst): New insn_and_split.
11999 (*mulsqihi3.sconst): New insn_and_split.
12000 (*mulsqihi3.uconst): New insn_and_split.
12001 (*mulsqihi3.oconst): New insn_and_split.
12002 (*ashifthi3.signx.const): New insn_and_split.
12003 (*ashifthi3.signx.const7): New insn_and_split.
12004 (*ashifthi3.zerox.const): New insn_and_split.
12005 (mulsqihi3): New insn.
12006 (muluqihi3): New insn.
12007 (muloqihi3): New insn.
12008 * config/avr/predicates.md (const_2_to_7_operand): New.
12009 (const_2_to_6_operand): New.
12010 (u8_operand): New.
12011 (s8_operand): New.
12012 (o8_operand): New.
12013 (s9_operand): New.
12014 (register_or_s9_operand): New.
12015
083bada9 120162011-07-20 Kai Tietz <ktietz@redhat.com>
12017
12018 * builtins.c (fold_builtin_expect): See through the cast
12019 from truthvalue_type_node to long.
12020
b58102e2 120212011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
12022
12023 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
12024 where we can use them from the standard and altivec instruction
12025 sets, instead of always using the 3 operand VSX forms that require
12026 the destination to overlap one of the inputs.
12027 (vsx_fms*): Ditto.
12028 (vsx_fnma*): Ditto.
12029 (vsx_fnms*): Ditto.
12030
12031 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
12032 for DF types.
12033 (fmsdf4_fpr): Ditto.
12034 (nfmadf4_fpr): Ditto.
12035 (nfmsdf4_fpr): Ditto.
12036
6cfd42c4 120372011-07-20 Sandra Loosemore <sandra@codesourcery.com>
12038
12039 * genrecog.c (make_insn_sequence): Correct position numbering
12040 when filtering out match_scratch and match_dup.
12041
6f9714b3 120422011-07-20 Richard Guenther <rguenther@suse.de>
12043
12044 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
12045 against already removed statements.
12046 (forward_propagate_into_comparison): Remove dead defining stmts.
12047 (forward_propagate_into_gimple_cond): Likewise.
12048 (forward_propagate_into_cond): Simplify.
12049 (ssa_forward_propagate_and_combine): Handle changed cfg from
12050 forward_propagate_into_comparison.
12051 * tree-ssa-phiopt.c (conditional_replacement): Use proper
12052 locations for newly built statements.
12053
9685fb69 120542011-07-20 Georg-Johann Lay <avr@gjlay.de>
12055
12056 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
12057
6c2d82ab 120582011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12059
12060 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
12061 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
12062
8a5f403f 120632011-07-20 Richard Guenther <rguenther@suse.de>
12064
12065 PR middle-end/18908
12066 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
12067 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
12068 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
12069
26d1d353 120702011-07-20 Vladimir Makarov <vmakarov@redhat.com>
12071
12072 * config/frv/frv.c (frv_register_move_cost): Define explicitly
12073 costs for subclasses of GR_REGS.
12074
6dfd8449 120752011-07-20 Uros Bizjak <ubizjak@gmail.com>
12076
12077 PR target/49780
12078 * config/i386/predicates.md (no_seg_addres_operand): No more special.
12079 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
12080 of DImode hard registers in base.
12081 (ix86_legitimate_address_p): Allow SImode and DImode base and index
12082 registers.
12083
8b3ad377 120842011-07-20 Richard Guenther <rguenther@suse.de>
12085
6dfd8449 12086 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
8b3ad377 12087 (unify_nodes): Deal with that.
12088 (solve_graph): Likewise.
12089
d05de055 120902011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
12091
12092 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
12093 canonicalize left operand from ZERO_EXTEND to AND.
12094
d3ba22dc 120952011-07-20 Anatoly Sokolov <aesok@post.ru>
12096
12097 * target.def (class_max_nregs): New hook.
12098 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
12099 * doc/tm.texi: Regenerate.
12100 * targhooks.c (default_class_max_nregs): New function.
12101 * targhooks.h (default_class_max_nregs): Declare.
12102 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
12103 x_ira_reg_class_min_nregs arrays to unsigned char.
12104 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
12105 hook instead of CLASS_MAX_NREGS macro.
12106 * reginfo.c (restore_register_info): Ditto.
12107 * ira-conflicts.c (process_regs_for_copy): Use
12108 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
12109 Change type rclass and aclass vars to reg_class_t.
12110 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
12111 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
12112 reg_class_t.
12113 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
12114 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
12115
12116 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
12117 * config/i386/i386.c (ix86_class_max_nregs): New function.
12118 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
12119 instead of CLASS_MAX_NREGS macro.
12120 (TARGET_CLASS_MAX_NREGS): Define.
12121 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
12122 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
12123 * config/avr/avr.c (class_max_nregs): Remove function.
12124 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
12125 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
12126 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
12127 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
12128 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
12129 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
12130 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
12131 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
12132 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
12133 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
12134 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
12135 * config/score/score.h (CLASS_MAX_NREGS): Remove.
12136 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
12137 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
12138 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
12139
b588156f 121402011-07-19 Eric Botcazou <ebotcazou@adacore.com>
12141
12142 * cif-code.def (OVERWRITABLE): Fix typo and move around.
12143 (TARGET_OPTIMIZATION_MISMATCH): Delete.
12144 (EH_PERSONALITY): Fix typo.
12145 (NON_CALL_EXCEPTIONS): Fix message.
12146 (OPTIMIZATION_MISMATCH): Adjust message.
12147 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
12148
ef3c41c7 121492011-07-19 Ian Lance Taylor <iant@google.com>
12150
12151 * doc/install.texi (Configuration): Document
12152 --enable-build-poststage1-with-cxx.
12153
1f796f40 121542011-07-19 Robert Millan <rmh@gnu.org>
12155
12156 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
12157 (GLIBC_DYNAMIC_LINKER): Remove.
12158
12159 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
12160 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
12161 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
12162 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
12163 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
12164 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
12165
12166 * config/mips/linux.h: Remove everything except for ...
12167 (GLIBC_DYNAMIC_LINKER): ... this macro.
12168
12169 * config/mips/linux64.h: Remove everything except for ...
12170 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
12171 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
12172 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
12173 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
12174 (GNU_USER_LINK_EMULATIONN32): New macros.
12175
6dfd8449 12176 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
12177 Use the new headers.
1f796f40 12178
6d58bcba 121792011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12180
12181 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
12182 Add offset_known_p and size_known_p fields.
12183 (MEM_OFFSET_KNOWN_P): Update accordingly.
12184 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
12185 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
12186 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
12187 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
12188 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
12189 (init_emit_regs): Likewise.
12190
da443c27 121912011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12192
12193 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
12194 (MEM_OFFSET): Change from returning an rtx to returning a
12195 HOST_WIDE_INT.
12196 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
12197 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
12198 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
12199 (clear_mem_offset): Declare.
12200 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
12201 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
12202 MEM_OFFSET to get a HOST_WIDE_INT offset.
12203 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
12204 (adjust_offset_for_component_ref): Take a bool "known_p"
12205 parameter and a HOST_WIDE_INT "offset" parameter.
12206 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
12207 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
12208 than an rtx. Use clear_mem_offset to clear the offset.
12209 * cfgcleanup.c (merge_memattrs): Likewise.
12210 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
12211 * function.c (assign_parm_find_stack_rtl): Likewise.
12212 (assign_parm_setup_stack): Likewise.
12213 * print-rtl.c (print_rtx): Likewise.
12214 * reload.c (find_reloads_subreg_address): Likewise.
12215 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
12216 * var-tracking.c (INT_MEM_OFFSET): Likewise.
12217 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
12218 (get_mem_align_offset): Likewise.
12219 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
12220 (clear_mem_offset): New function.
12221 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
12222 offset rather than an rtx. Assume both the expressio and offset
12223 are available.
12224 (r10k_needs_protection_p_1): Update accordingly, checking the
12225 expression and offset availability here instead.
12226
5b2a69fa 122272011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12228
12229 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
12230 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
12231 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
12232 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
12233 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
12234 (clear_mem_size): Declare.
12235 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
12236 (clear_mem_size): New function.
12237 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
12238 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
12239 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
12240 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
12241 to clear the size.
12242 (nonoverlapping_memrefs_p): Likewise.
12243 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
12244 (expand_builtin_init_trampoline): Likewise.
12245 * calls.c (compute_argument_addresses): Likewise.
12246 * cfgcleanup.c (merge_memattrs): Likewise.
12247 * dce.c (find_call_stack_args): Likewise.
12248 * dse.c (record_store, scan_insn): Likewise.
12249 * dwarf2out.c (dw_sra_loc_expr): Likewise.
12250 * expr.c (emit_block_move_hints): Likewise.
12251 * function.c (assign_parm_find_stack_rtl): Likewise.
12252 * print-rtl.c (print_rtx): Likewise.
12253 * reload.c (find_reloads_subreg_address): Likewise.
12254 * rtlanal.c (may_trap_p_1): Likewise.
12255 * var-tracking.c (track_expr_p): Likewise.
12256 * varasm.c (assemble_trampoline_template): Likewise.
12257 * config/arm/arm.c (arm_print_operand): Likewise.
12258 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
12259 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
12260 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
12261 (expand_constant_setmem_prologue): Likewise.
12262 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
12263 * config/rs6000/rs6000.c (expand_block_move): Likewise.
12264 (adjacent_mem_locations): Likewise.
12265 * config/s390/s390.c (s390_expand_setmem): Likewise.
12266 (s390_expand_insv): Likewise.
12267 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
12268 (*extendqi<mode>2_short_displ): Likewise.
12269 * config/sh/sh.c (expand_block_move): Likewise.
12270 * config/sh/sh.md (extv, extzv): Likewise.
12271
d72886b5 122722011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12273
12274 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
12275 (mem_attrs_htab_eq): ...here.
12276 (find_mem_attrs): Replace with...
12277 (set_mem_attrs): ...this function. Take a mem_attrs structure
12278 rather than individual fields.
12279 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
12280 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
12281 (set_mem_size, change_address, adjust_address_1, offset_address)
12282 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
12283 Update accordingly.
12284
d83fcaa1 122852011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
12286
12287 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
12288 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
12289 Provide a dummy definition of MEM_ADDR_SPACE for generators.
12290 (target_rtl): Add x_mode_mem_attrs.
12291 (mode_mem_attrs): New macro.
12292 (get_mem_attrs): New function.
12293 * emit-rtl.c (get_mem_attrs): Rename to...
12294 (find_mem_attrs): ...this.
12295 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
12296 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
12297 (set_mem_size, change_address, adjust_address_1, offset_address)
12298 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
12299 Update accordingly.
12300 (init_emit_regs): Initialize mode_mem_attrs.
12301
8f4a7578 123022011-07-19 Richard Guenther <rguenther@suse.de>
12303
12304 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
12305 TRUTH_*_EXPR handling.
12306 * tree-ssa-operands.c (get_expr_operands): Likewise.
12307 * tree-ssa-pre.c (fully_constant_expression): Likewise.
12308 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
12309 Likewise.
12310 (is_and_or_or): Likewise.
12311 (is_norm_cond_subset_of): Likewise.
12312
2cc66f2a 123132011-07-19 Richard Guenther <rguenther@suse.de>
12314
12315 * tree.h (fold_build_pointer_plus_loc): New helper function.
12316 (fold_build_pointer_plus_hwi_loc): Likewise.
12317 (fold_build_pointer_plus): Define.
12318 (fold_build_pointer_plus_hwi): Likewise.
12319 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
12320 (fold_builtin_memory_op): Likewise.
12321 (fold_builtin_stpcpy): Likewise.
12322 (fold_builtin_memchr): Likewise.
12323 (fold_builtin_strstr): Likewise.
12324 (fold_builtin_strchr): Likewise.
12325 (fold_builtin_strrchr): Likewise.
12326 (fold_builtin_strpbrk): Likewise.
12327 (fold_builtin_strcat): Likewise.
12328 (expand_builtin_memory_chk): Likewise.
12329 (fold_builtin_memory_chk): Likewise.
12330 * c-typeck.c (build_unary_op): Likewise.
12331 * cgraphunit.c (thunk_adjust): Likewise.
12332 * fold-const.c (build_range_check): Likewise.
12333 (fold_binary_loc): Likewise.
12334 * omp-low.c (extract_omp_for_data): Likewise.
12335 (expand_omp_for_generic): Likewise.
12336 (expand_omp_for_static_nochunk): Likewise.
12337 (expand_omp_for_static_chunk): Likewise.
12338 * tree-affine.c (add_elt_to_tree): Likewise.
12339 * tree-data-ref.c (split_constant_offset_1): Likewise.
12340 * tree-loop-distribution.c (generate_memset_zero): Likewise.
12341 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
12342 * tree-predcom.c (ref_at_iteration): Likewise.
12343 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
12344 (add_to_parts): Likewise.
12345 (create_mem_ref): Likewise.
12346 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
12347 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
12348 (number_of_iterations_le): Likewise.
12349 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
12350 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
12351 (vect_create_addr_base_for_vector_ref): Likewise.
12352 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
12353 (vect_create_cond_for_alias_checks): Likewise.
12354 * tree-vrp.c (extract_range_from_assert): Likewise.
12355 * config/alpha/alpha.c (alpha_va_start): Likewise.
12356 (alpha_gimplify_va_arg_1): Likewise.
12357 * config/i386/i386.c (ix86_va_start): Likewise.
12358 (ix86_gimplify_va_arg): Likewise.
12359 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
12360 * config/mep/mep.c (mep_expand_va_start): Likewise.
12361 (mep_gimplify_va_arg_expr): Likewise.
12362 * config/mips/mips.c (mips_va_start): Likewise.
12363 (mips_gimplify_va_arg_expr): Likewise.
12364 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
12365 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
12366 (rs6000_gimplify_va_arg): Likewise.
12367 * config/s390/s390.c (s390_va_start): Likewise.
12368 (s390_gimplify_va_arg): Likewise.
12369 * config/sh/sh.c (sh_va_start): Likewise.
12370 (sh_gimplify_va_arg_expr): Likewise.
12371 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
12372 * config/spu/spu.c (spu_va_start): Likewise.
12373 (spu_gimplify_va_arg_expr): Likewise.
12374 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
12375 Likewise.
12376 (xstormy16_gimplify_va_arg_expr): Likewise.
12377 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
12378 (xtensa_gimplify_va_arg_expr): Likewise.
12379
8618a9e7 123802011-07-19 Richard Guenther <rguenther@suse.de>
12381
12382 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
12383 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
12384 handling.
12385
12386 PR middle-end/18908
12387 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
12388 result of BIT_*_EXPR to bitfield precision.
12389
9f2e27ae 123902011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
12391
12392 PR tree-optimization/49742
12393 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
12394 as a potential write.
12395
8618a9e7 123962011-07-19 Richard Guenther <rguenther@suse.de>
12397
12398 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
12399 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
12400 (forward_propagate_comparison): Simplify, remove obsolete code.
12401
569b4ac8 124022011-07-19 Richard Guenther <rguenther@suse.de>
12403
12404 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
12405 BIT_XOR_EXPR, same as the RTL expander does.
12406 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
12407 (verify_gimple_assign_unary): Likewise.
12408 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
12409 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
12410 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
12411
40a19864 124122011-07-19 Jakub Jelinek <jakub@redhat.com>
12413
12414 PR tree-optimization/49768
12415 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
12416 if offset is smaller than bitoffset, but offset+size is bigger
12417 than bitoffset.
12418
1a5a26cb 124192011-07-19 Ira Rosen <ira.rosen@linaro.org>
12420
12421 PR tree-optimization/49771
12422 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
12423 zero step, set segment length to the size of the data-ref's type.
12424
821d0e0f 124252011-07-18 Martin Jambor <mjambor@suse.cz>
12426
12427 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
12428 comments.
12429 (ipcp_values_pool): Declare.
12430 (ipcp_sources_pool): Likewise.
12431 (ipcp_lattice): Changed to forward declaration.
12432 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
12433 cannot_devirtualize.
12434 (ipa_node_params): New fields descriptors, lattices, known_vals,
12435 clone_for_all_contexts and node dead, removed fields params and
12436 count_scale.
12437 (ipa_set_param_count): Removed.
12438 (ipa_get_param_count): Made to work with descriptors vector.
12439 (ipa_get_param): Updated.
12440 (ipa_param_cannot_devirtualize_p): Removed.
12441 (ipa_param_types_vec_empty): Likewise.
12442 (ipa_set_param_used): New function.
12443 (ipa_get_param_used): Updated to use descriptors vector.
12444 (ipa_func_list): Removed.
12445 (ipa_init_func_list): Removed declaration.
12446 (ipa_push_func_to_list_1): Likewise.
12447 (ipa_pop_func_from_list): Likewise.
12448 (ipa_push_func_to_list): Removed.
12449 (ipa_lattice_from_jfunc): Remove declaration.
12450 (ipa_get_jf_pass_through_result): Declare.
12451 (ipa_get_jf_ancestor_result): Likewise.
12452 (ipa_value_from_jfunc): Likewise.
12453 (ipa_get_lattice): Update.
12454 (ipa_lat_is_single_const): New function.
12455 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
12456 (ipa_init_func_list): Likewise.
12457 (ipa_pop_func_from_list): Likewise.
12458 (ipa_get_param_decl_index): Fix coding style.
12459 (count_formal_params): Removed.
12460 (count_formal_params_1): Renamed to count_formal_params.
12461 (ipa_populate_param_decls): Update to use descriptors vector.
12462 (ipa_initialize_node_params): Likewise.
12463 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
12464 (ipa_analyze_params_uses): Likewise.
12465 (ipa_free_node_params_substructures): Likewise and free also lattices
12466 and known values.
12467 (duplicate_array): Removed.
12468 (ipa_edge_duplication_hook): Add the new edge to the list of edge
12469 clones.
12470 (ipa_node_duplication_hook): Update to use new lattices.
12471 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
12472 (ipa_free_all_structures_after_iinln): Likewise.
12473 (ipa_write_node_info): Update to use new lattices.
12474 (ipa_read_node_info): Likewise.
12475 (ipa_get_jf_pass_through_result): New function.
12476 (ipa_get_jf_ancestor_result): Likewise.
12477 (ipa_value_from_jfunc): Likewise.
12478 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
12479 * ipa-cp.c: Reimplemented.
12480 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
12481 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
12482 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
12483 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
12484 * doc/invoke.texi (devirt-type-list-size): Removed description.
12485 (ipa-cp-value-list-size): Added description.
12486
0e1b5033 124872011-07-18 Richard Henderson <rth@redhat.com>
12488
12489 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
12490 before calling create_basic_block.
12491
32f1135b 124922011-07-18 Jakub Jelinek <jakub@redhat.com>
12493
12494 PR middle-end/49675
12495 * tree.c (build_common_builtin_nodes): Register
12496 __builtin_return_address, __cyg_profile_func_enter
12497 and __cyg_profile_func_exit.
12498
29211303 124992011-07-18 Richard Henderson <rth@redhat.com>
12500
12501 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
12502 (add_labels_and_missing_jumps): ... here.
12503 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
12504
3a2befe0 125052011-07-18 Uros Bizjak <ubizjak@gmail.com>
12506
12507 PR target/47744
12508 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
12509 of DImode hard registers in PLUS address chains.
12510
96a9428b 125112011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12512
12513 PR bootstrap/49769
12514 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
12515 (alpha*-*-freebsd*): Likewise.
12516 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
12517 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
12518 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
12519 crtprec80.o, crtfastmath.o to extra_parts for all targets.
12520 (ia64*-*-elf*): Remove extra_parts.
12521 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
12522 (sparc64-*-linux*): Likewise.
12523 (sparc64-*-freebsd*): Likewise.
12524
12525 Revert:
12526 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
12527 (ia64*-*-linux*): Likewise.
12528 (mips64*-*-linux*): Likewise.
12529 (mips*-*-linux*): Likewise.
12530
7168c017 125312011-07-18 David Edelsohn <dje.gcc@gmail.com>
12532
12533 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
12534
eab3f3b8 125352011-07-18 Richard Guenther <rguenther@suse.de>
12536
12537 * gimplify.c (gimplify_expr): Use input_location, not saved_location
12538 when building new trees.
12539
f1c44a44 125402011-07-18 Richard Guenther <rguenther@suse.de>
12541
12542 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
12543 expansion result to bitfield precision if required.
12544
4d72c922 125452011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12546
12547 * config.gcc (i[3456x]86-*-netware*): Remove.
12548
12549 * gthr-nks.h: Remove.
12550 * configure.ac (enable_threads): Remove nks.
12551 * configure: Regenerate.
12552
12553 * config/i386/i386.c (ix86_encode_section_info): Remove netware
12554 reference.
12555 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
12556 <netware.h> reference.
12557
12558 * config/i386/netware-libgcc.c,
12559 gcc/config/i386/netware-libgcc.def,
12560 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
12561 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
12562 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
12563 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
12564
12565 * doc/extend.texi (Function Attributes,
12566 callee_pop_aggregate_return): Remove i?86-netware reference.
12567 * doc/install.texi (Configuration, --enable-threads): Remove nks.
12568
992f5d59 125692011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12570
12571 PR target/49746
12572 Revert:
12573 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12574
12575 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
12576 patterns.
12577
b4b65961 125782011-07-17 Eric Botcazou <ebotcazou@adacore.com>
12579
12580 PR middle-end/49732
12581 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
12582
d7e52ac9 125832011-07-16 Matthias Klose <doko@ubuntu.com>
12584
12585 * doc/install.texi: Document --enable-static-libjava.
12586
2a8e5eeb 125872011-07-15 Richard Henderson <rth@redhat.com>
12588
12589 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
12590 Replace all three arguments by returning a VEC of edges.
12591 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
12592 pointers and counts.
12593 (fix_edges_for_rarely_executed_code): Merge ...
12594 (rest_of_handle_partition_blocks): ... into...
12595 (partition_hot_cold_basic_blocks): ... here. Return todo items if
12596 any work was performed.
12597 (pass_partition_blocks): Clear todo_flags_finish.
12598
24335a64 125992011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
12600 Jakub Jelinek <jakub@redhat.com>
12601 Jonathan Wakely <jwakely.gcc@gmail.com>
12602
12603 PR libstdc++/49745
12604 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
12605 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
12606
a7313276 126072011-07-15 Jason Merrill <jason@redhat.com>
12608
12609 PR testsuite/49741
12610 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
12611 rather than --tool_opts.
12612
7e89f914 126132011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
12614
12615 * doc/plugins.texi (Building GCC plugins): gengtype needs its
324ccaa5 12616 corresponding gtype.state.
7e89f914 12617
9736d0ec 126182011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12619
12620 PR target/49723
12621 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
12622
8ee59e4e 126232011-07-15 Eric Botcazou <ebotcazou@adacore.com>
12624
12625 PR target/48220
12626 * doc/md.texi (Standard Names): Document window_save.
12627 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
12628 expand_debug_expr and expand_debug_source_expr. If the target has
12629 a window_save instruction, adjust the ENTRY_VALUE_EXP.
12630 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
12631 SSA_NAME_VAR is a parameter.
12632 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
12633 * var-tracking.c (parm_reg_t): New type and associated vector type.
12634 (windowed_parm_regs): New variable.
12635 (adjust_insn): If the target has a window_save instruction and this
12636 is the instruction, make its effect on parameter registers explicit.
12637 (next_non_note_insn_var_location): New function.
12638 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
12639 (vt_add_function_parameter): If the target has a window_save insn,
12640 adjust the incoming RTL and record that in windowed_parm_regs.
12641 (vt_finalize): Free windowed_parm_regs.
12642
5aa04b01 126432011-07-15 Bernd Schmidt <bernds@codesourcery.com>
12644
12645 * doc/invoke.texi (C6X Options): New section.
12646 * doc/md.texi (TI C6X family): New section.
12647 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
12648 tic6x-*-uclinux.
12649 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
12650 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
12651 Provide C6X definitions.
12652 * config/c6x/c6x.md: New file.
12653 * config/c6x/constraints.md: New file.
12654 * config/c6x/predicates.md: New file.
12655 * config/c6x/c6x-sched.md.in: New file.
12656 * config/c6x/c6x-sched.md: New file.
12657 * config/c6x/gensched.sh: New file.
12658 * config/c6x/c6x-mult.md.in: New file.
12659 * config/c6x/genmult.sh: New file.
12660 * config/c6x/c6x-mult.md: New file.
12661 * config/c6x/sync.md: New file.
12662 * config/c6x/c6x-protos.h: New file.
12663 * config/c6x/sfp-machine.h: New file.
12664 * config/c6x/c6x.c: New file.
12665 * config/c6x/c6x.h: New file.
12666 * config/c6x/crti.s: New file.
12667 * config/c6x/crtn.s: New file.
12668 * config/c6x/lib1funcs.asm: New file.
12669 * config/c6x/c6x-modes.def: New file.
12670 * config/c6x/genopt.sh: New file.
12671 * config/c6x/c6x.opt: New file.
12672 * config/c6x/c6x-tables.opt: New file.
12673 * config/c6x/c6x-opts.h: New file.
12674 * config/c6x/c6x-isas.def: New file.
12675 * config/c6x/elf.h: New file.
12676 * config/c6x/elf-common.h: New file.
12677 * config/c6x/uclinux-elf.h: New file.
12678 * config/c6x/t-c6x: New file.
12679 * config/c6x/t-c6x-elf: New file.
12680 * config/c6x/t-c6x-uclinux: New file.
12681 * config/c6x/t-c6x-softfp: New file.
12682 * config/c6x/gtd.c: New file.
12683 * config/c6x/gtf.c: New file.
12684 * config/c6x/ltd.c: New file.
12685 * config/c6x/ltf.c: New file.
12686 * config/c6x/ged.c: New file.
12687 * config/c6x/gef.c: New file.
12688 * config/c6x/led.c: New file.
12689 * config/c6x/lef.c: New file.
12690 * config/c6x/eqd.c: New file.
12691 * config/c6x/eqf.c: New file.
12692 * config/c6x/libgcc-c6xeabi.ver: New file.
12693
6aed13f1 12694 Revert
12695 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
12696 PR rtl-optimization/11320
12697 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
12698 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
12699 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
12700 current_sched_info->compute_jump_reg_dependencies. Record which
12701 registers are used and which registers are set by the jump.
12702 Clear deps->reg_conditional_sets after a barrier.
12703 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
12704 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
12705 (init_deps): Initialize reg_conditional_sets.
12706 (free_deps): Clear reg_conditional_sets.
12707 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
12708 Mark registers live on entry of the fallthrough block and conditionally
12709 set as set by the jump. Mark registers live on entry of non-fallthrough
12710 blocks as used by the jump.
12711 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
12712 Mark new parameters as unused.
12713
c2956f55 127142011-07-14 Andrew Pinski <pinskia@gmail.com>
12715
12716 PR tree-opt/49309
12717 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
12718 Use fold_build2_loc instead of build2.
12719 Use the correct type for the new tree.
12720
7ea22d30 127212011-07-14 Bernd Schmidt <bernds@codesourcery.com>
12722
12723 PR rtl-optimization/11320
12724 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
12725 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
12726
ac191360 127272011-07-14 Georg-Johann Lay <avr@gjlay.de>
7ea22d30 12728
ac191360 12729 PR target/49487
12730 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
12731 of REG.
12732 (*rotw<mode>): Use const_int_operand for operand2.
12733 Use match_scatch for operand3.
12734 (*rotb<mode>): Ditto
12735 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
12736
9dd84951 127372011-07-14 Richard Guenther <rguenther@suse.de>
12738
12739 PR tree-optimization/49651
12740 * tree-ssa-structalias.c (get_constraint_for_1): Properly
12741 handle dereferences with subvariables.
12742
fbd25d42 127432011-07-14 Richard Guenther <rguenther@suse.de>
12744
12745 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
12746 (fold_stmt_1): Do it here directly on gimple and as a first thing.
12747
1a9169ac 127482011-07-14 Richard Guenther <rguenther@suse.de>
12749
12750 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
12751 not bool_var when folding bool_var != 1 or bool_var == 0.
12752
2261c559 127532011-07-14 Bernd Schmidt <bernds@codesourcery.com>
12754
12755 * haifa-sched.c (schedule_insns): Remove outdated comment.
12756 (schedule_block): When computing a known value for TODO_SPEC,
12757 just set it rather than using logical operations.
12758 (try_ready): Likewise. Use a local variable rather than a
12759 pointer to TODO_SPEC. Reorder an if statement to move the
12760 easy case to the then block.
12761 * sched-deps.c (dep_spec_p): New static function.
12762 (update_dep): Use it to decide whether to call
12763 change_spec_dep_to_hard.
12764 (get_back_and_forw_lists): Use it.
12765 (sd_resolve_dep): Likewise.
12766 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
12767 (haifa_note_mem_dep): Likewise.
12768 (check_dep): Likewise.
12769 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
12770 (sched_free_deps): Free in two passes.
12771
96d4b8c5 127722011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
12773
12774 PR middle-end/49736
12775 * expr.c (all_zeros_p): Undo bogus part of last change.
12776
9f6922ba 127772011-07-14 Matthias Klose <doko@ubuntu.com>
12778
12779 * doc/extend.texi (optimize attribute): Fix typo.
12780
b19dcf9e 127812011-07-14 Richard Guenther <rguenther@suse.de>
12782
12783 * gimplify.c (gimplify_expr): Only do required conversions.
12784
853000f2 127852011-07-14 Georg-Johann Lay <avr@gjlay.de>
12786
12787 PR target/43746
12788 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
12789 i.e. use default_elf_select_section.
12790 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
12791 (READONLY_DATA_SECTION_ASM_OP): Remove.
12792 (TARGET_ASM_NAMED_SECTION): Move from here...
12793 * config/avr/avr.c: ...to here.
3a2befe0 12794 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
853000f2 12795 (avr_asm_named_section): Make static.
12796
9b0fef97 127972011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12798
12799 PR bootstrap/49739
3a2befe0 12800 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
12801 and crtfastmath.o for Linux/x86.
9b0fef97 12802
e2f4a6ff 128032011-07-14 Bernd Schmidt <bernds@codesourcery.com>
12804
12805 * haifa-sched.c: Include "hashtab.h"
12806 (sched_no_dce): New global variable.
12807 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
12808 SHADOW_P): New macros.
12809 (last_clock_var, cycle_issued_insns): Move declarations.
12810 (must_backtrack): New static variable.
12811 (struct delay_pair): New structure.
12812 (delay_htab, delay_htab_i2): New static variables.
12813 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
12814 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
12815 functions.
12816 (dep_cost_1): If delay pairs exist, try to look up the insns and
12817 use the correct pair delay if we find them.
12818 (rank-for_schedule): Tweak priority for insns that must be scheduled
12819 soon to avoid backtracking.
12820 (queue_insn): Detect conditions which force backtracking.
12821 (ready_add): Likewise.
12822 (struct sched_block_state): Add member shadows_only_p.
12823 (struct haifa_save_data): New structure.
12824 (backtrack_queue): New static variable.
12825 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
12826 unschedule_insns_until, restore_last_backtrack_point,
12827 free_topmost_backtrack_point, free_backtrack_queue,
12828 estimate_insn_tick, estimate_shadow_tick): New functions.
12829 (prune_ready_list): New arg shadows_only_p. All callers changed.
12830 If true, remove everything that isn't SHADOW_P. Look up delay
3a2befe0 12831 pairs and estimate ticks to avoid scheduling the first insn too early.
e2f4a6ff 12832 (verify_shadows): New function.
12833 (schedule_block): Add machinery to enable backtracking.
12834 (sched_init): Take sched_no_dce into account when setting
12835 DF_LR_RUN_DCE.
12836 (free_delay_pairs): New function.
12837 (init_h_i_d): Initialize INSN_EXACT_TICK.
12838 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
12839 * sched-deps.c (sd_unresolve_dep): New function.
12840 * sched-int. (struct haifa_sched_info): New fields save_state
12841 and restore_state.
12842 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
12843 feeds_backtrack_insn and shadow_p.
12844 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
12845 (sched_no_dce): Declare variable.
12846 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
12847 sd_unresolve_dep): Declare functions.
12848 * modulo-sched.c (sms_sched_info): Clear the two new fields.
12849 * sched-rgn.c (rgn_const_sched_info): Likewise.
12850 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
12851 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
12852 (ebb_sched_info): Add them for the two new fields.
12853 (add_deps_for_risky_insns): Call add_delay_dependencies.
12854
0763918e 128552011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12856
12857 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
12858 Rename -mr11.
12859 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
12860 (rs6000_call_indirect_aix): Ditto.
12861 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
12862 (call_indirect_aix<ptrsize>_internal): Ditto.
12863 (call_indirect_aix<ptrsize>_nor11): Ditto.
12864 (call_indirect_aix<ptrsize>_internal2): Ditto.
12865 (call_value_indirect_aix<ptrsize>): Ditto.
12866 (call_value_indirect_aix<ptrsize>_internal): Ditto.
12867 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
12868 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
12869 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
12870
36bc8a20 128712011-07-13 Jason Merrill <jason@redhat.com>
12872
12873 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
12874
4d3aeb29 128752011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12876
12877 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
12878 * config/spu/spu.md ("clrsb<mode>2"): New expander.
12879
bb6be29c 128802011-07-13 Thomas Schwinge <thomas@schwinge.name>
12881
12882 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
12883 * configure: Regenerate.
12884
a54ca889 128852011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12886
12887 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
12888 (asm_file_start): Remove.
12889 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
12890 free_bb_for_insn around code that modifies insns before
12891 restarting df analysis.
12892
867bec2c 128932011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12894
12895 PR target/49541
3a2befe0 12896 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
867bec2c 12897 (LINK_SPEC): ... here.
12898
0c775e95 128992011-07-13 Bernd Schmidt <bernds@codesourcery.com>
12900
12901 * haifa-sched.c (struct sched_block_state): New.
12902 (schedule_block): Move some local variables into such a structure.
12903
ba079bc9 129042011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12905
12906 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
12907 * config/i386/t-crtpc: Remove.
12908 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
12909 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
12910 tmake_file.
12911 (x86_64-*-darwin*): Likewise.
12912 (i[34567]86-*-linux*): Likewise.
12913 (x86_64-*-linux*): Likewise.
12914
12915 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
12916 Handle -mpc32, -mpc64, -mpc80.
12917
1125ba83 129182011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12919
12920 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
12921 * config/alpha/t-crtfm: Remove.
12922 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
12923 * config/i386/t-crtfm: Remove.
12924 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
12925 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
12926 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
12927 * config/sparc/t-crtfm: Remove.
12928
12929 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
12930 (alpha*-*-freebsd*): Likewise.
12931 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
12932 (x86_64-*-darwin*): Likewise.
12933 (i[34567]86-*-linux*): Likewise.
12934 (x86_64-*-linux*): Likewise.
12935 (x86_64-*-mingw*): Likewise.
12936 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
12937 (ia64*-*-freebsd*): Likewise.
12938 (ia64*-*-linux*): Likewise.
12939 (mips64*-*-linux*): Likewise.
12940 (mips*-*-linux*): Likewise.
12941 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
12942 (sparc64-*-linux*): Likewise.
12943 (sparc64-*-freebsd*): Likewise.
12944
1a4a11f3 129452011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12946
12947 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
12948 * config/darwin-crt3.c: Move to ../libgcc/config.
12949 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
12950 ($(T)crt3$(objext)): Remove.
12951 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
12952 ($(T)crt2$(objext)): Remove.
12953 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
12954 (powerpc64-*-darwin*): Likewise.
12955
b3429996 129562011-07-13 H.J. Lu <hongjiu.lu@intel.com>
12957
3a2befe0 12958 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
b3429996 12959
12960 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
12961 (addsi_1_zext): This.
12962
6e71bd21 129632011-07-13 Bernd Schmidt <bernds@codesourcery.com>
12964
12965 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
12966 * doc/tm.texi: Regenerate.
9685fb69 12967 * target.def (mergeable_rodata_prefix): New defhookpod.
6e71bd21 12968 * varasm.c (mergeable_string_section, mergeable_constant_section):
12969 Use it. Allocate name with alloca.
12970
b3142b4e 129712011-07-13 H.J. Lu <hongjiu.lu@intel.com>
12972
12973 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
12974
33767455 129752011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
12976
12977 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
12978 overlap check.
12979
927b65fb 129802011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
12981
12982 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
12983 (count_type_elements): Delete.
12984 (complete_ctor_at_level_p): Declare.
12985 * expr.c (flexible_array_member_p): New function, split out from...
12986 (count_type_elements): ...here. Make static. Replace allow_flexarr
12987 parameter with for_ctor_p. When for_ctor_p is true, return the
12988 number of elements that should appear in the top-level constructor,
12989 otherwise return an estimate of the number of scalars.
12990 (categorize_ctor_elements): Replace p_must_clear with p_complete.
12991 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
12992 (complete_ctor_at_level_p): New function, borrowing union logic
12993 from old categorize_ctor_elements_1.
12994 (mostly_zeros_p): Return true if the constructor is not complete.
12995 (all_zeros_p): Update call to categorize_ctor_elements.
12996 * gimplify.c (gimplify_init_constructor): Update call to
12997 categorize_ctor_elements. Don't call count_type_elements.
12998 Unconditionally prevent clearing for variable-sized types,
12999 otherwise rely on categorize_ctor_elements to detect
13000 incomplete initializers.
13001
5c3a6c62 130022011-07-13 Richard Guenther <rguenther@suse.de>
13003
13004 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
13005 the final type is integral.
13006
38354bb6 130072011-07-13 Bernd Schmidt <bernds@codesourcery.com>
13008
13009 * sched-int.h (struct _dep): Add member cost.
13010 (DEP_COST, UNKNOWN_DEP_COST): New macros.
13011 * sched-deps.c (init_dep_1): Initialize DEP_COST.
13012 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
13013 (sched_change_pattern): Reset it for dependent insns.
13014
ef3ab47f 130152011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13016
13017 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
13018 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
13019 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
13020 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
13021 (CRT0_S, MCRT0_S): Remove.
13022 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
13023 Remove.
13024 (s-crt0): Remove.
13025 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
13026
3c802a1e 130272011-07-12 Eric Botcazou <ebotcazou@adacore.com>
13028
13029 * cse.c (insert_with_costs): Put semi-colon after empty loop body
13030 on the next line.
13031 * emit-rtl.c (push_to_sequence): Likewise.
13032 * haifa-sched.c (max_issue): Likewise.
13033 * matrix-reorg.c (add_allocation_site): Likewise.
13034 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
13035 * reload.c (alternative_allows_const_pool_ref): Likewise.
13036 * sched-rgn.c (rgn_add_block): Likewise.
13037 (rgn_fix_recovery_cfg): Likewise.
13038 * tree.c (attribute_list_contained): Likewise.
13039
f1e45f68 130402011-07-12 Uros Bizjak <ubizjak@gmail.com>
13041
13042 * config/i386/i386.c: Tidy processor feature bitmasks.
13043 (m_P4_NOCONA): New.
13044
2f7c1e7a 130452011-07-12 Andrew Pinski <pinskia@gmail.com>
13046
13047 PR rtl-opt/49474
13048 * cprop.c (find_implicit_sets): Correct the condition.
13049
26a649dd 130502011-07-12 Richard Henderson <rth@redhat.com>
13051
13052 PR target/49713
13053 * dwarf2out.h (dwarf_frame_regnum): Remove.
13054 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
13055 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
13056 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
13057 (execute_dwarf2_frame): Initialize them.
13058 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
13059 users of the macros with the variables.
13060 (expand_builtin_dwarf_sp_column): Revert last change.
13061 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
13062 result of DWARF_FRAME_REGNUM into a local variable.
13063
68495d8b 130642011-07-12 Richard Henderson <rth@redhat.com>
13065
13066 PR target/49714
13067 * config/i386/i386.c (x86_output_mi_thunk): Use
13068 machopic_indirect_call_target instead of machopic_indirection_name
13069 directly.
13070
becb63f5 130712011-07-12 Laurent GUERBY <laurent@guerby.net>
13072 Eric Botcazou <ebotcazou@adacore.com>
13073
13074 * prefix.h: Wrap up in extern "C" block.
13075
8991ae0a 130762011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
13077
13078 AMD bdver2 Enablement
13079 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
13080 (case ${target}): Add bdver2.
13081 * config/i386/driver-i386.c (host_detect_local_cpu): Let
13082 -march=native recognize bdver2 processors.
13083 * config/i386/i386-c.c (ix86_target_macros_internal): Add
13084 bdver2 def_and_undef
13085 * config/i386/i386.c (struct processor_costs bdver2_cost): New
13086 bdver2 cost table.
13087 (m_BDVER2): New definition.
13088 (m_AMD_MULTIPLE): Includes m_BDVER2.
13089 (initial_ix86_tune_features): Add bdver2 tuning.
13090 (processor_target_table): Add bdver2 entry.
13091 (static const char *const cpu_names): Add bdver2 entry.
13092 (ix86_option_override_internal): Add bdver2 instruction sets.
13093 (ix86_issue_rate): Add bdver2.
13094 (ix86_adjust_cost): Add bdver2.
13095 (has_dispatch): Add bdver2.
13096 * config/i386/i386.h (TARGET_BDVER2): New definition.
13097 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
13098 (enum processor_type): Add PROCESSOR_BDVER2.
13099 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
13100 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
13101 description.
13102
17da02d8 131032011-07-12 Richard Henderson <rth@redhat.com>
13104
13105 PR target/49714
13106 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
13107 destination address in memory on some paths.
13108
17bfc2bc 131092011-07-12 Bernd Schmidt <bernds@codesourcery.com>
13110
13111 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
13112 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
13113 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
13114 * function.c (locate_and_pad_parm): Take it into account.
13115 * target.def (function_arg_round_boundary): New hook.
13116 * targhooks.c (default_function_arg_round_boundary): New function.
13117 * targhooks.h (default_function_arg_round_boundary): Declare.
13118 * doc/tm.texi: Regenerate.
13119
8bab8c20 131202011-07-12 Richard Guenther <rguenther@suse.de>
13121
13122 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
13123 Do not perform no-op changes.
13124
4c1dfb84 131252011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
13126
13127 * config/arm/predicates.md (neon_struct_operand): Make a normal
13128 predicate.
13129 (neon_struct_or_register_operand): New predicate.
13130 * config/arm/neon.md (movmisalign<mode>): Replace predicates
13131 with neon_struct_or_register_operand.
13132 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
13133 neon_struct_operand instead of memory_operand.
13134
7f70d5bc 131352011-07-12 Martin Jambor <mjambor@suse.cz>
13136
13137 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
13138 * cgraph.c (cgraph_get_node_or_alias): Removed.
13139 (change_decl_assembler_name): Changed all calls to
13140 cgraph_get_node_or_alias to a call to cgraph_get_node.
13141 (cgraph_make_decl_local): Likewise.
13142 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
13143 * varasm.c (default_binds_local_p_1): Likewise.
13144 (decl_binds_to_current_def_p): Likewise.
13145
58a7eead 131462011-07-12 Jakub Jelinek <jakub@redhat.com>
13147
13148 PR tree-optimization/49712
13149 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
13150
002e7d08 131512011-07-11 Bernd Schmidt <bernds@codesourcery.com>
13152
13153 * genautomata.c (add_arc): Return void. All callers changed.
13154 (make_automaton): Remove dead code.
13155
559e966b 131562011-07-11 Richard Henderson <rth@redhat.com>
13157
13158 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
13159 (DW_FRAME_POINTER_REGNUM): New.
13160 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
13161 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
13162 (dwf_regno): New.
13163 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
13164 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
13165 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
13166 Use it.
13167 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
13168 * dwarf2out.h (dwarf_frame_regnum): New.
13169 (struct cfa_loc): Document the domain of the reg member.
13170
2fe4965c 131712011-07-11 Uros Bizjak <ubizjak@gmail.com>
13172
13173 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
13174 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
13175
d89f182d 131762011-07-11 Jakub Jelinek <jakub@redhat.com>
13177
13178 PR debug/49676
13179 * dwarf2out.c (int_shift_loc_descriptor): New function.
13180 (int_loc_descriptor): If shorter, emit i as
13181 (i >> shift), shift, DW_OP_shl for suitable shift value.
13182 Similarly, try to optimize large negative values using
13183 DW_OP_neg of a positive value if shorter.
13184 (size_of_int_shift_loc_descriptor): New function.
13185 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
13186 changes.
13187 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
13188 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
13189 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
13190 is shorter.
13191 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
13192 addend as added DW_OP_plus if it is shorter.
13193
f95ce296 131942011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13195
13196 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
13197 (DTORS_SECTION_ASM_OP): Define.
13198
17aa03f5 131992011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13200
13201 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
13202 * config/t-dfprules: Move to ../libgcc/config.
13203 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
13204 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
13205 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
13206 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
13207 Likewise.
13208 (i[34567]86-*-cygwin*): Likewise.
13209 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
13210 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
13211 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
13212 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
13213 D64PBIT_FUNCS, D128PBIT_FUNCS.
13214
b3b0dcac 132152011-07-11 Richard Guenther <rguenther@suse.de>
13216
13217 * tree-vrp.c (simplify_conversion_using_ranges): Manually
13218 translate the source value-range through the conversion chain.
13219
36eabf84 132202011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
13221
13222 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
13223
5cd72ba2 132242011-07-11 Arthur Loiret <aloiret@debian.org>
13225
13226 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
13227 a bi-arch compiler defaulting to 31-bit. In this case:
13228 (tmake_file): Add s390/t-linux64.
13229 * doc/install.texi: Add s390-linux to the list of targets supporting
13230 --enable-targets=all.
13231
b167b87f 132322011-07-11 Arthur Loiret <aloiret@debian.org>
13233 Matthias Klose <doko@debian.org>
13234
13235 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
13236 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
13237 (tm_file): Add mips/linux64.h.
13238 (tmake_file): Add mips/t-linux64.
13239 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
13240 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
13241 instead of hardcoded mabi=n32.
13242 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
13243 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
13244 convention.
13245
b1b0dde1 132462011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13247
13248 * passes.c (init_optimization_passes): Add invariant motion pass
13249 after induction variable optimization.
13250
416181eb 132512011-07-11 Georg-Johann Lay <avr@gjlay.de>
2fe4965c 13252
416181eb 13253 PR target/39633
13254 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
13255 offsets 1..5 set cc0 in a usable way.
13256
62ab7811 132572011-07-11 Romain Geissler <romain.geissler@gmail.com>
13258
13259 * tree.h (call_expr_arg): Remove.
13260 (call_expr_argp): Likewise.
13261
b3965770 132622011-07-11 Eric Botcazou <ebotcazou@adacore.com>
13263
13264 * config/sparc/sparc.md (save_register_window_1): Rename to...
13265 (window_save): ...this.
13266 * config/sparc/sparc.c (emit_save_register_window): Rename to...
13267 (emit_window_save): ...this.
13268 (sparc_expand_prologue): Adjust to above renaming.
13269
67b000c1 132702011-07-10 H.J. Lu <hongjiu.lu@intel.com>
13271
13272 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
13273 of movabs for x32.
13274
33c5bf40 132752011-07-10 Richard Henderson <rth@redhat.com>
13276
13277 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
13278 run final, instead of emitting text directly.
13279
e75b254a 132802011-07-10 H.J. Lu <hongjiu.lu@intel.com>
13281
13282 * config/i386/i386.c (ix86_option_override_internal): Turn on
13283 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
13284 small PIC models for TARGET_X32.
13285
18425913 132862011-07-10 Hans-Peter Nilsson <hp@axis.com>
13287
807e870d 13288 PR target/49684
13289 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
13290 $(LIBGCC2_CFLAGS).
13291
18425913 13292 PR bootstrap/49680
13293 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
13294 stray notes and debug insns by using prev_nonnote_nondebug_insn
13295 instead of PREV_INSN.
13296
04dfc41a 132972011-07-09 Richard Henderson <rth@redhat.com>
13298
13299 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
13300 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
13301 * dwarf2out.c: ... here.
13302 (output_all_cfis): Remove.
13303 (dwarf2out_switch_text_section): Use output_cfis directly.
13304 (size_of_locs): Export.
13305 (output_loc_sequence, output_loc_sequence_raw): Export.
13306 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
13307 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
13308 output_cfa_loc_raw): Move to ...
13309 * dwarfcfi.c: ... here.
13310 * dwarf2out.h: Update decls.
13311
53a3f6d1 133122011-07-09 Richard Henderson <rth@redhat.com>
13313
13314 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
13315 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
13316 * dwarf2cfi.c: ... here.
13317 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
13318 (DWARF_ROUND, DWARF_CIE_ID): Remove.
13319 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
13320 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
13321 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
13322
6ca363a7 133232011-07-09 Richard Henderson <rth@redhat.com>
13324
13325 * dwarf2cfi.c (cie_return_save): New.
13326 (queue_reg_save): Use compare_reg_or_pc.
13327 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
13328 (dwarf2out_frame_debug_expr): Likewise.
13329 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
13330 (initial_return_save): Likewise.
13331 (execute_dwarf2_frame): Save and restore initial return save from
13332 the cie to the fde.
13333 * config/mips/mips.c (mips_frame_set): Remove special case for
13334 DWARF_FRAME_RETURN_COLUMN.
13335
4a7a4715 133362011-07-09 Richard Henderson <rth@redhat.com>
13337
13338 * dwarf2cfi.c (lookup_cfa): Remove.
13339 (execute_dwarf2_frame): Assert queues are empty on entry.
13340 Setup initial cfa directly, not via lookup_cfa.
13341 Don't clear args_size state here.
13342
d4898332 133432011-07-09 Richard Henderson <rth@redhat.com>
13344
13345 * dwarf2cfi.c (add_cfi_vec): New.
13346 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
13347 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
13348 (execute_dwarf2_frame): Set add_cfi_vec.
13349
2d0a9e44 133502011-07-09 Richard Henderson <rth@redhat.com>
13351
13352 * defaults.h (ASM_COMMENT_START): Move here...
13353 * dwarf2asm.c: ... from here.
13354 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
13355 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
13356 * varasm.c: Likewise.
13357
a6b622eb 133582011-07-09 Richard Henderson <rth@redhat.com>
13359
13360 PR debug/49686
13361 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
13362 (create_cfi_notes): ... do it here instead.
13363
1a6ad454 133642011-07-09 Jakub Jelinek <jakub@redhat.com>
13365
13366 PR debug/49676
13367 * dwarf2out.c (size_of_int_loc_descriptor): New function.
13368 (address_of_int_loc_descriptor): Use it.
2fe4965c 13369 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
1a6ad454 13370
870bfab4 133712011-07-09 Richard Henderson <rth@redhat.com>
13372
13373 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
13374 (prologue, epilogue): New.
13375 (return, *rts): New.
13376 (blockage, setd, seti): New.
13377 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
13378 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
13379 (pdp11_saved_regno): New.
13380 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
13381 generate rtl instead of text.
13382 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
13383 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
13384 * config/pdp11/pdp11-protos.h: Update.
13385
55c768a2 133862011-07-09 Richard Henderson <rth@redhat.com>
13387
13388 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
13389 try to insert an rtl prologue here.
13390 (rs6000_output_function_epilogue): Similarly.
13391 * config/rs6000/rs6000.md (prologue): Emit a barrier to
13392 satisfy !TARGET_SCHED_PROLOG.
13393 (epilogue, sibcall_epilogue): Likewise.
13394
48570de5 133952011-07-09 Eric Botcazou <ebotcazou@adacore.com>
13396
13397 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
13398 (FP_REG_P): Delete.
13399 (IN_OR_GLOBAL_P): Likewise.
13400
dabebf7e 134012011-07-08 Jason Merrill <jason@redhat.com>
13402
3115bda0 13403 PR c++/45437
13404 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
13405 compound assignment.
13406
dabebf7e 13407 * cgraph.c (cgraph_add_to_same_comdat_group): New.
13408 * cgraph.h: Declare it.
13409 * ipa.c (function_and_variable_visibility): Make sure thunks
13410 have the right visibility.
13411
6d627b5f 134122011-07-08 Richard Henderson <rth@redhat.com>
13413
13414 PR bootstrap/49680
13415 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
13416 any tablejump vector.
13417
de9b0618 13418 PR bootstrap/49680
13419 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
13420 end of the prologue.
13421
3e7a8659 134222011-07-08 Jakub Jelinek <jakub@redhat.com>
13423
13424 PR target/49621
13425 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2fe4965c 13426 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
3e7a8659 13427 * config/rs6000/vector.md (vector_select_<mode>,
13428 vector_select_<mode>_uns): Change second operand of NE to
13429 CONST0_RTX (<MODE>mode) instead of const0_rtx.
13430 * config/rs6000/altivec.md (*altivec_vsel<mode>,
13431 *altivec_vsel<mode>_uns): Expect second operand of NE to be
13432 zero_constant of the corresponding vector mode.
13433 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
13434 Likewise.
13435
1684dcca 134362011-07-08 Sebastian Pop <sebastian.pop@amd.com>
13437
13438 * graphite-dependences.c (build_alias_set_powerset): Remove
13439 continue from loop, add one more assert.
13440
3d4d979d 134412011-07-08 Georg-Johann Lay <avr@gjlay.de>
2fe4965c 13442
3d4d979d 13443 PR target/46779
13444 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
13445 In particular, allow 8-bit values in r28 and r29.
13446 (avr_hard_regno_scratch_ok): Disallow any register that might be
13447 part of the frame pointer.
13448 (avr_hard_regno_rename_ok): Same.
13449 (avr_legitimate_address_p): Don't allow SUBREGs.
13450
b46a36c7 134512011-07-08 Julian Brown <julian@codesourcery.com>
13452
13453 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
13454 big-endian mode.
13455 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
13456 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
13457 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
13458 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
13459 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
13460 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
13461 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
13462 registers in big-endian mode.
13463
7336c0af 134642011-07-08 Bernd Schmidt <bernds@codesourcery.com>
13465
13466 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
13467 in terms of another.
13468 (write_attr_value): Write a cast if necessary.
13469
76c64076 13470 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
13471 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
13472 (REG_WORDS_BIG_ENDIAN): Document.
13473 * doc/tm.texi: Regenerate.
13474 * reload.c (operands_match_p): Take it into account.
13475 (reload_adjust_reg_for_mode): Likewise.
13476 * rtlanal.c (subreg_get_info): Likewise.
13477
0b9b1b4d 134782011-07-08 Richard Guenther <rguenther@suse.de>
13479
13480 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
13481 folding.
13482
1e06ea55 134832011-07-08 Kai Tietz <ktietz@redhat.com>
13484
13485 * fold-const.c (fold_truth_andor): Factored out truth_andor
13486 label from fold_binary as function.
13487 (fold_binary_loc): Replace truth_andor lable
13488 by function fold_truth_andor.
13489
cc0595c0 134902011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
13491
13492 PR middle-end/49519
13493 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
13494 check if address is stored in register. If so - give up.
13495 (check_sibcall_argument_overlap_1): Do not perform check of
13496 overlapping when it is call to address.
13497
46161cc2 134982011-07-08 Georg-Johann Lay <avr@gjlay.de>
7336c0af 13499
46161cc2 13500 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
13501 of magic '31'.
13502
995b44f5 135032011-07-08 Bernd Schmidt <bernds@codesourcery.com>
13504
13505 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
13506 GET_MODE_BITSIZE where appropriate.
13507 (widen_leading, expand_parity, expand_ctz, expand_ffs,
13508 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
13509 expand_float, expand_fix): Likewise.
13510 * expr.c (convert_move, convert_modes, expand_expr_real_2,
13511 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
13512 * stor-layout.c (get_mode_bounds): Likewise.
13513 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
13514 Likewise.
13515 * convert.c (convert_to_integer): Likewise.
13516 * expmed.c (expand_shift_1): Likewise.
13517
b0676cad 13518 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
13519 a bitsize.
13520
eb2457b0 13521 * optabs.c (expand_binop): Tighten conditions for doubleword
13522 expansions.
2fe4965c 13523 (widen_bswap): Assert that mode bitsize and precision are the same.
eb2457b0 13524 * stor-layout.c (get_best_mode): Skip modes that have lower
13525 precision than bitsize.
13526 * recog.c (simplify_while_replacing): Assert that bitsize and
13527 precision are the same.
13528
2bc72a9f 135292011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13530
13531 * Makefile.in (LIBGCOV): Remove.
13532 (libgcc.mvars): Remove LIBGCOV.
13533 * libgov.c: Move to ../libgcc.
13534
36a5227d 135352011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13536
13537 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
13538
be8f376f 135392011-07-08 Martin Jambor <mjambor@suse.cz>
13540
13541 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
13542 is too big for total scalarization.
13543
56276963 135442011-07-07 Richard Henderson <rth@redhat.com>
13545
13546 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
13547 (DBX_DEBUGGING_INFO): Undef.
13548
d53ccf7b 135492011-07-07 Richard Henderson <rth@redhat.com>
13550
13551 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
13552 Handle some opcodes specially for debugging.
13553 * print-rtl.c: Include dwarf2out.h
13554 (print_rtx): Handle NOTE_INSN_CFI.
13555 * Makefile.in (print-rtl.o): Update.
13556
fe2dc6d6 135572011-07-07 Richard Henderson <rth@redhat.com>
13558
13559 * tree-pass.h (pass_dwarf2_frame): Declare.
13560 * passes.c (init_optimization_passes): Add it.
13561 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
13562 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
13563 make static, do not call add_cfis_to_fde.
13564 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
13565 dwarf2out_frame_init): Merge into...
13566 (execute_dwarf2_frame): ... here. New function.
13567 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
13568 saved_do_cfi_asm to a tri-state variable.
13569 (gate_dwarf2_frame, pass_dwarf2_frame): New.
13570 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
13571 if it has yet to be done. Don't call dwarf2cfi_function_init.
13572 * dwarf2out.h, debug.h: Update decls.
13573 * final.c (final_start_function): Don't call
13574 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
13575 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
13576 * toplev.c (lang_dependent_init): Likewise.
13577
6033bf11 135782011-07-07 Richard Henderson <rth@redhat.com>
13579
13580 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
13581 FDE_TABLE_INCREMENT): Replace with...
13582 (fde_vec): ... this, a new vector.
13583 (current_fde): Remove. Replace all users with cfun->fde.
13584 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
13585 (size_of_aranges, dwarf2out_finish): Likewise.
13586 (dwarf2out_alloc_current_fde): Break out from ...
13587 (dwarf2out_begin_prologue): ... here.
13588 (dwarf2out_frame_init): Remove.
13589 * dwarf2cfi.c: Update all users of current_fde.
13590 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
13591 * dwarf2out.h: Update decls.
13592 (dw_fde_node): Add fde_index member.
13593 * function.h (struct function): Add fde member.
13594
c746c5c3 135952011-07-07 Bernd Schmidt <bernds@codesourcery.com>
13596 Richard Henderson <rth@redhat.com>
13597
13598 * dwarf2cfi.c (add_cfi): Remove.
13599 (dwarf2out_cfi_label): Remove force argument. Only generate the
13600 label name.
13601 (add_fde_cfi): Simplify the different code paths.
13602 (add_cie_cfi): New.
13603 (old_cfa, old_cfa_remember): New.
13604 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
13605 (last_reg_save_label): Remove.
13606 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
13607 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
13608 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
13609 dwarf2out_frame_debug_cfa_expression,
13610 dwarf2out_frame_debug_cfa_restore,
13611 dwarf2out_frame_debug_cfa_window_save,
13612 dwarf2out_frame_debug_expr): Remove label parameter.
13613 (cfi_label_required_p, add_cfis_to_fde): New.
13614 (dwarf2out_frame_debug_after_prologue): New.
13615 (dwarf2cfi_frame_init): Initialize old_cfa.
13616 (dwarf2out_frame_debug_restore_state): Likewise.
13617 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
13618 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
13619 * final.c (final_start_function): Call
13620 dwarf2out_frame_debug_after_prologue.
13621
46346a52 136222011-07-07 Bernd Schmidt <bernds@codesourcery.com>
13623 Richard Henderson <rth@redhat.com>
13624
13625 * dwarf2cfi.c (cfi_insn): New.
13626 (dwarf2out_cfi_label): Don't emit cfi label here.
13627 (add_fde_cfi): Create a NOTE_INSN_CFI.
13628 (dwarf2out_frame_debug): Setup cfi_insn.
13629 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
13630 (dwarf2out_cfi_begin_epilogue): Make static.
13631 (dwarf2out_frame_debug_restore_state): Make static.
13632 * dwarf2out.c (output_cfi_directive): Make static.
13633 (dwarf2out_emit_cfi): New.
13634 * dwarf2out.h: Update.
13635 * final.c (final): Remove CFI notes.
13636 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
13637 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
13638 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
13639 * insn-notes.def (NOTE_INSN_CFI): New.
13640 (NOTE_INSN_CFI_LABEL): New.
13641 * rtl.h (union rtunion_def): Add rt_cfi member.
13642 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
13643
dcdf448e 136442011-07-07 Richard Henderson <rth@redhat.com>
13645
13646 * dwarf2cfi.c: New file.
13647 * Makefile.in (OBJS): Add it.
13648 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
13649 * gengtype.c (open_base_files): Include dwarf2out.h.
13650 * coretypes.h (enum var_init_status): Move from ...
13651 * rtl.h: ... here.
13652 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
13653 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
13654 expand_builtin_dwarf_sp_column, init_return_column_size,
13655 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
13656 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
13657 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
13658 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
13659 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
13660 compute_barrier_args_size, dwarf2out_args_size,
13661 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
13662 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
13663 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
13664 queue_reg_save, dwarf2out_flush_queued_reg_saves,
13665 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
13666 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
13667 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
13668 dwarf2out_frame_debug_cfa_expression,
13669 dwarf2out_frame_debug_cfa_restore,
13670 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
13671 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
13672 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
13673 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
13674 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
13675 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
13676 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
13677 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
13678 dw_loc_descr_node): Move to dwarf2out.h.
13679 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
13680 mem_loc_descriptor): Export.
13681 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
13682 (dwarf2out_frame_init): Extract CIE generation code to
13683 dwarf2cfi_frame_init.
13684
28b9ad8f 136852011-07-07 Eric Botcazou <ebotcazou@adacore.com>
13686
13687 PR target/49660
13688 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
13689 MASK_V8PLUS, remove commented out flag and reorder.
13690
66031ea7 136912011-07-07 Jakub Jelinek <jakub@redhat.com>
13692
13693 PR c/49644
13694 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
13695 one non-complex and one complex argument, call c_save_expr on both
13696 operands.
13697
2f9d66d3 136982011-07-07 Martin Jambor <mjambor@suse.cz>
13699
13700 PR middle-end/49495
13701 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
13702 (verify_cgraph_node): Some functinality moved to
13703 verify_edge_corresponds_to_fndecl, call it.
13704
689a8077 137052011-07-07 Joseph Myers <joseph@codesourcery.com>
13706
13707 * config.gcc (*local*): Remove.
13708 * doc/install-old.texi: Don't mention local configurations.
13709
910dcf9a 137102011-07-07 Jakub Jelinek <jakub@redhat.com>
13711
13712 PR debug/49522
13713 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
13714 referencing debug insns that have been reset.
13715 (dead_debug_insert_before): Don't assert reg is non-NULL,
13716 instead return immediately if it is NULL.
13717
dc13fbf7 137182011-07-07 Joseph Myers <joseph@codesourcery.com>
13719
2fe4965c 13720 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
dc13fbf7 13721
1b727a0a 137222011-07-07 Bernd Schmidt <bernds@codesourcery.com>
13723
13724 * hw-doloop.c: New file.
13725 * hw-doloop.h: New file.
13726 * Makefile.in (OBJS): Add hw-doloop.o.
13727 (hw-doloop.o): New rule.
13728 ($(obj_out_file)): Add hw-doloop.h dependency.
13729 * config/bfin/bfin.c: Include "hw-doloop.h".
13730 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
13731 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
13732 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
13733 type changed to hwloop_info. Return bool, true if the loop was
13734 successfully optimized. Remove code that was moved to
13735 hw-doloop.c, and adjust other parts.
13736 (hwloop_fail): New static function, containing parts that used
13737 to be in bfin_optimize_loop.
13738 (bfin_discover_loop, bfin_discover_loops, free_loops,
13739 bfin_reorder_loops): Remove.
13740 (hwloop_pattern_reg): New static function.
13741 (bfin_doloop_hooks): New variable.
13742 (bfin_reorg_loops): Remove most code, call reorg_loops.
13743 * config/bfin/bfin.md (doloop_end splitter): Also enable if
13744 loop counter is a memory_operand.
13745
596b2ba3 137462011-07-07 H.J. Lu <hongjiu.lu@intel.com>
13747
2fe4965c 13748 * config.gcc: Support --with-multilib-list for x86 Linux targets.
596b2ba3 13749
13750 * configure.ac: Mention x86-64 for --with-multilib-list.
13751 * configure: Regenerated.
13752
13753 * config/i386/gnu-user64.h (SPEC_64): Support x32.
13754 (SPEC_32): Likewise.
13755 (ASM_SPEC): Likewise.
13756 (LINK_SPEC): Likewise.
13757 (TARGET_THREAD_SSP_OFFSET): Likewise.
13758 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
13759 (SPEC_X32): New.
13760
13761 * config/i386/i386.h (TARGET_X32): New.
13762 (TARGET_LP64): New.
13763 (LONG_TYPE_SIZE): Likewise.
13764 (POINTER_SIZE): Likewise.
13765 (POINTERS_EXTEND_UNSIGNED): Likewise.
13766 (OPT_ARCH64): Support x32.
13767 (OPT_ARCH32): Likewise.
13768
13769 * config/i386/i386.opt (mx32): New.
13770
13771 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
13772 (GLIBC_DYNAMIC_LINKERX32): Likewise.
13773 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
13774 (GLIBC_DYNAMIC_LINKERX32): Likewise.
13775
13776 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
13777 (BIONIC_DYNAMIC_LINKERX32): Likewise.
13778 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
13779
13780 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
13781
2fe4965c 13782 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
596b2ba3 13783
13784 * doc/invoke.texi: Document -mx32.
13785
4d2045bb 137862011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
13787
13788 * doc/invoke.texi (mwords-little-endian): Deprecate.
13789 * config/arm/arm.opt (mwords-little-endian): Likewise.
13790 * config/arm/arm.c (arm_option_override): Warn about the deprecation
13791 of -mwords-little-endian.
13792
629bdf62 137932011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
13794
13795 * reload1.c (choose_reload_regs): Use mode sizes to check whether
13796 an old reload register completely defines the required value.
13797
ff174e5c 137982011-07-07 Richard Guenther <rguenther@suse.de>
13799
13800 * fold-const.c (fold_unary_loc): Do not strip sign-changes
13801 for NEGATE_EXPR.
13802
7430df61 138032011-07-07 Richard Guenther <rguenther@suse.de>
13804
13805 * tree-vrp.c (simplify_conversion_using_ranges): New function.
13806 (simplify_stmt_using_ranges): Call it.
13807
41913fa9 138082011-07-07 Kai Tietz <ktietz@redhat.com>
13809
13810 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
13811 (lookup_logical_inverted_value): Likewise.
13812 (simplify_bitwise_binary_1): Likewise.
13813 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
13814
88483769 138152011-07-07 Joseph Myers <joseph@codesourcery.com>
13816
13817 * gcc.c (%[Spec]): Don't document.
13818 (struct spec_list): Update comment.
13819 (do_spec_1): Don't handle %[Spec].
13820 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
13821
393a753d 138222011-07-07 Joseph Myers <joseph@codesourcery.com>
13823
13824 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
13825 default based on TARGET_ASM_NAMED_SECTION.
13826 * common/common-target.def (have_named_sections): Default to true.
13827 * common/config/default-common.c: Don't include tm.h.
13828 * common/config/picochip/picochip-common.c
13829 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
13830 * common/config/m32c/m32c-common.c: Remove.
13831 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
2fe4965c 13832 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
13833 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
13834 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
393a753d 13835 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2fe4965c 13836 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
13837 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
393a753d 13838
85b059d7 138392011-07-07 Jakub Jelinek <jakub@redhat.com>
13840
13841 PR middle-end/49640
2fe4965c 13842 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
13843 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
85b059d7 13844
1043205d 138452011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13846
13847 PR libmudflap/49550
13848 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
13849
14f27bc6 138502011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13851
13852 PR target/39150
13853 * configure.ac (gcc_cv_as_hidden): Also accept
13854 x86_64-*-solaris2.1[0-9]*.
13855 (gcc_cv_as_cfi_directive): Likewise.
13856 (gcc_cv_as_comdat_group_group): Likewise.
13857 (set_have_as_tls): Likewise.
13858 * configure: Regenerate.
13859 * config.gcc (i[34567]86-*-solaris2*): Also handle
13860 x86_64-*-solaris2.1[0-9]*.
13861 * config.host (i[34567]86-*-solaris2*): Likewise.
13862 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
13863 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
13864 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
13865 (TARGET_LD_EMULATION): Use it.
13866 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
13867 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
13868 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
13869 (ASM_CPU64_DEFAULT_SPEC): Define.
13870 (ASM_CPU_SPEC): Use %(asm_cpu_default).
13871 (ASM_SPEC): Redefine.
13872 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
13873 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
2fe4965c 13874 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
14f27bc6 13875 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
13876 configuration.
13877 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
13878
cc3f74e8 138792011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13880
13881 * config/sol2.h (ASM_SPEC): Split into ...
13882 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
13883 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
13884 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
13885 (ASM_SPEC): Use ASM_SPEC_BASE.
13886 * config/sparc/sol2.h (ASM_SPEC): Redefine.
13887
9ce2d202 138882011-07-07 Georg-Johann Lay <avr@gjlay.de>
2fe4965c 13889
9ce2d202 13890 * config/avr/avr.md (*reload_insi): Change predicate #1 to
13891 const_int_operand. Ditto for peep2 producing this insn.
13892 Add argument to output_reload_insisf call.
13893 (*movsi,*movsf): Add argument to output_movsisf call.
13894 (*reload_insf): New insn and new peep2 to produce it.
13895 * config/avr/avr-protos.h (output_movsisf): Change prototype.
13896 (output_reload_insisf): Change prototype.
13897 * config/avr/avr.c (avr_asm_len): New function.
13898 (output_reload_insisf): Rewrite.
13899 (output_movsisf): Change prototype. output_reload_insisf for
13900 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
13901 (adjust_insn_length): Add argument to output_movsisf and
13902 output_reload_insisf call.
13903
b537bfdb 139042011-07-07 Bernd Schmidt <bernds@codesourcery.com>
13905
13906 * emit-rtl.c (paradoxical_subreg_p): New function.
13907 * rtl.h (paradoxical_subreg_p): Declare.
13908 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
13909 apply_distributive_law, simplify_comparison, simplify_set): Use it.
13910 * cse.c (record_jump_cond, cse_insn): Likewise.
13911 * expr.c (force_operand): Likewise.
13912 * rtlanal.c (num_sign_bit_copies1): Likewise.
13913 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
13914 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
13915 (push_reload): Use precision to check for paradoxical subregs.
13916 * expmed.c (extract_bit_field_1): Likewise.
13917
f179ee60 13918 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
13919 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
13920 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
13921 simplify_set, simplify_logical, expand_compound_operation,
13922 make_extraction, force_to_mode, if_then_else_cond, extended_count,
13923 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
13924 record_value_for_reg): Likewise.
13925 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
13926 * simplify-rtx. c (simplify_unary_operation_1,
13927 simplify_binary_operation_1, simplify_const_relational_operation):
13928 Likewise.
13929
ded805e6 13930 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
13931 instead of GET_MODE_BITSIZE where appropriate.
13932 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
13933 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
13934 init_num_sign_bit_copies_in_rep): Likewise.
13935 * cse.c (fold_rtx, cse_insn): Likewise.
13936 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
13937 * simplify-rtx.c (simplify_unary_operation_1,
13938 simplify_const_unary_operation, simplify_binary_operation_1,
13939 simplify_const_binary_operation, simplify_ternary_operation,
13940 simplify_const_relational_operation, simplify_subreg): Likewise.
13941 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
13942 simplify_if_then_else, simplify_set, expand_compound_operation,
13943 expand_field_assignment, make_extraction, if_then_else_cond,
13944 make_compound_operation, force_to_mode, make_field_assignment,
13945 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
13946 extended_count, try_widen_shift_mode, simplify_shift_const_1,
13947 simplify_comparison, record_promoted_value, simplify_compare_const,
13948 record_dead_and_set_regs_1): Likewise.
13949
b3003238 13950 Revert:
13951 * simplify-rtx.c (simplify_const_binary_operation): Use the
2fe4965c 13952 shift_truncation_mask hook instead of performing modulo by width.
13953 Compare against mode precision, not bitsize.
b3003238 13954 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2fe4965c 13955 Use shift_truncation_mask instead of constructing the value manually.
b3003238 13956
e2502ff1 139572011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
13958
13959 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
13960 declaration.
13961 (rs6000_save_toc_in_prologue_p): Ditto.
13962
13963 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
13964 up the static chain (r11) during indirect function calls.
13965 (-msave-toc-indirect): New undocumented debug switch.
13966
13967 * config/rs6000/rs6000.c (struct machine_function): Add
13968 save_toc_in_prologue field to note whether the prologue needs to
13969 save the TOC value in the reserved stack location.
13970 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
13971 to save the TOC in the prologue, do so.
13972 (rs6000_trampoline_init): Don't allow creating AIX style
13973 trampolines if -mno-r11 is in effect.
13974 (rs6000_call_indirect_aix): New function to create AIX style
13975 indirect calls, adding support for -mno-r11 to suppress loading
13976 the static chain, and saving the TOC in the prologue instead of
13977 the call body.
13978 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
13979 TOC in the prologue.
13980
13981 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
13982 register numbers.
13983 (TOC_REGNUM): Ditto.
13984 (STATIC_CHAIN_REGNUM): Ditto.
13985 (ARG_POINTER_REGNUM): Ditto.
13986 (SFP_REGNO): Delete, unused.
13987 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
13988 function descriptor offsets.
13989 (TOC_SAVE_OFFSET_64BIT): Ditto.
13990 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
13991 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
13992 (AIX_FUNC_DESC_SC_32BIT): Ditto.
13993 (AIX_FUNC_DESC_SC_64BIT): Ditto.
2fe4965c 13994 (ptrload): New mode attribute for the appropriate load of a pointer.
13995 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
e2502ff1 13996 (call_indirect_aix64): Ditto.
13997 (call_value_indirect_aix32): Ditto.
13998 (call_value_indirect_aix64): Ditto.
13999 (call_indirect_nonlocal_aix32_internal): Ditto.
14000 (call_indirect_nonlocal_aix32): Ditto.
14001 (call_indirect_nonlocal_aix64_internal): Ditto.
14002 (call_indirect_nonlocal_aix64): Ditto.
14003 (call): Rewrite AIX indirect function calls. Add support for
14004 eliminating the static chain, and for moving the save of the TOC
14005 to the function prologue.
14006 (call_value): Ditto.
14007 (call_indirect_aix<ptrsize>): Ditto.
14008 (call_indirect_aix<ptrsize>_internal): Ditto.
14009 (call_indirect_aix<ptrsize>_internal2): Ditto.
14010 (call_indirect_aix<ptrsize>_nor11): Ditto.
14011 (call_value_indirect_aix<ptrsize>): Ditto.
14012 (call_value_indirect_aix<ptrsize>_internal): Ditto.
14013 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
14014 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
14015 (call_nonlocal_aix32): Relocate in the rs6000.md file.
14016 (call_nonlocal_aix64): Ditto.
14017
14018 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
14019 -mno-r11 documentation.
14020
f3b11bf1 140212011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
14022
14023 PR other/49658
14024 * doc/extend.texi (Compound Literals): Fix typo.
14025
9c8421d8 140262011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
14027
2fe4965c 14028 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
9c8421d8 14029
7fed55f3 140302011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
14031
14032 * configure.ac (plugin-version.h): Generate
14033 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
14034 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
14035 macros.
14036
14037 * configure: Regenerate.
14038
14039 * doc/plugins.texi (Building GCC plugins): Mention
14040 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
14041
396f2130 140422011-07-06 Bernd Schmidt <bernds@codesourcery.com>
14043
14044 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
14045 * combine.c (make_extraction, gen_lowpart_or_truncate,
14046 apply_distributive_law, simplify_comparison,
14047 reg_truncated_to_mode, record_truncated_value): Use it.
14048 * cse.c (notreg_cost): Likewise.
14049 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
14050 * expr.c (convert_move, convert_modes): Likewise.
14051 * optabs.c (expand_binop, expand_unop): Likewise.
14052 * postreload.c (move2add_last_label): Likewise.
14053 * regmove.c (optimize_reg_copy_3): Likewise.
14054 * rtlhooks.c (gen_lowpart_general): Likewise.
14055 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
14056
b60af16f 140572011-07-06 Joseph Myers <joseph@codesourcery.com>
14058
14059 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
14060
f92430e0 140612011-07-06 Bernd Schmidt <bernds@codesourcery.com>
14062
14063 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
14064 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
14065 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
14066 (simplify_const_unary_operation, simplify_binary_operation_1,
2fe4965c 14067 simplify_const_binary_operation, simplify_const_relational_operation):
14068 Use them. Use GET_MODE_MASK for masking and sign-extensions.
f92430e0 14069 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
14070 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
14071 simplify_shift_const_1, simplify_comparison): Likewise.
14072 * expr.c (convert_modes): Likewise.
14073 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
2fe4965c 14074 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
f92430e0 14075 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
14076
e4b69506 14077 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
14078
2be90eed 140792011-07-06 Richard Guenther <rguenther@suse.de>
14080
14081 PR tree-optimization/49645
14082 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
14083 register variables.
14084 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
14085 in type qualification here ...
14086 (copy_reference_ops_from_ref): ... not here.
14087 (vn_reference_lookup_3): ... or here.
14088 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
14089 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
14090
c2ac7afd 140912011-07-06 Ian Lance Taylor <iant@google.com>
14092
14093 * doc/install.texi (Configuration): It's
14094 --enable-gnu-indirect-function, not --enable-indirect-function.
14095
6f061208 140962011-07-06 Bernd Schmidt <bernds@codesourcery.com>
14097
14098 * simplify-rtx.c (simplify_const_binary_operation): Use the
2fe4965c 14099 shift_truncation_mask hook instead of performing modulo by width.
14100 Compare against mode precision, not bitsize.
6f061208 14101 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2fe4965c 14102 Use shift_truncation_mask instead of constructing the value manually.
6f061208 14103
321583cb 141042011-07-06 H.J. Lu <hongjiu.lu@intel.com>
14105
14106 PR middle-end/47383
14107 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
14108 address computation and convert to address_mode if needed.
14109
c38a75b7 141102011-07-06 Richard Guenther <rguenther@suse.de>
14111
14112 * tree.c (build_common_tree_nodes_2): Merge with
14113 build_common_tree_nodes.
14114 * tree.h (build_common_tree_nodes): Adjust prototype.
14115 (build_common_tree_nodes_2): Remove.
14116 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
14117 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
14118
7e49f1a1 141192011-07-05 Jakub Jelinek <jakub@redhat.com>
14120
14121 PR tree-optimization/49618
14122 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
14123 t recurse on the decl.
14124 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
14125 return true if expr isn't known to be defined in current
14126 TU or some other LTO partition.
14127
7e0c8808 141282011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
14129
14130 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
14131 override CASE_VALUES_THRESHOLD.
14132
14133 * stmt.c (toplevel): Include params.h.
14134 (case_values_threshold): Use the --param case-values-threshold
14135 value if non-zero, otherwise use machine dependent value.
14136 (expand_case): Use case_values_threshold.
14137
14138 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
14139
14140 * doc/invoke.texi (--param case-values-threshold): Document.
14141
7a73b217 141422011-07-05 Richard Henderson <rth@redhat.com>
14143
14144 * dwarf2out.c (dwarf2out_cfi_label): Make static.
14145 (dwarf2out_flush_queued_reg_saves): Make static.
14146 (dwarf2out_reg_save): Remove.
14147 (dwarf2out_return_save): Remove.
14148 (dwarf2out_return_reg): Remove.
14149 (dwarf2out_reg_save_reg): Remove.
14150 (dwarf2out_def_cfa): Merge into ...
14151 (dwarf2out_frame_init): ... here.
14152 * dwarf2out.h, tree.h: Remove declarations as necessary.
14153
19641ccb 141542011-07-05 Richard Henderson <rth@redhat.com>
14155
42198dc2 14156 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
14157 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
14158 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
14159 the alloc insn.
14160
8b2d95d2 14161 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
14162 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
14163 (process_epilogue): Don't call dwarf2out_def_cfa.
14164
4a5b1b88 14165 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
14166 indicate the return address save.
14167 (process_cfa_register): Likewise.
14168
dd5e3746 14169 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
14170 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
14171
19641ccb 14172 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
14173 for ar.pfs save at alloc insn.
14174
07216fdf 141752011-07-05 Richard Henderson <rth@redhat.com>
14176
14177 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
14178 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
14179 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
14180 stack pointer save.
14181 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
14182 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
14183 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
14184 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
14185
e1c4f0fb 141862011-07-05 Richard Henderson <rth@redhat.com>
14187
14188 * config/vax/vax.md (define_c_enum unspecv): New. Define the
14189 VUNSPEC_* constants here instead of via define_constants.
14190 (VUNSPEC_PEM): New constant.
14191 (procedure_entry_mask): New insn.
14192 (prologue): New expander.
14193 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
14194 (vax_expand_prologue): Rename from vax_output_function_prologue;
14195 emit rtl instead of text.
14196 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
14197 (print_operand): Add 'x' prefix.
14198
5e050fa1 141992011-07-05 H.J. Lu <hongjiu.lu@intel.com>
14200
14201 PR middle-end/47715
14202 * calls.c (precompute_register_parameters): Promote the function
14203 argument before checking non-legitimate constant.
14204
a6ccb398 142052011-07-05 Sebastian Pop <sebastian.pop@amd.com>
14206
14207 PR tree-optimization/47654
14208 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
14209 (lst_do_strip_mine_loop): Return an int.
14210 (lst_do_strip_mine): Same.
14211 (scop_do_strip_mine): Same.
14212 (scop_do_block): Loop blocking should strip-mine at least two loops.
14213 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
14214 (scop_do_interchange): Same.
14215 * graphite-poly.h (scop_do_interchange): Update declaration.
14216 (scop_do_strip_mine): Same.
14217
75663c96 142182011-07-05 Sebastian Pop <sebastian.pop@amd.com>
14219
14220 * graphite-clast-to-gimple.c (precision_for_value): Removed.
14221 (precision_for_interval): Removed.
14222 (gcc_type_for_interval): Use mpz_sizeinbase.
14223
679a3ec7 142242011-07-05 Sebastian Pop <sebastian.pop@amd.com>
14225
14226 * graphite-ppl.h (value_max): Correct computation of max.
14227
451d3b40 142282011-07-05 Sebastian Pop <sebastian.pop@amd.com>
14229
14230 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
14231
e593356b 142322011-07-05 Richard Guenther <rguenther@suse.de>
14233
14234 * c-decl.c (c_init_decl_processing): Defer building common
14235 tree nodes to c_common_nodes_and_builtins.
14236
2a556654 142372011-07-05 Razya Ladelsky <razya@il.ibm.com>
14238
14239 PR tree-optimization/49580
2fe4965c 14240 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
2a556654 14241 the loop's number of iterations.
2fe4965c 14242 * tree-parloops.c (transform_to_exit_first_loop): Add the
14243 handling of the loop's number of iterations before the call
2a556654 14244 to gimple_duplicate_sese_tail.
55c768a2 14245 Insert the stmt caclculating the new rhs of the loop's
2a556654 14246 condition stmt to the preheader instead of iters_bb.
14247
3014ed2c 142482011-07-05 H.J. Lu <hongjiu.lu@intel.com>
14249
14250 PR rtl-optimization/47449
14251 * fwprop.c (forward_propagate_subreg): Don't propagate hard
14252 register nor zero/sign extended hard register.
14253
b04940e7 142542011-07-05 Richard Guenther <rguenther@suse.de>
14255
14256 PR tree-optimization/49518
14257 PR tree-optimization/49628
14258 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
14259 irrelevant and invariant data-references.
14260 (vect_analyze_data_ref_access): For invariant loads clear the
14261 group association.
14262
824651eb 142632011-07-04 Jakub Jelinek <jakub@redhat.com>
14264
9a1ba33e 14265 PR rtl-optimization/49619
14266 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
14267 pass VOIDmode as op0_mode to recursive call, and return temp even
14268 when different from tor, just if it is not IOR of the original
14269 PLUS arguments.
14270
0ed407e4 14271 PR rtl-optimization/49472
14272 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
14273 negating MULT, negate the second operand instead of first.
14274 (simplify_binary_operation_1) <case MULT>: If one operand is
2fe4965c 14275 a NEG and the other is MULT, don't attempt to optimize by negation
14276 of the MULT operand if it only moves the NEG operation around.
0ed407e4 14277
824651eb 14278 PR debug/49602
14279 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
14280 get_current_def return value if it can't be trusted to be
14281 the current value of the variable in the current bb.
14282
c57e3563 142832011-07-04 Uros Bizjak <ubizjak@gmail.com>
14284
14285 PR target/49600
14286 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
14287 general register to memory for !TARGET_INTER_UNIT_MOVES.
14288
c47985a0 142892011-07-04 Georg-Johann Lay <avr@gjlay.de>
14290
14291 PR target/44643
14292 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
14293 instead of TREE_READONLY.
14294
12596ea7 142952011-07-04 Georg-Johann Lay <avr@gjlay.de>
14296
14297 * doc/extend.texi (AVR Built-in Functions): Update documentation
14298 of __builtin_avr_fmul*.
c57e3563 14299 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
12596ea7 14300 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
14301 * config/avr/avr.md (fmul): Rename to fmul_insn.
14302 (fmuls): Rename to fmuls_insn.
14303 (fmulsu): Rename to fmulsu_insn.
14304 (fmul,fmuls,fmulsu): New expander.
14305 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
14306 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
14307 * config/avr/libgcc.S (__fmul): New function.
14308 (__fmuls): New function.
14309 (__fmulsu,__fmulsu_exit): New function.
14310
bd9ba7ad 143112011-07-04 Richard Guenther <rguenther@suse.de>
14312
14313 PR tree-optimization/49615
14314 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
14315 basic-block index check.
14316
934ca5fd 143172011-07-04 Georg-Johann Lay <avr@gjlay.de>
14318
14319 * longlong.h (count_leading_zeros, count_trailing_zeros,
14320 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
14321 resp. 64.
14322
aada78b6 143232011-07-03 Ira Rosen <ira.rosen@linaro.org>
14324
14325 PR tree-optimization/49610
14326 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
14327 a basic block.
14328
5bf971ee 143292011-07-02 Eric Botcazou <ebotcazou@adacore.com>
14330 Olivier Hainque <hainque@adacore.com>
14331 Nicolas Setton <setton@adacore.com>
14332
14333 * tree.h (TYPE_ARTIFICIAL): New flag.
14334 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
14335 the DIE of the type if it is artificial.
14336 (gen_array_type_die): Likewise.
14337 (gen_enumeration_type_die): Likewise.
14338 (gen_struct_or_union_type_die): Likewise.
14339 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
14340 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
14341
9373e454 143422011-07-01 Jakub Jelinek <jakub@redhat.com>
14343
14344 * tree-object-size.c (pass_through_call): Handle
14345 BUILT_IN_ASSUME_ALIGNED.
14346
ff9029e2 143472011-07-01 Martin Jambor <mjambor@suse.cz>
14348
14349 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
14350
21dc8b2b 143512011-07-01 H.J. Lu <hongjiu.lu@intel.com>
14352
14353 PR middle-end/48016
14354 * explow.c (update_nonlocal_goto_save_area): Use proper mode
14355 for stack save area.
14356 * function.c (expand_function_start): Likewise.
14357
66b400f9 143582011-07-01 Richard Guenther <rguenther@suse.de>
14359
14360 PR middle-end/49596
14361 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
14362 may have unknown refs.
14363
105fc895 143642011-07-01 Kai Tietz <ktietz@redhat.com>
14365
14366 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
14367
7b160af0 143682011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14369
14370 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
14371 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
14372 (Specific, mips-sgi-irix6): Likewise.
14373
f796b57e 143742011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14375
14376 PR libmudflap/49549
14377 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
14378
fe1fdd37 143792011-07-01 Jakub Jelinek <jakub@redhat.com>
14380
14381 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
14382 [idx]= and [idx1 ... idx2]= before initializers if needed for
14383 array initializers.
14384
8988d424 143852011-07-01 Chen Liqin <liqin.gcc@gmail.com>
14386
14387 * config.gcc (score-*-elf): Remove score7.o.
14388 * config/score/t-score-elf: Likewise.
14389 * config/score/score.c: Merge score7 to score.c and
14390 remove forwarding functions.
14391 * config/score/score7.c: Deleted.
14392 * config/score/score7.h: Deleted.
14393
22be5c85 143942011-07-01 Richard Guenther <rguenther@suse.de>
14395
14396 PR tree-optimization/49603
c57e3563 14397 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
22be5c85 14398
c27041c0 143992011-06-30 Martin Jambor <mjambor@suse.cz>
14400
14401 * tree-sra.c (struct access): Rename total_scalarization to
14402 grp_total_scalarization
14403 (completely_scalarize_var): New function.
14404 (sort_and_splice_var_accesses): Set total_scalarization in the
14405 representative access.
14406 (analyze_access_subtree): Propagate total scalarization accross the
14407 tree, no holes in totally scalarized trees, simplify coverage
14408 computation.
14409 (analyze_all_variable_accesses): Call completely_scalarize_var instead
14410 of completely_scalarize_record.
14411
6d33b762 144122011-06-30 Richard Henderson <rth@redhat.com>
14413
14414 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
14415 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14416 * config/i386/i386.c: Don't include dwarf2out.h.
14417 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
14418 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
14419 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
14420 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
14421 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
14422
ae237de7 144232011-06-30 Richard Henderson <rth@redhat.com>
14424
14425 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
14426 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
14427 * final.c (final_scan_insn): Look for it, and invoke
14428 dwarf2out_frame_debug before the insn if found.
14429
61ff493e 144302011-06-30 Richard Henderson <rth@redhat.com>
14431
14432 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
14433 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
14434
1fb0df80 144352011-06-30 Richard Henderson <rth@redhat.com>
14436
14437 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
14438 Define a vector of this type.
14439 (regs_saved_in_regs): Use a VEC.
14440 (num_regs_saved_in_regs): Remove.
14441 (compare_reg_or_pc): New.
14442 (record_reg_saved_in_reg): Split out from...
14443 (dwarf2out_flush_queued_reg_saves): ... here.
14444 (clobbers_queued_reg_save): Update for VEC.
14445 (reg_saved_in): Likewise.
14446 (dwarf2out_frame_debug_init): Likewise.
14447 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
14448 (dwarf2out_frame_debug_cfa_register): Likewise.
14449
6140195d 144502011-06-30 Eric Botcazou <ebotcazou@adacore.com>
14451
14452 PR tree-optimization/49572
14453 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
14454 type of the RHS instead of that of the LHS for the expression type.
14455
61eae24d 144562011-06-30 Eric Botcazou <ebotcazou@adacore.com>
14457
14458 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
14459 unconditionally.
14460
841e98fa 144612011-06-30 Richard Guenther <rguenther@suse.de>
14462
14463 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
14464 * tree-ssa-structalias.c (create_variable_info_for): Do not
14465 add initial constraints for non-var-decls. Properly handle
14466 globals in other ltrans partitions.
14467 (intra_create_variable_infos): Manually create constraints for
14468 the fake no-alias parameter.
14469 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
14470 and assert there are no clones.
14471
b5ba3316 144722011-06-30 Richard Guenther <rguenther@suse.de>
14473
14474 PR tree-optimization/46787
14475 * tree-data-ref.c (dr_address_invariant_p): Remove.
14476 (find_data_references_in_stmt): Invariant accesses are ok now.
c57e3563 14477 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
b5ba3316 14478 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
14479 invariant loads.
14480
9a6e4cc1 144812011-06-30 Martin Jambor <mjambor@suse.cz>
14482
14483 PR tree-optimization/49094
14484 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
14485 (build_accesses_from_assign): Use it.
14486
6a231230 144872011-06-30 Jakub Jelinek <jakub@redhat.com>
14488
da923e9c 14489 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
14490 handling of BUILT_IN_ASSUME_ALIGNED.
14491
6a231230 14492 PR debug/49364
14493 * dwarf2out.c (output_abbrev_section): Don't return early
14494 if abbrev_die_table_in_use is 1.
14495 (dwarf2out_finish): Instead don't call output_abbrev_section
14496 nor emit abbrev_section_label in that case.
14497
06b7f22d 144982011-06-30 Nick Clifton <nickc@redhat.com>
14499
14500 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
14501 for the V850E.
14502
c53a3b4b 145032011-06-30 Jakub Jelinek <jakub@redhat.com>
14504
14505 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
14506 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
14507
8bf58742 145082011-06-30 Ira Rosen <ira.rosen@linaro.org>
14509
14510 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
14511 both pattern and original statements if necessary.
14512 (vect_transform_loop): Likewise.
14513 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
14514 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
14515 Mark the pattern statement only if the original statement doesn't
14516 have its own uses.
14517 (process_use): Call vect_mark_relevant with additional parameter.
14518 (vect_mark_stmts_to_be_vectorized): Likewise.
14519 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
14520 (vect_analyze_stmt): Handle both pattern and original statements
14521 if necessary.
14522 (vect_transform_stmt): Don't store vectorized pattern statement
14523 in the original statement.
14524 (vect_is_simple_use_1): Use related pattern statement only if the
14525 original statement is irrelevant.
14526 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
14527
61eae24d 145282011-06-29 Changpeng Fang <changpeng.fang@amd.com>
2aba8c96 14529
61eae24d 14530 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
14531 option.
14532 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
14533 entry.
2aba8c96 14534 (TARGET_AVX128_OPTIMAL): New definition.
14535 * config/i386/i386.c (initial_ix86_tune_features): Initialize
14536 X86_TUNE_AVX128_OPTIMAL entry.
14537 (ix86_option_override_internal): Enable the generation
14538 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
14539 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
14540 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
14541
32cdcc42 145422011-06-29 Eric Botcazou <ebotcazou@adacore.com>
14543
14544 PR tree-optimization/49539
14545 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
14546 names by means of stmt_references_abnormal_ssa_name.
14547 (associate_plusminus): Call can_propagate_from before propagating
14548 from definition statements.
14549 (ssa_forward_propagate_and_combine): Remove superfluous newline.
14550
487a9bc1 145512011-06-29 Richard Guenther <rguenther@suse.de>
14552
14553 * doc/invoke.texi: Document -scev dump modifier.
14554 * tree-pass.h (TDF_SCEV): New dump flag.
14555 * tree-dump.c (dump_option_value_in): Add scev.
14556 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
14557 * tree-scalar-evolution.c: Likewise.
14558
bed2e260 145592011-06-29 Nathan Sidwell <nathan@codesourcery.com>
14560
14561 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
14562 (cxa_type_match): Correct declaration.
c57e3563 14563 (__gnu_unwind_pr_common): Reconstruct additional indirection
14564 when __cxa_type_match returns succeeded_with_ptr_to_base.
bed2e260 14565
41356f5a 145662011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14567
14568 PR rtl-optimization/49114
14569 * reload.c (struct replacement): Remove SUBREG_LOC member.
14570 (push_reload): Do not set it.
14571 (push_replacement): Likewise.
14572 (subst_reload): Remove dead code.
14573 (copy_replacements): Remove assertion.
14574 (copy_replacements_1): Do not handle SUBREG_LOC.
14575 (move_replacements): Likewise.
14576 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
14577 Detect subregs via recursive descent instead of via SUBREG_LOC.
14578
abf2a68d 145792011-06-29 Georg-Johann Lay <avr@gjlay.de>
c57e3563 14580
abf2a68d 14581 * config/avr/avr.c (avr_encode_section_info): Dispatch to
14582 default_encode_section_info.
14583
0d8f7716 145842011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
14585
14586 PR tree-optimization/49545
14587 * builtins.c (get_object_alignment_1): Update function comment.
14588 Do not use DECL_ALIGN for functions, but test
14589 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
14590 * fold-const.c (get_pointer_modulus_and_residue): Don't check
14591 for functions here.
14592 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
14593
7b07f8e5 145942011-06-29 Jakub Jelinek <jakub@redhat.com>
14595
14596 PR debug/49567
c57e3563 14597 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
14598 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
7b07f8e5 14599
b44e24e6 146002011-06-29 Georg-Johann Lay <avr@gjlay.de>
c57e3563 14601
b44e24e6 14602 PR target/34734
c57e3563 14603 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
b44e24e6 14604 about uninitialized data attributed 'progmem' from here...
14605 (avr_encode_section_info): ...to this new function.
14606 (TARGET_ENCODE_SECTION_INFO): New define.
14607 (avr_section_type_flags): For data in ".progmem.data", remove
14608 section flag SECTION_WRITE.
14609
8e8584fd 146102011-06-29 Georg-Johann Lay <avr@gjlay.de>
c57e3563 14611
8e8584fd 14612 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
14613 _xmulhisi3_exit.
14614 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
14615 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
14616 (__umulhisi3): Ditto.
14617 * config/avr/avr.md (mulhisi3): New insn expender.
14618 (umulhisi3): New insn expender.
14619 (*mulhisi3_call): New insn.
14620 (*umulhisi3_call): New insn.
14621
41b4dba1 146222011-06-28 Joseph Myers <joseph@codesourcery.com>
14623
14624 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
14625
bff379da 146262011-06-28 Richard Henderson <rth@redhat.com>
14627
14628 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
14629 all code and arguments that handled pushes. Update all callers.
14630
7571d3f7 146312011-06-28 Richard Henderson <rth@redhat.com>
14632
14633 * config/arm/arm.c (arm_output_function_prologue): Don't call
14634 thumb1_output_function_prologue.
14635 (arm_expand_prologue): Avoid dead store.
14636 (number_of_first_bit_set): Use ctz_hwi.
14637 (thumb1_emit_multi_reg_push): New.
14638 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
14639 to emit the entire prologue as rtl.
14640 (thumb1_output_interwork): Split out from
14641 thumb1_output_function_prologue.
14642 (thumb1_output_function_prologue): Remove.
14643 (arm_attr_length_push_multi): Handle thumb1.
14644 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
14645 (prologue_thumb1_interwork): New.
14646 (*push_multi): Allow thumb1; use push_mult_memory_operand.
14647 * config/arm/predicates.md (push_mult_memory_operand): New.
14648
0e2a34c6 146492011-06-28 Eric Botcazou <ebotcazou@adacore.com>
14650
14651 * config/sparc/sync.md (*stbar): Delete.
14652 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
14653
f387b493 146542011-06-28 Eric Botcazou <ebotcazou@adacore.com>
14655
14656 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
14657
94bbf495 146582011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14659
14660 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
14661 (TARGET_64BIT_DEFAULT): Define.
14662 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
14663 of tm_file.
14664 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
14665
90336809 146662011-06-28 Joseph Myers <joseph@codesourcery.com>
14667
14668 * common.opt (in_lto_p): New Variable entry.
14669 * flags.h (in_lto_p): Move to common.opt.
14670 * gcc.c: Include params.h.
14671 (set_option_handlers): Also use common_handle_option and
14672 target_handle_option.
c57e3563 14673 (main): Call global_init_params, finish_params and init_options_struct.
90336809 14674 * opts.c (debug_type_names): Move from toplev.c.
14675 (print_filtered_help): Access quiet_flag through opts pointer.
c57e3563 14676 (common_handle_option): Return early in the driver for some options.
14677 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
14678 opts pointer.
90336809 14679 * toplev.c (in_lto_p): Move to common.opt.
14680 (debug_type_names): Move to opts.c.
14681 * Makefile.in (OBJS): Remove opts.o.
14682 (OBJS-libcommon-target): Add opts.o.
14683 (gcc.o): Update dependencies.
14684
25ce0d90 146852011-06-28 Kai Tietz <ktietz@redhat.com>
14686
c57e3563 14687 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
25ce0d90 14688
9513f46e 146892011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14690
14691 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
14692 with '=' constraint modifier.
14693 (*divdf3_vfp): Likewise.
14694 ("*mulsf3_vfp"): Likewise.
14695 ("*muldf3_vfp"): Likewise.
14696 ("*mulsf3negsf_vfp"): Likewise.
14697 ("*muldf3negdf_vfp"): Likewise.
14698
1710ebef 146992011-06-28 Nick Clifton <nickc@redhat.com>
14700
14701 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
14702 relaxation when performing an incremental link.
14703
0ec31268 147042011-06-28 Kai Tietz <ktietz@redhat.com>
14705
14706 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
14707 within BB from last to first.
14708
808674b1 147092011-06-28 Joseph Myers <joseph@codesourcery.com>
14710
14711 * genattr-common.c: New. Based on genattr.c.
14712 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
14713 (MOSTLYCLEANFILES): Add insn-attr-common.h.
14714 (opts.o): Update dependencies.
14715 (.PRECIOUS): Add insn-attr-common.h.
14716 (simple_rtl_generated_h): Add insn-attr-common.h.
14717 (build/genattr-common.o): New.
14718 (genprogrtl): Add attr-common.
14719 * genattr.c (main): Include insn-attr-common.h. Don't generate
14720 definitions of DELAY_SLOTS or INSN_SCHEDULING.
c57e3563 14721 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
808674b1 14722
21440ca3 147232011-06-28 Georg-Johann Lay <avr@gjlay.de>
14724
1710ebef 14725 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
21440ca3 14726 avr-*-* and avr-*-rtems* targets.
1710ebef 14727
21440ca3 14728 * config/avr/elf.h: New file.
14729 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
14730 (TARGET_ASM_SELECT_SECTION): Define.
14731 (INIT_SECTION_ASM_OP): Undefine.
14732 (FINI_SECTION_ASM_OP): Undefine.
14733 (READONLY_DATA_SECTION_ASM_OP): Undefine.
14734 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
14735 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
14736 * config/avr/avr.h:
14737 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
14738 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
14739 (MAX_OFILE_ALIGNMENT): Move to elf.h.
14740 (STRING_LIMIT): Move to elf.h.
14741 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
14742 (ASM_DECLARE_OBJECT_NAME): Remove.
14743 (ESCAPES): Remove.
14744 (ASM_OUTPUT_SKIP): Remove.
14745 (DWARF2_DEBUGGING_INFO): Remove.
14746 (OBJECT_FORMAT_ELF): Remove.
14747 (USER_LABEL_PREFIX): Remove.
14748 (ASM_OUTPUT_EXTERNAL): Remove.
14749 (ASM_OUTPUT_ASCII): Remove.
14750 (TYPE_ASM_OP): Remove.
14751 (SIZE_ASM_OP): Remove.
14752 (WEAK_ASM_OP): Remove.
14753 (STRING_ASM_OP): Remove.
14754 (SET_ASM_OP): Remove.
14755 (ASM_WEAKEN_LABEL): Remove.
14756 (TYPE_OPERAND_FMT): Remove.
14757 (ASM_DECLARE_FUNCTION_SIZE): Remove.
14758 (ASM_FINISH_DECLARE_OBJECT): Remove.
14759 (NO_DOLLAR_IN_LABEL): Remove.
14760 (ASM_GENERATE_INTERNAL_LABEL): Remove.
14761 (ASM_OUTPUT_CASE_LABEL): Remove.
14762 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
14763 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
14764 (gas_output_ascii): Remove.
14765 (gas_output_limited_string): Remove.
14766 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
14767 * config/avr/avr-protos.h
14768 (gas_output_ascii): Remove prototye.
14769 (gas_output_limited_string): Remove prototype.
14770
4f560079 147712011-06-27 Richard Earnshaw <rearnsha@arm.com>
14772
14773 PR target/48637
14774 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
14775 asm operands.
14776
f224bf89 147772011-06-27 Jan Hubicka <jh@suse.cz>
14778
f387b493 14779 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
14780 node instead of references in node.
f224bf89 14781
044f30d8 147822011-06-27 Richard Henderson <rth@redhat.com>
14783
14784 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
14785 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
14786 inside ifdef.
14787
ada07b0d 147882011-06-27 Jakub Jelinek <jakub@redhat.com>
14789
a68f7a8d 14790 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
14791
fca0886c 14792 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
14793 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
14794 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
14795 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
14796 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
14797 (evaluate_stmt, execute_fold_all_builtins): Handle
14798 BUILT_IN_ASSUME_ALIGNED.
14799 * tree-ssa-dce.c (propagate_necessity): Likewise.
14800 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
14801 call_may_clobber_ref_p_1): Likewise.
14802 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
14803 (expand_builtin_assume_aligned): New function.
14804 * doc/extend.texi (__builtin_assume_aligned): Document.
14805
ada07b0d 14806 PR debug/49544
14807 * cselib.c (promote_debug_loc): If cselib_preserve_constants
14808 and l has two DEBUG_INSN owned locs instead of just one, adjust
14809 the second location's setting_insn too.
14810
589807f4 148112011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14812
14813 PR libmudflap/38738
14814 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
14815
71438495 148162011-06-27 Nick Clifton <nickc@redhat.com>
14817
c57e3563 14818 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
14819 bit position of highest bit set into a count of the high zero bits.
71438495 14820
21c932b9 148212011-06-27 Eric Botcazou <ebotcazou@adacore.com>
14822
14823 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
14824
6dc056e4 148252011-06-27 Eric Botcazou <ebotcazou@adacore.com>
14826
14827 PR lto/48492
14828 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
14829 to a NULL parent.
14830
10392c0e 148312011-06-27 Richard Guenther <rguenther@suse.de>
14832
14833 PR tree-optimization/49394
14834 * passes.c (execute_one_pass): Restore current_pass after
14835 applying IPA transforms.
14836
0f09ed00 148372011-06-27 Kai Tietz <ktietz@redhat.com>
14838
14839 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
14840 out of type precision after operation.
c57e3563 14841 (find_bswap): Take for limit value the integer auto-promotion
14842 into account.
0f09ed00 14843
2bb76f12 148442011-06-27 Eric Botcazou <ebotcazou@adacore.com>
14845
14846 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
14847 forward scan as well.
14848
ded97e77 148492011-06-27 Tristan Gingold <gingold@adacore.com>
14850
14851 PR target/44241
14852 * config/vms/vms-protos.h: New file.
14853 * config/vms/vms-crtlmap.map: New file.
14854 * config/vms/vms.c: New file.
14855 * config/vms/make-crtlmap.awk: New file.
14856 * config/vms/vms-crtl.h: File removed.
14857 * config/vms/vms-crtl-64.h: File removed.
14858 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
14859 * config/alpha/vms64.h: Do not include vms-crtl-64.h
14860 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
14861 clear some builtins on VMS. Calls vms_patch_builtins.
14862 (avms_asm_output_external): Remove.
14863 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
14864 (struct crtl_name_spec): Remove
14865 (DO_CTRL_NAMES): Remove.
14866 * config/ia64/vms.h (struct crtl_name_spec): Remove
14867 (DO_CTRL_NAMES): Remove.
14868 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
14869 clear some builtins on VMS. Calls vms_patch_builtins.
14870 (ia64_asm_output_external): Remove DO_CRTL_NAME.
14871 * config/ia64/vms64.h: Do not include vms-crtl-64.h
c57e3563 14872 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
ded97e77 14873
38021748 148742011-06-27 Tristan Gingold <gingold@adacore.com>
14875
14876 * config/alpha/alpha.c (alpha_end_function): Always generate .end
14877 directive on VMS.
14878
ca8ad03f 148792011-06-27 Eric Botcazou <ebotcazou@adacore.com>
14880
14881 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
14882 the function receives nonlocal gotos.
14883
33c20fdf 148842011-06-27 Richard Guenther <rguenther@suse.de>
14885
14886 PR tree-optimization/49536
14887 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
14888 For non-scalar inner types use a scalar type according to
14889 the scalar inner mode.
14890
cd0925e2 148912011-06-27 Richard Guenther <rguenther@suse.de>
14892
14893 PR tree-optimization/49365
14894 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
14895
212999c0 148962011-06-27 Richard Guenther <rguenther@suse.de>
14897
14898 PR tree-optimization/49169
14899 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
14900 the alignment of function decls.
14901
137a63e0 149022011-06-26 Iain Sandoe <iains@gcc.gnu.org>
1991f4fd 14903
14904 PR target/47997
14905 * config/darwin.c (darwin_mergeable_string_section): Place string
14906 constants in '.cstring' rather than '.const' when CF/NSStrings are
14907 active.
14908
4eb8e8b5 149092011-06-26 Eric Botcazou <ebotcazou@adacore.com>
14910
14911 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
14912 (emit_save_register_window): Likewise.
14913 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
14914 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
14915 Swap back %o7/%i7 in register naming.
14916
b7d1dec3 149172011-06-25 Iain Sandoe <iains@gcc.gnu.org>
14918
14919 PR driver/49371
14920 * config/darwin.c (darwin_override_options): Improve warning when
14921 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
14922 is given with fpie/fPIE.
14923 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
14924 * config/darwin9.h (PIE_SPEC): New.
c495ccca 14925
4eb8e8b5 149262011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
c495ccca 14927
14928 * timevar.c (timevar_print): Increase width for display of timevar
14929 name.
14930
7c6c82b1 149312011-06-24 Jakub Jelinek <jakub@redhat.com>
14932
14933 PR c++/46400
14934 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
14935 instead of TYPE_CHAIN for chain_next for types.
14936
5b2251a5 149372011-06-24 Richard Henderson <rth@redhat.com>
14938
14939 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
14940 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
14941 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
14942 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
14943 (sparc_flat_expand_prologue): Emit individual instructions
14944 instead of one of the above.
14945
006e2d5a 149462011-06-24 Easwaran Raman <eraman@google.com>
14947
14948 PR rtl-optimization/49429
14949 PR target/49454
14950 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
14951 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
14952 used to copy y into x.
14953 * calls.c (initialize_argument_information): Mark
14954 an argument addressable if it is passed by invisible reference.
14955 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
14956 if it is passed by reference.
14957
dae6fb2f 149582011-06-24 H.J. Lu <hongjiu.lu@intel.com>
14959
14960 PR rtl-optimization/49504
14961 * rtlanal.c (nonzero_bits1): Properly handle addition or
18c26dbf 14962 subtraction of a pointer in Pmode if pointers extend unsigned.
14963 (num_sign_bit_copies1): Likewise.
dae6fb2f 14964
e5ae889e 149652011-06-24 Martin Jambor <mjambor@suse.cz>
14966
14967 PR tree-optimizations/49516
14968 * tree-sra.c (sra_modify_assign): Choose the safe path for
14969 aggregate copies if we also did scalar replacements.
14970
7392680c 149712011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14972
14973 PR target/49335
14974 * config/arm/predicates.md (add_operator): New.
c57e3563 14975 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
7392680c 14976
cc984dd6 149772011-06-24 Andi Kleen <ak@linux.intel.com>
14978
14979 * tree-sra.c (type_internals_preclude_sra_p): Add msg
14980 parameter. Split up ifs and report reason in *msg.
14981 (reject): Add.
14982 (find_var_candiate): Add msg variable.
14983 Split up ifs and report reason to reject.
14984 (find_param_candidates): Add msg variable.
14985 Pass msg to type_internals_preclude_sra_p.
14986
3de5b8d7 149872011-06-23 Jeff Law <law@redhat.com>
4aa81fa6 14988
731fe0f7 14989 PR middle-end/48770
14990 * reload.h (reload): Change to return a bool.
14991 * ira.c (ira): If requested by reload, run a fast DCE pass after
14992 reload has completed. Fix comment typo.
14993 * reload1.c (need_dce): New file scoped static.
14994 (reload): Set reload_completed here. Return whether or not a DCE
14995 pass after reload is needed.
14996 (delete_dead_insn): Set need_dce as needed.
14997
4aa81fa6 14998 PR middle-end/49465
14999 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
15000 to detect threading through joiner block. If there was already
15001 an edge to the new target, then do not change the PHI nodes.
15002
607ce623 150032011-06-23 Jakub Jelinek <jakub@redhat.com>
15004
15005 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
15006 get_pointer_alignment to see if base isn't sufficiently aligned.
15007
657e3a56 150082011-06-23 Jan Hubicka <jh@suse.cz>
15009
15010 PR tree-optimize/49373
15011 * tree-pass.h (all_late_ipa_passes): Declare.
15012 * cgraphunit.c (init_lowered_empty_function): Fix properties.
f387b493 15013 (cgraph_optimize): Execute late passes; remove unreachable funcions
15014 after materialization.
15015 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
15016 LTOing.
657e3a56 15017 * passes.c (all_late_ipa_passes): Declare.
15018 (dump_passes, register_pass): Handle late ipa passes.
f387b493 15019 (init_optimization_passes): Move ipa_pta to late passes; schedule
15020 fixup_cfg at beggining of all_passes.
657e3a56 15021 (apply_ipa_transforms): New function.
15022 (execute_one_pass): When doing simple ipa pass, apply all transforms.
15023
6a2fc14e 150242011-06-23 Joseph Myers <joseph@codesourcery.com>
15025
15026 * params.c: Include common/common-target.h. Don't include tm.h.
15027 (lang_independent_params): Move from toplev.c.
15028 (global_init_params): New.
15029 * params.h (global_init_params): Declare.
15030 * target.def (default_params): Move to common-target.def.
15031 * toplev.c (lang_independent_options): Remove.
15032 (lang_independent_params): Move to params.c.
15033 (general_init): Use global_init_params.
15034 * common/common-target.def (option_default_params): Move from
15035 target.def.
15036 * common/config/ia64/ia64-common.c: Include params.h.
15037 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
15038 from ia64.c.
15039 * common/config/rs6000/rs6000-common.c: Include params.h.
15040 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
15041 from rs6000.c.
15042 * common/config/sh/sh-common.c: Include params.h.
15043 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
15044 from sh.c.
15045 * common/config/spu/spu-common.c: Include params.h.
15046 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
15047 from spu.c.
15048 * config/ia64/ia64.c (ia64_option_default_params,
15049 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
15050 * config/rs6000/rs6000.c (rs6000_option_default_params,
15051 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
15052 * config/sh/sh.c (sh_option_default_params,
15053 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
15054 * config/spu/spu.c (spu_option_default_params,
15055 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
15056 * Makefile.in (OBJS): Remove params.o.
15057 (OBJS-libcommon-target): Add params.o.
15058 (params.o, $(common_out_object_file)): Update dependencies.
15059 * doc/tm.texi: Regenerate.
15060
27013bce 150612011-06-23 Alan Modra <amodra@gmail.com>
15062
15063 PR bootstrap/49383
15064 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
15065 invocation for 2011-06-09 changes.
15066
777e6799 150672011-06-22 Jakub Jelinek <jakub@redhat.com>
15068
31712e83 15069 PR libgomp/49490
15070 * omp-low.c (expand_omp_for_static_nochunk): Only
c57e3563 15071 use n ceil/ nthreads size for the first n % nthreads threads in the
15072 team instead of all threads except for the last few ones which
31712e83 15073 get less work or none at all.
15074
777e6799 15075 PR debug/49496
15076 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
15077 uses.
15078
8c4a7fb7 150792011-06-22 Richard Guenther <rguenther@suse.de>
15080
15081 PR tree-optimization/49493
15082 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
15083 Refer to the alias target of variables.
15084 (associate_varinfo_to_alias_1): Remove.
15085 (ipa_pta_execute): Do not associate aliases with anything.
15086 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
15087 (cgraph_function_node): Likewise.
15088 (cgraph_function_or_thunk_node): Likewise.
15089 (varpool_variable_node): Likewise.
15090
bb10d7b5 150912011-06-22 Nathan Sidwell <nathan@codesourcery.com>
15092
c57e3563 15093 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
bb10d7b5 15094 * config.gcc (arm*-*-linux*): Default to gnu tls.
15095 (arm*-*-*): Add --with-tls option.
15096 (all_defaults): Add 'tls'.
15097
e0a0aad2 150982011-06-22 Richard Henderson <rth@redhat.com>
15099
15100 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
15101 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
15102 (dwarf2out_frame_debug_cfa_window_save): Rename from
15103 dwarf2out_window_save; make static.
15104 * tree.h (dwarf2out_window_save): Don't declare.
15105
15106 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
15107 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
15108 (emit_save_register_window): Rename from gen_save_register_window;
15109 emit the insn and add REG_CFA_* notes.
15110 (sparc_expand_prologue): Update to match.
15111 * config/sparc/sparc.md (save_register_window_1): Simplify from
15112 save_register_window<P:mode>.
15113
cd452f14 151142011-06-22 H.J. Lu <hongjiu.lu@intel.com>
15115
15116 PR target/49497
15117 * config/i386/i386.md (*lea_general_2): Always allow SImode.
15118 (*lea_general_2_zext): Likewise.
15119 (imul to lea peepholes): Use const359_operand and check
15120 TARGET_PARTIAL_REG_STALL.
15121
15122 * config/i386/predicates.md (const359_operand): New.
15123
28b2c6a7 151242011-06-22 Michael Matz <matz@suse.de>
15125
15126 * cgraphunit.c (assemble_thunk): Use correct return type.
15127
73f20323 151282011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
c57e3563 15129 Dmitry Melnik <dm@ispras.ru>
73f20323 15130
15131 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
15132 (neon_output_shift_immediate): Ditto.
15133 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
15134 prototype.
15135 (neon_output_shift_immediate): Ditto.
15136 * config/arm/neon.md (vashl<mode>3): Modified constraint.
15137 (vashr<mode>3_imm): New insn pattern.
15138 (vlshr<mode>3_imm): Ditto.
15139 (vashr<mode>3): Modified constraint.
15140 (vlshr<mode>3): Ditto.
15141 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
15142 predicate.
15143 (imm_for_neon_rshift_operand): Ditto.
15144 (imm_lshift_or_reg_neon): Ditto.
15145 (imm_rshift_or_reg_neon): Ditto.
15146
15147 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
15148
841424cc 151492011-06-22 Jakub Jelinek <jakub@redhat.com>
15150
939514e9 15151 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
15152 builtin calls even if likelyvalue is not CONSTANT.
15153 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
15154 Return get_value_for_expr of first operand
15155 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
15156 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15157 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
15158 their non-checking counterparts.
15159 (call_may_clobber_ref_p_1): Likewise.
15160 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
15161 like their non-checking counterparts.
15162 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15163 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
15164 like their non-checking counterparts.
15165 (find_func_clobbers): Likewise.
15166 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
15167 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
15168
d771c9b2 15169 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
15170 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
15171 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
15172 of base type reference as argument.
15173 (resolve_addr_in_expr): Likewise. Fix keep computation.
15174 (convert_descriptor_to_signed): Renamed to...
c57e3563 15175 (convert_descriptor_to_mode): ... this. For wider types convert to
15176 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
d771c9b2 15177 (typed_binop): New function.
15178 (scompare_loc_descriptor, ucompare_loc_descriptor,
15179 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
15180 default to unsigned type instead of signed.
15181
841424cc 15182 PR debug/47858
15183 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
15184 (gimple_build_debug_source_bind_stat): New prototype.
15185 (gimple_build_debug_source_bind): Define.
15186 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
15187 gimple_debug_source_bind_get_value,
15188 gimple_debug_source_bind_get_value_ptr,
15189 gimple_debug_source_bind_set_var,
15190 gimple_debug_source_bind_set_value): New inlines.
15191 * gimple.c (gimple_build_debug_source_bind_stat): New function.
15192 * gimple-pretty-print.c (dump_gimple_debug): Handle
15193 GIMPLE_DEBUG_SOURCE_BIND.
15194 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
15195 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
15196 * tree-parloops.c (eliminate_local_variables,
15197 separate_decls_in_region): Likewise.
15198 (separate_decls_in_region_debug): Renamed from
15199 separate_decls_in_region_debug_bind. Handle
15200 gimple_debug_source_bind_p.
15201 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
15202 prototypes.
15203 (DECL_HAS_DEBUG_ARGS_P): Define.
15204 (struct tree_function_decl): Add has_debug_args_flag field.
15205 * tree.c (debug_args_for_decl): New variable.
15206 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
15207 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
15208 (rewrite_debug_stmt_uses): New function.
15209 (rewrite_stmt): Use it to rewrite debug stmt uses.
15210 * rtl.def (DEBUG_PARAMETER_REF): New.
15211 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
15212 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
15213 DEBUG_PARAMETER_REF.
15214 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
15215 * print-rtl.c (print_rtx): Likewise.
15216 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
15217 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
15218 debug stmts in the first bb.
15219 * tree-inline.c (remap_ssa_name): If remapping default def
15220 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
15221 a source bind debug stmt.
15222 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
15223 (maybe_move_debug_stmts_to_successors): Likewise.
15224 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
15225 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
15226 debug args vector from old_decl to new_decl.
15227 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
15228 or modified parameters, add debug bind stmts before call
c57e3563 15229 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
841424cc 15230 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
15231 on DECL_DEBUG_EXPRs from debug args vector.
15232 (expand_debug_source_expr): New function.
15233 (expand_debug_locations): Use it for source bind insns.
15234 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
15235 * var-tracking.c (prepare_call_arguments): Add debug args
15236 to call_arguments if any.
15237 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
c57e3563 15238 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
15239 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
841424cc 15240 (get_ref_die_offset, parameter_ref_descriptor): New functions.
15241 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
15242 (gen_subprogram_die): Handle parameters identified by
15243 DEBUG_PARAMETER_REF.
15244
f41e4452 152452011-06-22 Nathan Sidwell <nathan@codesourcery.com>
15246
15247 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
15248 * doc/install.texi (Configuration): Document --with-tls.
f41e4452 15249 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
15250 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
15251 (arm_tls_descseq_addr): New.
15252 (legitimize_tls_address): Add tlsdesc support.
15253 (arm_cannot_copy_insn_p): Check for tlscall.
15254 (arm_emit_tls_decoration): Likewise.
15255 * config/arm/arm.h (TARGET_GNU2_TLS): New.
15256 (OPTION_DEFAULT_SPECS): Add with-tls support.
15257 * config/arm/arm.md (R1_REGNUM): Define.
15258 (tlscall): New.
15259 * config/arm/arm.opt (tls_type): New enumeration type and values.
15260 (mtls-dialect): New switch.
15261 * config/arm/arm-opts.h (enum tls_type): New.
15262
c55c785f 152632011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
15264
15265 * attribs.c (register_attribute): Added assert to check that all
15266 attribute specs are registered with a name that is not empty and
15267 does not start with '_'.
15268 (decl_attributes): Avoid the lookup of the "naked" attribute spec
15269 if the function has no attributes.
15270 * tree.c (is_attribute_with_length_p): Removed.
15271 (is_attribute_p): Removed.
c57e3563 15272 (private_is_attribute_p): New.
c55c785f 15273 (private_lookup_attribute): New.
15274 (lookup_attribute): Removed.
15275 (lookup_ident_attribute): New.
15276 (remove_attribute): Require the first argument to be in the form
15277 'text', not '__text__'. Updated asserts.
15278 (merge_attributes): Use lookup_ident_attributes instead of
15279 lookup_attribute.
15280 (merge_dllimport_decl_attributes): Use remove_attribute.
15281 (attribute_list_contained): Likewise.
15282 (attribute_list_equal): Immediately return 1 if the arguments are
15283 identical pointers.
15284 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
15285 'int'. Require the first argument to be in the form 'text', not
15286 '__text__'. Require the second argument to be an identifier.
15287 (lookup_attribute): Made inline. Require the first argument to be
15288 in the form 'text', not '__text__'.
15289 (private_is_attribute_p, private_lookup_attribute): New.
15290 Updated comments.
c57e3563 15291
2797f13a 152922011-06-21 Andrew MacLeod <amacleod@redhat.com>
15293
15294 * builtins.c: Add sync_ or SYNC__ to builtin names.
15295 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
15296 * omp-low.c: Add sync_ or SYNC__ to builtin names.
15297
0f713cc8 152982011-06-21 Georg-Johann Lay <avr@gjlay.de>
dab5a239 15299
0f713cc8 15300 PR target/33049
15301 * config/avr/avr.md (extzv): New expander.
15302 (*extzv): New insn.
15303 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
15304 * config/avr/constraints.md (C04): New constraint.
15305 * doc/md.texi (Machine Constraints): Document it.
15306
6aaa1f9e 153072011-06-21 Jakub Jelinek <jakub@redhat.com>
15308
15309 PR middle-end/49489
15310 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
15311 unsignedp argument instead of 1 for clrsb_optab.
15312 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
15313 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
15314 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
15315 * optabs.c (widen_leading): Call widen_operand and expand_unop
15316 with 0 as unsignedp argument instead of 1 for clrsb_optab.
dab5a239 15317 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
6aaa1f9e 15318
d2d40339 153192011-06-21 Georg-Johann Lay <avr@gjlay.de>
15320
15321 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
15322
d8492bd3 153232011-06-21 Bernd Schmidt <bernds@codesourcery.com>
15324
fbcf166e 15325 * gensupport.c (add_define_attr): New static function.
15326 (is_predicable): Allow multi-alternative lists for the "predicable"
15327 attribute.
15328 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
15329 (process_one_cond_exec): Call alter_attrs_for_insn.
15330 * doc/md.texi (Defining Attributes): Mention some standard names.
15331 (Conditional Execution): Update documentation for "predicable".
15332
d8492bd3 15333 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
15334 __builtin_clrsbll): Document.
15335 * doc/rtl.texi (clrsb): New entry.
15336 * optabs.c (widen_leading): Renamed from widen_clz. New argument
15337 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
15338 (expand_unop): Handle clrsb_optab.
15339 (init_optabs): Initialize it.
15340 * optabs.h (enum optab_index): New entry OTI_clrsb.
15341 (clrsb_optab): Define.
15342 * genopinit.c (optabs): Add an entry for it.
15343 * builtins.c (expand_builtin): Handle clrsb builtin functions.
15344 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
15345 BUILT_IN_CLRSBLL): New.
15346 * rtl.def (CLRSB): New code.
15347 * dwarf2out.c (mem_loc_descriptor): Handle it.
15348 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
15349 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
15350 and popcount.
15351 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
15352 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
15353 (__ctzDI2): Move declaration.
15354 * config/bfin/bfin.md (clrsbsi2): New expander.
15355 (signbitssi2): Use the CLRSB rtx.
15356 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
15357 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
15358
4b0e0420 153592011-06-21 Richard Guenther <rguenther@suse.de>
15360
dab5a239 15361 * ipa-inline-transform.c (inline_transform): Fix previous change.
4b0e0420 15362
f0c50415 153632011-06-21 Ira Rosen <ira.rosen@linaro.org>
15364
15365 PR tree-optimization/49478
15366 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
15367 with constant operand.
15368
3b73a809 153692011-06-21 Richard Guenther <rguenther@suse.de>
15370
15371 * ipa-inline-transform.c (inline_transform): Fix typo.
dab5a239 15372
fecf066a 153732011-06-21 Richard Guenther <rguenther@suse.de>
15374
15375 PR tree-optimization/49483
15376 * tree-vect-stmts.c (vectorizable_assignment): Also handle
15377 VIEW_CONVERT_EXPR conversions.
15378
c1535dd2 153792011-06-21 Joseph Myers <joseph@codesourcery.com>
15380
15381 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
15382 * config/avr/avr-tables.opt: New file (generated).
15383 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
15384 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
15385 avr-mcus.def.
15386 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
15387 (avr_option_override): Don't process -mmcu= argument here. Set
15388 avr_current_device using avr_mcu_index.
dab5a239 15389 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
c1535dd2 15390 * config/avr/avr.opt (mmcu=): Use Enum.
15391 * config/avr/t-avr (avr-devices.o): Update dependencies.
15392 ($(srcdir)/config/avr/avr-tables.opt): New.
15393 * target.def (help): Remove.
15394 * doc/tm.texi.in (TARGET_HELP): Remove.
15395 * doc/tm.texi: Regenerate.
15396 * opts.c: Don't include target.h.
15397 (common_handle_option): Don't call targetm.help.
15398 * system.h (TARGET_HELP): Poison.
15399 * Makefile.in (opts.o): Update dependencies.
15400
c2e7ebeb 154012011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15402
15403 * config/usegld.h: New file.
15404 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
15405 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
dab5a239 15406 (LIB_SPEC): Likewise. Search /lib.
c2e7ebeb 15407 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
15408 (RDYNAMIC_SPEC): Handle GNU ld.
dab5a239 15409 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
15410 Define.
c2e7ebeb 15411 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
15412 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
15413 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
15414 (STACK_CHECK_STATIC_BUILTIN): Define.
15415 * config/sol2.opt (compat-bsd): Remove.
15416 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
15417 * config/sol2-bi.h: New file.
15418 * config/sol2-gld.h: Remove.
15419 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
15420 (NO_DBX_BNSYM_ENSYM): Remove.
15421 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
15422 (STACK_CHECK_STATIC_BUILTIN): Remove.
15423 Test USE_GLD instead of TARGET_GNU_LD.
15424 * config/i386/sol2-10.h: Rename to ...
15425 * config/i386/sol2-bi.h .. this.
15426 (SUBTARGET_EXTRA_SPECS): Redefine.
15427 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
15428 (MULTILIB_DEFAULTS): Remove.
15429 (DEFAULT_ARCH32_P): Define.
15430 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
15431 (ARCH64_SUBDIR): Define.
15432 Test USE_GLD instead of TARGET_GNU_LD.
15433 (I386_EMULATION): Rename to ...
15434 (ARCH32_EMULATION): ... this.
15435 (X86_64_EMULATION): Rename to ...
15436 (ARCH64_EMULATION): ... this.
15437 (TARGET_LD_EMULATION): Remove.
15438 (LINK_ARCH_SPEC): Remove.
15439 * config/i386/sol2-gas.h: Remove.
15440 * config/i386/t-sol2-10: Rename to ...
15441 * config/i386/t-sol2-64: ... this.
15442 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
15443 (AS_SPARC64_FLAG): Define.
15444 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
15445 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
15446 depending on TARGET_CPU_DEFAULT.
15447 (CPP_CPU_SPEC): Redefine.
15448 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
15449 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
15450 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
15451 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
15452 ASM_ARCH_DEFAULT_SPEC): Redefine.
15453 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
15454 LINK_ARCH_DEFAULT_SPEC.
15455 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
15456 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
15457 (ARCH64_SUBDIR): Define.
15458 (LINK_ARCH64_SPEC): Redefine.
15459 (CC1_SPEC): Redefine.
15460 (OPTION_DEFAULT_SPECS): Redefine.
15461 (MULTILIB_DEFAULTS): Define.
15462 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
15463 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
15464 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
15465 (NO_DBX_BNSYM_ENSYM): Remove.
15466 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
15467 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
15468 (TARGET_ASM_NAMED_SECTION): Likewise.
15469 (STACK_CHECK_STATIC_BUILTIN): Remove.
15470 * config/sparc/sol2-bi.h: Remove.
15471 * config/sparc/sol2-gas-bi.h: Remove.
15472 * config/sparc/sol2-gas.h: Remove.
15473 * config/sparc/sol2-gld-bi.h: Remove.
15474 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
15475 common parts ...
15476 (*-*-solaris2*): ... here.
15477
438719a9 154782011-06-21 Christian Bruel <christian.bruel@st.com>
dab5a239 15479
438719a9 15480 PR other/43564
dab5a239 15481 * ipa-inline.c (can_inline_edge_p): Check
15482 !DECL_DISREGARD_INLINE_LIMITS.
15483
da8b372e 154842011-06-21 Christian Bruel <christian.bruel@st.com>
dab5a239 15485
da8b372e 15486 PR middle-end/49139
15487 * cgraphunit.c (process_function_and_variable_attributes): warn when
15488 always_inline functions that are not inline.
dab5a239 15489 * ipa-inline-transform.c (inline_transform): Always call
15490 optimize_inline.
15491 * tree-inline.c (tree_inlinable_function_p): Use error instead
15492 of sorry.
da8b372e 15493 (expand_call_inline): Likewise.
dab5a239 15494
03cf39fc 154952011-06-21 Jakub Jelinek <jakub@redhat.com>
15496
15497 * Makefile.in (dg_target_exps): Set.
15498 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
15499 instead of 7, try to divide it more evenly.
15500
155012011-06-20 Changpeng Fang <changpeng.fang@amd.com>
5d3dcdb8 15502
32cdcc42 15503 PR target/49089
5d3dcdb8 15504 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
15505 (avx256_split_unaligned_store): New definition.
15506 (ix86_option_override_internal): Enable avx256 unaligned load/store
15507 splitting only when avx256_split_unaligned_load/store is set.
15508
38e1b753 155092011-06-20 Bernd Schmidt <bernds@codesourcery.com>
15510
15511 * regrename.c (scan_rtx_reg): Handle the case where we write to an
15512 open chain in a smaller mode without failing the entire block.
15513
0ced0ab8 155142011-06-21 Alan Modra <amodra@gmail.com>
15515
15516 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
15517 CONST high part large-toc address.
15518 (rs6000_tls_referenced_p): Make static.
15519 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
15520
6bc30f28 155212011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15522
15523 PR target/49385
15524 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
15525 one of the operands is a register.
15526
860651b1 155272011-06-20 Kai Tietz <ktietz@redhat.com>
15528
dab5a239 15529 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
15530 operations in combination with binary and.
860651b1 15531
3790d8bf 155322011-06-20 Bernd Schmidt <bernds@codesourcery.com>
15533
15534 * regrename.c (do_replace): Don't update notes.
15535
ef244509 155362011-06-20 Alan Modra <amodra@gmail.com>
15537
15538 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
15539 of toc-relative address in CONST.
15540 (rs6000_delegitimize_address): Recognize changed address.
15541 (rs6000_legitimize_reload_address): Likewise.
15542 (rs6000_emit_move): Don't force these constants to memory.
15543 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
15544 toc-relative address in CONST.
15545 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
15546 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
15547
ed7d4a79 155482011-06-18 H.J. Lu <hongjiu.lu@intel.com>
15549
dab5a239 15550 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
ed7d4a79 15551 (count_trailing_zeros): Likewise.
15552
36267cc4 155532011-06-18 H.J. Lu <hongjiu.lu@intel.com>
15554
15555 PR other/49325
15556 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
15557 .init_array can be used with .ctors on targets.
15558 * configure: Regenerated.
15559
c6bab882 155602011-06-18 Eric Botcazou <ebotcazou@adacore.com>
15561
15562 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
15563 if the element type is volatile.
15564
e0eaac80 155652011-06-18 Jan Hubicka <jh@suse.cz>
15566
15567 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
15568 extra name aliases.
15569 (lto_symtab_resolve_can_prevail_p): Likewise.
15570 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
15571 * cgraphbuild.c (record_reference): Remove extra body alias code.
15572 (mark_load): Likewise.
15573 (mark_store): Likewise.
15574 * cgraph.h (varpool_node): Remove extra_name filed;
15575 add alias_of and extraname_alias.
15576 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
15577 (varpool_alias_aliased_node): New inline function.
15578 (varpool_variable_node): New function.
15579 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
15580 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
15581 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
15582 (input_varpool_node): Likewise.
15583 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
15584 (varpool_externally_visible_p): Remove extra body alias code.
15585 (function_and_variable_visibility): Likewise.
15586 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
15587 (ipa_pta_execute): Use it.
15588 * varpool.c (varpool_remove_node): Remove extra name alias code.
15589 (varpool_mark_needed_node): Likewise.
15590 (varpool_analyze_pending_decls): Analyze aliases.
15591 (assemble_aliases): New functoin.
15592 (varpool_assemble_decl): Use it.
15593 (varpool_create_variable_alias): New function.
15594 (varpool_extra_name_alias): Rewrite.
15595 (varpool_for_node_and_aliases): New function.
15596
e16e10c8 155972011-06-18 Jakub Jelinek <jakub@redhat.com>
15598
15599 PR target/49411
15600 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
15601 last_arg_constant and last argument doesn't match its predicate,
15602 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
15603 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
15604 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
15605 spelling of error message.
15606 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
15607 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
15608 const_0_to_255_operand instead of const_int_operand.
15609
15610 Revert:
15611 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
15612
15613 * config/i386/sse.md (blendbits): Remove mode attribute.
15614 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
15615 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
15616 Check integer value of operand 3 in insn constraint.
15617
fd7a154d 156182011-06-17 Hans-Peter Nilsson <hp@axis.com>
15619
15620 PR rtl-optimization/48542
15621 * reload.c (find_equiv_reg): Stop looking when finding a
15622 setjmp-type call.
15623 * reload1.c (reload_as_needed): Invalidate all reload
15624 registers when crossing a setjmp-type call.
15625
da81e0c5 156262011-06-16 Jeff Law <law@redhat.com>
15627
15628 * tree-ssa-threadupdate.c (struct redirection_data): New field
15629 intermediate_edge.
15630 (THREAD_TARGET2): Define.
dab5a239 15631 (redirection_data_eq): Also check that the intermediate edge is equal.
da81e0c5 15632 (lookup_redirection_data): Drop useless argument. Extract the
15633 outgoing_edge and intermediate edge from E. Callers updated.
15634 (copy_phi_args, update_destination_phis): New functions.
15635 (fix_duplicate_block_edges): Likewise.
15636 (create_edge_and_update_destination_phis): Duplicate all the edges
15637 hung off e->aux. Use copy_phi_args.
15638 (create_duplicates): Use fix_duplicate_block_edges.
15639 (fixup_template_block): Likewise.
15640 (redirect_edges): If necessary, redirect the joiner block's incoming
15641 edge to the duplicate of the joiner block.
15642 (thread_block): Don't muck up loops when threading through a joiner
15643 block.
dab5a239 15644 (thread_through_loop_header): Handle threading through a joiner block.
da81e0c5 15645 (mark_threaded_blocks, register_jump_thread): Likewise.
15646 * tree-flow.h (register_jump_thread): Add new argument. Callers
15647 updated.
15648 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
15649 (thread_across_edge): Handle threading through a joiner block.
dab5a239 15650
31f1c0f0 156512011-06-16 Martin Jambor <mjambor@suse.cz>
15652
15653 PR tree-optimization/49343
15654 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
15655 calculate offset, provide 2nd operand for the new COMPONENT_REF.
15656
707e574b 156572011-06-16 Iain Sandoe <iains@gcc.gnu.org>
15658
15659 * config/darwin-protos.h (machopic_select_rtx_section): Move to
15660 inside RTX_CODE ifdef.
15661
8767ae9c 156622011-06-16 Tom de Vries <tom@codesourcery.com>
15663
15664 PR target/45098
dab5a239 15665 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
15666 Disallow NULL pointer for pointer arithmetic.
8767ae9c 15667
43d05bf0 156682011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15669
15670 PR target/49398
15671 Revert.
15672 2011-06-10 Wei Guozhi <carrot@google.com>
15673
15674 PR target/45335
15675 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
15676 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
15677 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
15678 related peephole2.
15679 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
15680 related peephole2.
15681 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
15682 (arm_legitimate_ldrd_p): New prototype.
15683 (arm_output_ldrd): New prototype.
15684 * config/arm/arm.c (arm_check_ldrd_operands): New function.
15685 (arm_legitimate_ldrd_p): New function.
15686 (arm_output_ldrd): New function.
15687
c6bab882 156882011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
39cba157 15689
15690 PR middle-end/46500
15691 * doc/tm.texi.in: Update Copyright date.
15692 * doc/tm.texi: Regenerate.
15693 * targhooks.c (default_setup_incoming_varargs): Replace
15694 CUMULATIVE_ARGS* argument type with cumulative_args_t.
15695 (default_pretend_outgoing_varargs_named): Likewise.
15696 (hook_pass_by_reference_must_pass_in_stack): Likewise.
15697 (hook_callee_copies_named): Likewise.
15698 (default_function_arg_advance): Likewise.
15699 (default_function_arg): Likewise.
15700 (default_function_incoming_arg): Likewise.
15701 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
15702 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
15703 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
15704 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
15705 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
15706 * targhooks.h (default_setup_incoming_varargs): Likewise.
15707 (default_pretend_outgoing_varargs_named): Likewise.
15708 (hook_pass_by_reference_must_pass_in_stack): Likewise.
15709 (hook_callee_copies_named): Likewise.
15710 (default_function_arg_advance): Likewise.
15711 (default_function_arg): Likewise.
15712 (default_function_incoming_arg): Likewise.
15713 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
15714 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
15715 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
15716 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
15717 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
15718 * target.def (pass_by_reference): Likewise.
15719 (setup_incoming_varargs, strict_argument_naming): Likewise.
15720 (pretend_outgoing_varargs_named, callee_copies): Likewise.
15721 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
15722 (function_incoming_arg): Likewise.
15723 * target.h: Don't include "tm.h" .
15724 (cumulative_args_t): New typedef.
15725 [GCC_TM_H] (get_cumulative_args): New static inline function.
15726 [GCC_TM_H] (pack_cumulative_args): Likewise.
15727 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
15728 argument type with cumulative_args_t.
15729 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
15730 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
15731 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
15732 (frv_arg_partial_bytes, frv_function_arg): Likewise.
15733 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
15734 (frv_function_arg_1): Likewise.
15735 * config/s390/s390.c (s390_pass_by_reference): Likewise.
15736 (s390_function_arg_advance, s390_function_arg): Likewise.
15737 * config/m32c/m32c.c (m32c_function_arg): Likewise.
15738 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
15739 (m32c_strict_argument_naming): Likewise.
15740 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
15741 (spu_function_arg_advance): Likewise.
15742 (spu_setup_incoming_varargs): Likewise. Make static.
15743 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
15744 Remove prototype.
15745 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
15746 CUMULATIVE_ARGS* argument type with cumulative_args_t.
15747 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
15748 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
15749 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
15750 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
15751 (mep_pass_by_reference, mep_function_arg): Likewise.
15752 (mep_function_arg_advance): Likewise.
15753 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
15754 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
15755 (m32r_function_arg, m32r_function_arg_advance): Likewise.
15756 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
15757 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
15758 (ix86_function_arg, ix86_pass_by_reference): Likewise.
15759 (ix86_setup_incoming_varargs): Likewise.
15760 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
15761 (sh_strict_argument_naming): Likewise.
15762 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
15763 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
15764 (sh_function_arg_advance, sh_function_arg): Likewise.
15765 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
15766 (pdp11_function_arg_advance): Likewise.
15767 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
15768 Likewise.
15769 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
15770 * config/avr/avr.c (avr_function_arg): Likewise.
15771 (avr_function_arg_advance): Likewise.
15772 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
15773 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
15774 (xtensa_function_arg_1): Likewise.
dab5a239 15775 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
15776 Likewise.
39cba157 15777 (xstormy16_function_arg): Likewise.
15778 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
15779 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
15780 (fr30_function_arg_advance): Likewise.
15781 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
15782 (lm32_function_arg, lm32_function_arg_advance): Likewise.
15783 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
15784 (moxie_function_arg, moxie_function_arg_advance): Likewise.
15785 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
15786 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
15787 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
15788 (cris_function_arg, cris_function_incoming_arg): Likewise.
15789 (cris_function_arg_advance, cris_function_arg_1): Likewise.
15790 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
15791 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
15792 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
15793 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
15794 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
15795 (mn10300_arg_partial_bytes): Likewise.
15796 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
15797 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
15798 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
15799 (ia64_function_arg_1): Likewise.
15800 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
15801 (m68k_function_arg): Likewise.
15802 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
15803 (rs6000_function_arg, setup_incoming_varargs): Likewise.
15804 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
15805 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
15806 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
15807 (picochip_arg_advance): Likewise.
15808 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
15809 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
15810 (mcore_function_arg_advance): Likewise.
15811 * config/score/score.c (score_pass_by_reference): Likewise.
15812 (score_function_arg_advance): Likewise.
15813 (score_arg_partial_bytes): Likewise. Make static.
15814 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
15815 * config/arm/arm.c (arm_arg_partial_bytes): Replace
15816 CUMULATIVE_ARGS* argument type with cumulative_args_t.
15817 (arm_function_arg, arm_function_arg_advance): Likewise.
15818 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
15819 * config/pa/pa.c (pa_pass_by_reference): Likewise.
15820 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
15821 (pa_function_arg): Likewise.
15822 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
15823 (mips_function_arg, mips_function_arg_advance): Likewise.
15824 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
15825 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
15826 * config/vax/vax.c (vax_function_arg): Likewise.
15827 (vax_function_arg_advance): Likewise.
15828 * config/h8300/h8300.c (h8300_function_arg): Likewise.
15829 (h8300_function_arg_advance): Likewise.
15830 * config/v850/v850.c (v850_pass_by_reference): Likewise.
15831 (v850_strict_argument_naming, v850_function_arg): Likewise.
15832 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
15833 (v850_setup_incoming_varargs): Likewise.
15834 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
15835 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
15836 (mmix_function_arg, mmix_pass_by_reference): Likewise.
15837 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
15838 with const void *.
15839 * config/bfin/bfin.c (setup_incoming_varargs): Replace
15840 CUMULATIVE_ARGS* argument type with cumulative_args_t.
15841 (bfin_function_arg_advance, bfin_function_arg): Likewise.
15842 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
15843 * calls.c (emit_call_1): Change type of args_so_far to
15844 cumulative_args_t. Changed all callers.
15845 (initialize_argument_information): Likewise.
15846 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
15847 * dse.c (get_call_args): Likewise.
15848 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
15849 * function.c (pass_by_reference, reference_callee_copied): Likewise.
15850 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
15851 New member args_so_far_v. Changed all users.
15852 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
15853 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15854 * config/mips/mips.c (mips_output_args_xfer): Likewise.
15855 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15856 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
dab5a239 15857 * config/microblaze/microblaze.c (microblaze_expand_prologue):
15858 Likewise.
39cba157 15859 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
15860 m32r_pass_by_reference.
15861
0187b74e 158622011-06-16 Ira Rosen <ira.rosen@linaro.org>
15863
15864 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
15865 argument to be a VEC of statements.
dab5a239 15866 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
15867 assert that pattern statements have to have their vector type set.
0187b74e 15868 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
15869 Change the first argument to be a VEC of statements. Update
15870 documentation.
15871 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
15872 (vect_handle_widen_mult_by_const): New function.
dab5a239 15873 (vect_recog_widen_mult_pattern): Change the first argument to be a
15874 VEC of statements. Update documentation. Check that the constant is
15875 INTEGER_CST. Support multiplication by a constant that fits an
15876 intermediate type - call vect_handle_widen_mult_by_const.
0187b74e 15877 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
15878 call. Handle additional pattern statements if necessary.
15879
c5b0bf72 158802011-06-16 Nick Clifton <nickc@redhat.com>
15881
15882 PR target/49427
15883 * config.gcc: Set cpu_type to v850 for any V850 architecture.
15884 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
15885 md_file, extra_modes, out_file and extra_options are these are all
15886 deduced from cpu_type.
15887
10b585ac 158882011-06-16 Georg-Johann Lay <avr@gjlay.de>
15889
15890 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
15891 truncation mask to 63.
15892
fa72efb7 158932011-06-16 Georg-Johann Lay <avr@gjlay.de>
15894
15895 PR target/49313
15896 PR target/29524
15897 * longlong.h: Add AVR support:
15898 (count_leading_zeros): New macro.
15899 (count_trailing_zeros): New macro.
15900 (COUNT_LEADING_ZEROS_0): New macro.
dab5a239 15901 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
15902 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
15903 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
15904 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
fa72efb7 15905 (LIB2FUNCS_EXCLUDE): Add _clz.
15906 * config/avr/libgcc.S (XCALL): Move up in file.
15907 (XJMP): New C Macro.
15908 (DEFUN): New asm macro.
15909 (ENDF): New asm macro.
15910 (__ffssi2): New function.
15911 (__ffshi2): New function.
15912 (__loop_ffsqi2): New function.
15913 (__ctzsi2): New function.
15914 (__ctzhi2): New function.
15915 (__clzdi2): New function.
15916 (__clzsi2): New function.
15917 (__clzhi2): New function.
15918 (__paritydi2): New function.
15919 (__paritysi2): New function.
15920 (__parityhi2): New function.
ae3813d4 15921 (__parityqi2): New function.
fa72efb7 15922 (__popcounthi2): New function.
15923 (__popcountsi2): New function.
15924 (__popcountdi2): New function.
15925 (__popcountqi2): New function.
15926 (__bswapsi2): New function.
15927 (__bswapdi2): New function.
15928 (__ashldi3): New function.
15929 (__ashrdi3): New function.
15930 (__lshrdi3): New function.
15931 Fix suspicous lines.
15932
71b5c25e 159332011-06-16 Richard Guenther <rguenther@suse.de>
15934
15935 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
15936 the same as x != 0.
dab5a239 15937 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
15938 to (bool) X & 1.
71b5c25e 15939 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
15940 equality compares against zero for the lower bit.
15941
593f9380 159422011-06-16 Jakub Jelinek <jakub@redhat.com>
15943
15944 PR tree-optimization/49419
15945 * tree-vrp.c (execute_vrp): Call init_range_assertions
15946 before estimate_numbers_of_iterations, call
15947 free_number_of_iterations_estimates before calling
15948 remove_range_assertions.
15949
4815ed0c 159502011-06-16 Revital Eres <revital.eres@linaro.org>
15951
15952 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
15953 (struct partial_schedule): Add rows_length field.
15954 (verify_partial_schedule): Check rows_length.
15955 (ps_insert_empty_row): Handle rows_length.
15956 (create_partial_schedule): Likewise.
15957 (free_partial_schedule): Likewise.
15958 (reset_partial_schedule): Likewise.
15959 (create_ps_insn): Remove rest_count argument.
15960 (remove_node_from_ps): Update rows_length.
15961 (add_node_to_ps): Update rows_length and call create_ps_insn
15962 without passing row_rest_count.
15963 (rotate_partial_schedule): Update rows_length.
15964
ce13e133 159652011-06-16 Revital Eres <revital.eres@linaro.org>
15966
15967 * ddg.c (add_intra_loop_mem_dep): New function.
15968 (build_intra_loop_deps): Call it.
15969
da81e0c5 159702011-06-13 Jeff Law <law@redhat.com>
89bc53e2 15971
15972 * df-problems.c (df_lr_local_compute): Manually CSE
15973 PIC_OFFSET_TABLE_REGNUM.
15974 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
15975 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
15976
3a849bc1 159772011-06-13 Jan Hubicka <jh@suse.cz>
15978
15979 * cgraphunit.c (handle_alias_pairs): New function.
15980 (cgraph_finalize_compilation_unit): Use it.
15981 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
15982 as externally visible.
15983
c3c9a9f3 159842011-06-15 Richard Guenther <rguenther@suse.de>
15985
15986 * expr.c (expand_expr_real_2): Reduce all integral types to
15987 bitfield precision.
15988 (expand_expr_real_1): Likewise.
15989
0a0b4924 159902011-06-15 Martin Jambor <mjambor@suse.cz>
15991
15992 PR tree-optimization/48613
15993 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
15994 ipa_node_params_vector is NULL.
c5b0bf72 15995
aaec0525 159962011-06-15 Jakub Jelinek <jakub@redhat.com>
15997
15998 PR debug/49382
15999 * dwarf2out.c (dw_loc_list_node): Add force field.
dab5a239 16000 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
16001 location in the list, even if it is modified before first real insn.
aaec0525 16002 (output_loc_list): Emit empty ranges with force flag set.
dab5a239 16003 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
aaec0525 16004
f550c9b3 160052011-06-15 Alexander Monakov <amonakov@ispras.ru>
16006
16007 PR target/49349
16008 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
16009 (fence_to_rewind). Use it to notice when bookkeeping will be placed
16010 above a fence. Update comments.
16011 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
16012 placed just above it. Do not allow NULL place_to_insert.
16013
cfdcf183 160142011-06-15 Ira Rosen <ira.rosen@linaro.org>
16015
16016 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
16017 (slpeel_tree_peel_loop_to_edge): Don't call
16018 remove_dead_stmts_from_loop.
16019 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
16020 remove irrelevant pattern statements. For irrelevant statements
16021 check if it is the last statement of a detected pattern, use
16022 corresponding pattern statement instead.
16023 (destroy_loop_vec_info): No need to remove pattern statements,
16024 only free stmt_vec_info.
16025 (vect_transform_loop): For irrelevant statements check if it is
16026 the last statement of a detected pattern, use corresponding
16027 pattern statement instead.
16028 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
16029 pattern statements. Set basic block for the new statement.
16030 (vect_pattern_recog): Update documentation.
16031 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
16032 operands of pattern statements.
16033 (vectorizable_call): Fix printing. In case of a pattern statement
16034 use the lhs of the original statement when creating a dummy
16035 statement to replace the original call.
16036 (vect_analyze_stmt): For irrelevant statements check if it is
16037 the last statement of a detected pattern, use corresponding
16038 pattern statement instead.
16039 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
16040 statements use gsi of the original statement.
16041
218e3e4e 160422011-06-14 Joseph Myers <joseph@codesourcery.com>
16043
16044 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
16045 common/common-target-def.h.
16046 * target.def (default_target_flags, handle_option,
16047 supports_split_stack, optimization_table, init_struct,
16048 except_unwind_info, unwind_tables_default, have_named_sections):
16049 Move to common/common-target.def.
16050 * target.h (enum opt_levels, struct default_options): Move to
16051 common/common-target.h.
16052 * targhooks.c (default_except_unwind_info,
16053 dwarf2_except_unwind_info, sjlj_except_unwind_info,
16054 default_target_handle_option, empty_optimization_table): Move to
16055 common/common-targhooks.c.
16056 * targhooks.h (default_except_unwind_info,
16057 dwarf2_except_unwind_info, sjlj_except_unwind_info,
16058 default_target_handle_option, empty_optimization_table): Move to
16059 common/common-targhooks.h.
16060 * common/common-target-def.h: Include common/common-targhooks.h.
16061 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
16062 defined.
16063 * common/common-target.def (handle_option, option_init_struct,
16064 option_optimization_table, default_target_flags,
16065 except_unwind_info, supports_split_stack, unwind_tables_default,
16066 have_named_sections): Move from target.def.
16067 (HOOK_PREFIX): Undefine at end of file.
16068 * common/common-target.h: Include input.h.
16069 (enum opt_levels, struct default_options): Move from target.h.
16070 * common/common-targhooks.c, common/common-targhooks.h: New.
16071 * config.gcc (target_has_targetm_common): Default to yes.
16072 (moxie*): Set target_has_targetm_common=no.
16073 (hppa*-*-*): Don't set target_has_targetm_common=yes.
16074 * doc/tm.texi: Regenerate.
16075 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
16076 (C_TARGET_DEF_H): Add common/common-targhooks.h.
16077 (GCC_OBJS): Remove vec.o.
16078 (OBJS): Remove hooks.o and vec.o.
16079 (OBJS-libcommon-target): Add vec.o, hooks.o and
16080 common/common-targhooks.o.
16081 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
16082 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
16083 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
16084 cfglayout.o, $(out_object_file), $(common_out_object_file)):
16085 Update dependencies.
16086 (common/common-targhooks.o): New.
dab5a239 16087 * common/config/default-common.c: Include tm.h. Add FIXME comment.
218e3e4e 16088 * common/config/pa/pa-common.c: Include more headers. Take
16089 copyright dates from pa.c.
16090 (pa_option_optimization_table, pa_handle_option,
16091 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
16092 TARGET_HANDLE_OPTION): Move from pa.c.
16093 * common/config/alpha/alpha-common.c,
16094 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
16095 common/config/bfin/bfin-common.c,
16096 common/config/cris/cris-common.c,
16097 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
16098 common/config/h8300/h8300-common.c,
16099 common/config/i386/i386-common.c,
16100 common/config/ia64/ia64-common.c,
16101 common/config/iq2000/iq2000-common.c,
16102 common/config/lm32/lm32-common.c,
16103 common/config/m32c/m32c-common.c,
16104 common/config/m32r/m32r-common.c,
16105 common/config/m68k/m68k-common.c,
16106 common/config/mcore/mcore-common.c,
16107 common/config/mep/mep-common.c,
16108 common/config/microblaze/microblaze-common.c,
16109 common/config/mips/mips-common.c,
16110 common/config/mmix/mmix-common.c,
16111 common/config/mn10300/mn10300-common.c,
16112 common/config/pdp11/pdp11-common.c,
16113 common/config/picochip/picochip-common.c,
16114 common/config/rs6000/rs6000-common.c,
16115 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
16116 common/config/score/score-common.c, common/config/sh/sh-common.c,
16117 common/config/sparc/sparc-common.c,
16118 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
16119 common/config/vax/vax-common.c,
16120 common/config/xstormy16/xstormy16-common.c,
16121 common/config/xtensa/xtensa-common.c: New.
16122 * config/alpha/alpha.c: Include common/common-target.h.
16123 (alpha_option_optimization_table, alpha_handle_option,
16124 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16125 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
16126 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
16127 * config/arm/arm.c (arm_option_optimization_table,
16128 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
16129 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
16130 arm-common.c.
16131 * config/avr/avr.c (avr_option_optimization_table,
16132 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
16133 to avr-common.c.
16134 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
16135 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
16136 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
16137 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
16138 * config/cris/cris.c (cris_option_optimization_table,
16139 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16140 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
16141 cris-common.c.
16142 * config/fr30/fr30.c (fr30_option_optimization_table,
16143 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
16144 to fr30-common.c.
16145 * config/frv/frv.c (frv_option_optimization_table,
16146 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
16147 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
16148 * config/h8300/h8300.c (h8300_option_optimization_table,
16149 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
16150 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
16151 * config/i386/i386-protos.h (ix86_handle_option): Declare.
16152 * config/i386/i386.c: Include common/common-target.h.
16153 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
16154 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
16155 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
16156 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
16157 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
16158 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
16159 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
16160 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
16161 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
16162 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
16163 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
16164 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
16165 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
16166 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
16167 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
16168 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
16169 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
16170 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
16171 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
16172 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
16173 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
16174 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
16175 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
16176 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
16177 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
16178 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
16179 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
16180 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
16181 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
16182 ix86_option_optimization_table, ix86_option_init_struct,
16183 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
16184 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
16185 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
16186 i386-common.c.
16187 * config/i386/t-i386 (i386.o): Update dependencies.
16188 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
16189 * config/ia64/ia64.c (ia64_option_optimization_table,
16190 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
16191 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16192 ia64_handle_option): Move to ia64-common.c.
16193 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
16194 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
16195 * config/lm32/lm32.c (lm32_option_optimization_table,
16196 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
16197 to lm32-common.c.
16198 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
16199 m32c-common.c.
16200 * config/m32r/m32r.c (m32r_option_optimization_table,
16201 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16202 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
16203 m32r_handle_option): Move to m32r-common.c.
16204 (m32r_memory_move_cost): Remove comment referring to
16205 TARGET_HANDLE_OPTION.
16206 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
16207 Move to m68k-common.c.
16208 * config/mcore/mcore.c (mcore_option_optimization_table,
16209 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
16210 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
16211 * config/mep/mep.c (mep_option_optimization_table,
16212 mep_handle_option, TARGET_HANDLE_OPTION,
16213 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
16214 Move to mep-common.c.
16215 * config/microblaze/microblaze.c
16216 (microblaze_option_optimization_table,
16217 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
16218 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
16219 * config/mips/mips.c (mips_handle_option,
16220 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
16221 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
16222 mips-common.c.
16223 * config/mmix/mmix.c (mmix_option_optimization_table,
16224 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
16225 Move to mmix-common.c.
16226 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
16227 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
16228 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16229 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
16230 * config/pa/pa.c: Include common/common-target.h.
16231 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
16232 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16233 pa_handle_option): Move to pa-common.c.
16234 (pa_option_override): Use targetm_common.except_unwind_info.
16235 (pa_asm_output_mi_thunk, pa_function_section): Use
16236 targetm_common.have_named_sections.
16237 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
16238 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16239 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
16240 pdp11_handle_option, pdp11_option_init_struct): Move to
16241 pdp11-common.c.
16242 * config/picochip/picochip.c (picochip_option_optimization_table,
16243 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
16244 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
16245 * config/rs6000/rs6000.c: Include common/common-target.h.
16246 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
16247 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
16248 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
16249 rs6000_handle_option): Move to rs6000-common.c.
16250 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
16251 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
16252 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
16253 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
16254 * config/s390/s390.c (processor_flags_table,
16255 s390_option_optimization_table, s390_option_init_struct,
16256 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
16257 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
16258 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
16259 * config/s390/s390.h (processor_flags_table): Declare.
16260 * config/score/score.c (score_option_optimization_table,
16261 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16262 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
16263 score_handle_option): Move to score-common.c.
16264 * config/sh/sh.c (sh_option_optimization_table,
16265 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
16266 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
16267 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
16268 * config/sparc/sparc.c: Include common/common-target.h.
16269 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
16270 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
16271 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
16272 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
16273 spu_option_init_struct): Move to spu-common.c.
16274 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
16275 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
16276 * config/v850/v850.c (small_memory_physical_max,
16277 v850_handle_memory_optionn v850_handle_option,
16278 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
16279 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
16280 v850-common.c.
dab5a239 16281 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
218e3e4e 16282 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
16283 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
16284 Move to xtensa-common.c.
16285 * cfglayout.c: Include common/common-target.h.
16286 (fixup_reorder_chain): Use targetm_common.have_named_sections.
16287 * cfgrtl.c: Include common/common-target.h.
16288 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
16289 targetm_common.have_named_sections.
16290 * dbxout.c: Include common/common-target.h.
16291 (dbxout_function_end): Use targetm_common.have_named_sections.
16292 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
16293 targetm_common.except_unwind_info.
16294 * dwarf2out.c: Include common/common-target.h.
16295 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
16296 dwarf2out_begin_prologue, dwarf2out_frame_init,
16297 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
16298 targetm_common.except_unwind_info.
16299 * except.c: Include common/common-target.h.
16300 (init_eh, finish_eh_generation,
16301 output_one_function_exception_table): Use
16302 targetm_common.except_unwind_info.
dab5a239 16303 (switch_to_exception_section): Use targetm_common.have_named_sections.
218e3e4e 16304 * explow.c: Include common/common-target.h.
16305 * expr.c: Include common/common-target.h.
dab5a239 16306 (build_personality_function): Use targetm_common.except_unwind_info.
218e3e4e 16307 * function.c: Include common/common-target.h.
16308 (expand_function_end): Use targetm_common.except_unwind_info.
16309 * haifa-sched.c: Include common/common-target.h.
dab5a239 16310 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
218e3e4e 16311 * lto-opts.c: Include common/common-target.h instead of target.h.
16312 (lto_reissue_options): Use targetm_common.handle_option.
16313 * opts.c: Include common/common-target.h.
16314 (target_handle_option): Use targetm_common.handle_option.
16315 (init_options_struct): Update comment referring to
16316 targetm.target_option.optimization. Use
16317 targetm_common.default_target_flags,
16318 targetm_common.unwind_tables_default and
16319 targetm_common.option_init_struct.
16320 (default_options_optimization): Use
16321 targetm_common.option_optimization_table.
16322 (finish_options): Use targetm_common.except_unwind_info,
16323 targetm_common.unwind_tables_default,
16324 targetm_common.have_named_sections and
16325 targetm_common.supports_split_stack.
16326 * toplev.c: Include common/common-target.h.
16327 (process_options): Use targetm_common.have_named_sections.
16328 * tree-tailcall.c: Include common/common-target.h.
dab5a239 16329 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
218e3e4e 16330 * tree.c: Include common/common-target.h.
dab5a239 16331 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
218e3e4e 16332 * varasm.c: Include common/common-target.h.
16333 (resolve_unique_section, hot_function_section,
16334 default_function_section): Use targetm_common.have_named_sections.
16335
b4a708fb 163362011-06-14 Easwaran Raman <eraman@google.com>
16337
16338 PR rtl-optimization/44194
16339 * dse.c: Include tree-flow.h
16340 (insn_info): Add new field non_frame_wild_read.
16341 (group_info): Add new fields escaped_n and escaped_p.
16342 (kill_on_calls): New variable.
16343 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
16344 (dse_step0): Initialize kill_on_calls.
16345 (can_escape): New function.
16346 (set_usage_bits): Add additional parameter; record information
16347 about escaped locations.
dab5a239 16348 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
b4a708fb 16349 (dse_step2_nospill): Set kill_on_calls based on
16350 group->escaped_n and group->escaped_n.
16351 (add_wild_read): Refactor into...
16352 (reset_active_stores): ... New function, and
16353 (free_read_records): ... New function.
16354 (add_non_frame_wild_read): New function.
16355 (scan_insn): Call add_non_frame_wild_read on non-const calls.
dab5a239 16356 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
b4a708fb 16357 (dse_step5_nospill): Call scan_reads_nospill for instructions
16358 marked as non_frame_wild_read.
dab5a239 16359 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
b4a708fb 16360
3e87b980 163612011-06-14 Joseph Myers <joseph@codesourcery.com>
16362
16363 * common/common-target-def.h, common/common-target.def,
16364 common/common-target.h, common/config/default-common.c,
16365 common/config/pa/pa-common.c: New files.
16366 * Makefile.in (common_out_file, common_out_object_file,
16367 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
16368 (OBJS-libcommon-target): Include $(common_out_object_file).
16369 (prefix.o): Update dependencies.
16370 ($(common_out_object_file), common/common-target-hooks-def.h,
16371 s-common-target-hooks-def-h): New.
16372 (s-tm-texi): Also check timestamp on common-target.def.
16373 (build/genhooks.o): Update dependencies.
16374 * config.gcc (common_out_file, target_has_targetm_common): Define.
16375 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
16376 TARGET_ALWAYS_STRIP_DOTDOT.
16377 * configure.ac (common_out_object_file): Define.
16378 (common_out_file, common_out_object_file): Substitute.
16379 (common): Create directory.
16380 * configure: Regenerate.
16381 * doc/tm.texi.in (targetm_common): Document.
16382 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
16383 * doc/tm.texi: Regenerate.
16384 * genhooks.c (hook_array): Also include common/common-target.def.
16385 * prefix.c (tm.h): Don't include.
16386 (common/common-target.h): Include.
16387 (ALWAYS_STRIP_DOTDOT): Don't define.
16388 (update_path): Use targetm_common.always_strip_dotdot instead of
16389 ALWAYS_STRIP_DOTDOT.
16390 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
16391
771e2890 163922011-06-14 David Li <davidxl@google.com>
16393
16394 * passes.c (execute_function_todo): Remove TODO_dump_func.
16395 (execute_one_pass): Remove TODO_dump_func.
16396 (execute_function_dump): New function.
16397 * tree-vrp.c: Remove TODO_dump_func.
16398 * regrename.c: Remove TODO_dump_func.
16399 * fwprop.c: Remove TODO_dump_func.
16400 * tree-into-ssa.c: Remove TODO_dump_func.
16401 * tree-complex.c: Remove TODO_dump_func.
16402 * tracer.c: Remove TODO_dump_func.
16403 * tree-loop-distribution.c: Remove TODO_dump_func.
16404 * postreload-gcse.c: Remove TODO_dump_func.
16405 * postreload.c: Remove TODO_dump_func.
16406 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
16407 * tree-tailcall.c: Remove TODO_dump_func.
16408 * ipa-cp.c: Remove TODO_dump_func.
16409 * final.c: Remove TODO_dump_func.
16410 * tree-emutls.c: Remove TODO_dump_func.
16411 * omp-low.c: Remove TODO_dump_func.
16412 * tree-ssa-dse.c: Remove TODO_dump_func.
16413 * tree-ssa-uncprop.c: Remove TODO_dump_func.
16414 * auto-inc-dec.c: Remove TODO_dump_func.
16415 * reorg.c: Remove TODO_dump_func.
16416 * tree-ssa-copyrename.c: Remove TODO_dump_func.
16417 * tree-ssa-ccp.c: Remove TODO_dump_func.
16418 * compare-elim.c: Remove TODO_dump_func.
16419 * mode-switching.c: Remove TODO_dump_func.
16420 * modulo-sched.c: Remove TODO_dump_func.
16421 * tree-call-cdce.c: Remove TODO_dump_func.
16422 * cse.c: Remove TODO_dump_func.
16423 * web.c: Remove TODO_dump_func.
16424 * tree-stdarg.c: Remove TODO_dump_func.
16425 * lto-streamer-out.c: Remove TODO_dump_func.
16426 * tree-ssa-math-opts.c: Remove TODO_dump_func.
16427 * tree-ssa-dom.c: Remove TODO_dump_func.
16428 * tree-nrv.c: Remove TODO_dump_func.
16429 * loop-init.c: Remove TODO_dump_func.
16430 * gimple-low.c: Remove TODO_dump_func.
16431 * ipa-inline.c: Remove TODO_dump_func.
16432 * tree-ssa-sink.c: Remove TODO_dump_func.
16433 * jump.c: Remove TODO_dump_func.
16434 * ifcvt.c: Remove TODO_dump_func.
16435 * tree-ssa-loop.c: Remove TODO_dump_func.
16436 * recog.c: Remove TODO_dump_func.
16437 * dse.c: Remove TODO_dump_func.
16438 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
16439 * matrix-reorg.c: Remove TODO_dump_func.
16440 * tree-eh.c: Remove TODO_dump_func.
16441 * regmove.c: Remove TODO_dump_func.
16442 * function.c: Remove TODO_dump_func.
16443 * tree-vectorizer.c: Remove TODO_dump_func.
16444 * ipa-split.c: Remove TODO_dump_func.
16445 * gcse.c: Remove TODO_dump_func.
16446 * tree-if-conv.c: Remove TODO_dump_func.
16447 * init-regs.c: Remove TODO_dump_func.
16448 * tree-ssa-phiopt.c: Remove TODO_dump_func.
16449 * implicit-zee.c: Remove TODO_dump_func.
16450 * lower-subreg.c: Remove TODO_dump_func.
16451 * bt-load.c: Remove TODO_dump_func.
16452 * tree-dfa.c: Remove TODO_dump_func.
16453 * except.c: Remove TODO_dump_func.
16454 * emit-rtl.c: Remove TODO_dump_func.
16455 * store-motion.c: Remove TODO_dump_func.
16456 * cfgexpand.c: Remove TODO_dump_func.
16457 * tree-cfgcleanup.c: Remove TODO_dump_func.
16458 * cfgcleanup.c: Remove TODO_dump_func.
16459 * tree-ssa-pre.c: Remove TODO_dump_func.
16460 * tree-sra.c: Remove TODO_dump_func.
16461 * tree-mudflap.c: Remove TODO_dump_func.
16462 * tree-ssa-copy.c: Remove TODO_dump_func.
16463 * cfglayout.c: Remove TODO_dump_func.
16464 * tree-ssa-forwprop.c: Remove TODO_dump_func.
16465 * tree-ssa-dce.c: Remove TODO_dump_func.
16466 * ira.c: Remove TODO_dump_func.
16467 * tree-ssa.c: Remove TODO_dump_func.
16468 * integrate.c: Remove TODO_dump_func.
16469 * tree-optimize.c: Remove TODO_dump_func.
16470 * tree-ssa-phiprop.c: Remove TODO_dump_func.
16471 * tree-object-size.c: Remove TODO_dump_func.
16472 * combine.c: Remove TODO_dump_func.
16473 * bb-reorder.c: Remove TODO_dump_func.
16474 * cprop.c: Remove TODO_dump_func.
16475 * var-tracking.c: Remove TODO_dump_func.
16476 * tree-profile.c: Remove TODO_dump_func.
16477 * tree-vect-generic.c: Remove TODO_dump_func.
16478 * reg-stack.c: Remove TODO_dump_func.
16479 * sched-rgn.c: Remove TODO_dump_func.
16480 * tree-ssa-structalias.c: Remove TODO_dump_func.
16481 * tree-switch-conversion.c: Remove TODO_dump_func.
16482 * tree-cfg.c: Remove TODO_dump_func.
16483 * tree-ssa-reassoc.c: Remove TODO_dump_func.
16484 * combine-stack-adj.c: Remove TODO_dump_func.
16485 * dce.c: Remove TODO_dump_func.
16486 * tree-ssanames.c: Remove TODO_dump_func.
16487 * regcprop.c: Remove TODO_dump_func.
16488
499eee58 164892011-06-14 H.J. Lu <hongjiu.lu@intel.com>
16490
16491 PR middle-end/47364
16492 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
16493 and properly handle result not in Pmode.
16494
a306f2da 164952011-06-14 Robert Millan <rmh@gnu.org>
16496
16497 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
16498 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
16499 `config/linux.h'.
16500
16501 * config/i386/kfreebsd-gnu64.h: New file.
16502 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
16503 with `i386/kfreebsd-gnu64.h'.
16504
16505 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
16506 (GNU_USER_LINK_EMULATION64): New macros.
16507 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
16508 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
16509 of hardcoding `elf_i386' and `elf_x86_64'.
16510
3f6c197f 165112011-06-14 Nick Clifton <nickc@redhat.com>
16512
16513 PR target/49403
16514 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
16515
16516 PR target/49402
16517 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
16518
a79761ff 165192011-06-14 Jakub Jelinek <jakub@redhat.com>
16520
c7c68014 16521 PR fortran/49103
16522 * tree.h (DECL_NONSHAREABLE): Define.
16523 (struct tree_decl_common): Change decl_common_unused to
16524 decl_nonshareable_flag.
16525 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
16526 Ignore vars with DECL_NONSHAREABLE bit set.
16527 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
16528 on stores to automatic aggregate vars.
16529
a79761ff 16530 PR rtl-optimization/49390
16531 Revert:
16532 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
16533
16534 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
16535 MEM_ALIAS_SET.
16536
8fe79ba5 165372011-06-14 Zdenek Dvorak <ook@ucw.cz>
16538 Tom de Vries <tom@codesourcery.com>
16539
16540 PR target/45098
16541 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
16542 Document changed semantics.
16543 (max_stmt_executions, max_stmt_executions_int): Declare.
16544 * tree-data-ref.c (estimated_loop_iterations)
16545 (estimated_loop_iterations_int): Move functions...
16546 * tree-ssa-loop-niter.c (estimated_loop_iterations)
16547 (estimated_loop_iterations_int): here.
16548 (record_estimate): Change nb_iterations_upper_bound and
16549 nb_iterations_estimate semantics.
16550 (max_stmt_executions, max_stmt_executions_int): New function.
16551 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
16552 (max_stmt_executions_tree): this.
16553 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
16554 estimated_loop_iterations_tree.
16555 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
16556 max_stmt_executions_int instead of estimated_loop_iterations_int.
16557 * predict.c (predict_loops): Idem.
16558 * tree-parloops.c (parallelize_loops): Idem.
16559 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
16560 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
16561 (init_omega_for_ddr_1): Idem.
16562 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
16563 (loop_prefetch_arrays): Idem
16564 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
16565 max_stmt_executions instead of estimated_loop_iterations.
16566 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
16567 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
16568 instead of nb_iterations_upper_bound.
16569
9ff0849c 165702011-06-13 Jan Hubicka <jh@suse.cz>
16571
16572 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
16573
e2fd48f3 165742011-06-14 Richard Henderson <rth@redhat.com>
16575
16576 PR debug/48459
16577 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
16578 (based_loc_descr): Assert it's true.
16579 (compute_frame_pointer_to_fb_displacement): Set it, rather than
16580 aborting immediately.
16581
c02b4679 165822011-06-14 Sanjin Liu <scliu@faraday-tech.com>
16583 Mingfeng Wu <mingfeng@faraday-tech.com>
16584
16585 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
16586
7fc881cc 165872011-06-13 Jan Hubicka <jh@suse.cz>
16588
16589 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
16590
89bf5ca9 165912011-06-13 Jan Hubicka <jh@suse.cz>
16592
16593 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
16594 similarly to DECL_COMDAT.
16595 * cgraphunit.c (cgraph_analyze_function): Likewise.
16596 * ipa.c (function_and_variable_visibility): Likewise.
16597
3b368b8f 165982011-06-13 Jan Hubicka <jh@suse.cz>
16599
16600 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
16601 BINFO_VIRTUALS when streaming for ltrans unit.
16602
6fcacb47 166032011-06-13 David Edelsohn <dje.gcc@gmail.com>
16604
16605 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
16606 (movdi_internal64): Same.
16607
166082011-06-13 Edmar Wienskoski <edmar@freescale.com>
16609
2d7063ae 16610 PR target/44618
a306f2da 16611 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
16612 a set of similar patterns, where the MATCH_OPERAND for the function
16613 argument is replaced with individual references to hardware registers.
6fcacb47 16614 (save_fpregs_<mode>): Ditto
16615 (restore_gpregs_<mode>): Ditto
16616 (return_and_restore_gpregs_<mode>): Ditto
16617 (return_and_restore_fpregs_<mode>): Ditto
16618 (return_and_restore_fpregs_aix_<mode>): Ditto
16619
ee5e516b 166202011-06-13 Jan Hubicka <jh@suse.cz>
16621
16622 * ipa-utils.c (postorder_stack): New structure.
16623 (ipa_reverse_postorder): Handle aliases.
16624
166252011-06-13 Jan Hubicka <jh@suse.cz>
16626
16627 * ipa-inline.c (reset_edge_caches): Walk aliases.
16628 (update_caller_keys): Do not test inlinability of aliases.
16629 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
16630 (do_estimate_growth): Fix typo.
16631
7791b0eb 166322011-06-13 Jan Hubicka <jh@suse.cz>
16633
16634 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
16635 (can_remove_node_now_p): ... here; handle same comdat groups.
16636 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
16637 (inline_call): Update use of can_remove_node_now_p.
16638
eda83832 166392011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
b5f36b75 16640
eda83832 16641 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
b5f36b75 16642 condition to disallow non-identical memory locations.
16643 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
16644 preference to bit manipulation instructions.
b5f36b75 16645
794fd282 166462011-06-13 Jan Hubicka <jh@suse.cz>
16647
16648 * cgraph.c (cgraph_for_node_thunks_and_aliases,
16649 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
16650 (nonremovable_p): New function.
16651 (cgraph_can_remove_if_no_direct_calls_p): New function.
16652 (used_from_object_file_p): New functoin.
eda83832 16653 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
16654 references from aliases.
794fd282 16655 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
16656 * ipa-inline.c (check_caller_edge): New function.
eda83832 16657 (want_inline_function_called_once_p): Use it; accept aliases called
16658 once, too.
794fd282 16659 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
16660
11371434 166612011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
16662
16663 PR target/48454
16664 * config/arm/neon.md (vec_pack_trunc): Set the lengths
16665 correctly for the case with Quad vectors.
16666
85078181 166672011-06-13 Jakub Jelinek <jakub@redhat.com>
16668 Ira Rosen <ira.rosen@linaro.org>
16669
16670 PR tree-optimization/49352
16671 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
16672 all, make sure loop_use_stmt after the loop is a def stmt of a used
16673 SSA_NAME that is the only one defined inside of the loop. Don't
16674 check for COND_EXPR and GIMPLE_BINARY_RHS.
16675 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
16676 check_reduction is true.
16677
37ec4be4 166782011-06-11 Jan Hubicka <jh@suse.cz>
16679
16680 PR middle-end/49373
16681 * ipa.c (cgraph_externally_visible_p): Check resolution info.
16682
77486e4a 166832011-06-11 Jan Hubicka <jh@suse.cz>
16684
16685 PR middle-end/48836
16686 * ipa-inline-transform.c: Include tree-pass.h
16687 (inline_transform): Set TODO_update_ssa_only_virtuals.
16688 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
16689
8a472e4d 166902011-06-11 Jan Hubicka <jh@suse.cz>
16691
16692 PR middle-end/49378
16693 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
16694 aliases and thunks.
16695
593fa4d1 166962011-06-12 Ira Rosen <ira.rosen@linaro.org>
16697
16698 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
16699 Take number of iterations to peel into account for equally frequent
16700 misalignment values.
16701
8cdd3a7e 167022011-06-11 Jan Hubicka <jh@suse.cz>
16703
dab5a239 16704 * lto-streamer-out.c (produce_symtab): Stream out the newly
16705 represented aliases.
8cdd3a7e 16706
691292c5 167072011-06-11 Jan Hubicka <jh@suse.cz>
16708
dab5a239 16709 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
16710 varying args.
691292c5 16711 (ipa_update_after_lto_read): Likewise.
16712 (ipa_write_node_info): Do not sream call_with_var_arguments.
16713 (ipa_read_node_info): Likewise.
16714
177759c9 167152011-06-11 Jan Hubicka <jh@suse.cz>
16716
16717 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
16718
c70f46b0 167192011-06-11 Jan Hubicka <jh@suse.cz>
16720
16721 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
16722 (lto_symtab_resolve_can_prevail_p): Likewise.
16723 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
16724 * cgraph.c (same_body_aliases_done): New global var.
16725 (cgraph_same_body_alias_1): Rename to ...
16726 (cgraph_create_function_alias): ... this one; reorg to new
16727 representation.
16728 (cgraph_same_body_alias): Use cgraph_create_function_alias;
16729 record references when asked to.
16730 (cgraph_add_thunk): Fix formating.
16731 (cgraph_get_node): Kill same body alias code.
16732 (cgraph_node_for_asm): Likewise.
16733 (cgraph_remove_same_body_alias): Remove.
16734 (cgraph_remove_node): Kill same body alias code.
16735 (cgraph_mark_address_taken_node): Mark also the aliased function
16736 as having address taken.
16737 (dump_cgraph_node): Dump same body aliases.
16738 (cgraph_for_node_thunks_and_aliases): Update for new alias
16739 representation.
16740 (cgraph_for_node_and_aliases): Likewise.
16741 * cgraph.h (same_body): Kll pointer.
16742 (same_body_alias): Update comment.
16743 (same_body_aliases_done): Declare.
16744 (cgraph_remove_same_body_alias): Remove declaration.
16745 (cgraph_create_function_alias): Declare.
16746 (cgraph_process_same_body_aliases): Declare.
16747 (cgraph_function_with_gimple_body_p): Check for alias.
16748 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
16749 (cgraph_alias_aliased_node): New function.
16750 (cgraph_function_node): Update for new aliases.
16751 (cgraph_function_or_thunk_node): Likewise.
16752 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
16753 (inline_call): Remove dead aliases.
eda83832 16754 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
16755 name hack for same body aliases.
c70f46b0 16756 (clone_of_p): Look through aliases.
16757 (verify_cgraph_node): Verify aliases.
16758 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
16759 (cgraph_process_same_body_aliases): New function.
16760 (process_function_and_variable_attributes): Disable weakref warning on
16761 alias.
16762 (cgraph_analyze_functions): Handle aliases.
16763 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
16764 (assemble_thunks): Rename to ...
16765 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
16766 (cgraph_expand_function): Remove alias output code.
16767 (cgraph_output_in_order): Skip aliases.
16768 (cgraph_preserve_function_body_p): Aliases don't need preserving.
16769 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
16770 (ipa_record_reference): Do not assert on alias references.
16771 (ipa_ref_has_aliases_p): New function.
16772 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
16773 (ipa_ref_has_aliases_p): Declare.
16774 * lto-cgraph.c (lto_output_node): Handle aliases.
16775 (input_node): Likewise.
16776 * lto-streamer-out.c (lto_output): Skip aliases.
16777 (produce_symtab): Kill same_body_alias code.
16778 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
16779 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
16780 * ipa-inline.c (update_caller_keys): Walk aliases.
16781 (inline_small_functions): Fix thinko in previous patch.
16782 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
16783 (function_and_variable_visibility): Do not walk same body aliases.
16784 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
16785 (ipa_pta_execute): Use it.
16786
a17124a0 167872011-06-11 Uros Bizjak <ubizjak@gmail.com>
16788
16789 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
16790 (*vec_dupv2df): Rename from vec_dupv2df.
16791 (vec_dupv2df): New expander.
16792
167932011-06-11 Uros Bizjak <ubizjak@gmail.com>
16794
16795 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
16796
167972011-06-11 Uros Bizjak <ubizjak@gmail.com>
16798
16799 * config/i386/i386.md: Use default value in "isa" attribute.
16800 * config/i386/sse.md: Ditto.
16801 * config/i386/mmx.md: Ditto.
16802
a71b0c8e 168032011-06-10 Wei Guozhi <carrot@google.com>
16804
16805 PR target/45335
16806 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
16807 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
16808 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
16809 related peephole2.
16810 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
16811 related peephole2.
16812 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
16813 (arm_legitimate_ldrd_p): New prototype.
16814 (arm_output_ldrd): New prototype.
16815 * config/arm/arm.c (arm_check_ldrd_operands): New function.
16816 (arm_legitimate_ldrd_p): New function.
16817 (arm_output_ldrd): New function.
16818
ec4791a8 168192011-06-10 David Li <davidxl@google.com>
16820
16821 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
16822 * passes.c (passr_eq): New function.
16823 (create_pass_tab): New function.
16824 (pass_traverse): New function.
16825 (dump_one_pass): New function.
16826 (dump_pass_list): New function.
16827 (dump_passes): New function.
16828
8c1fce46 168292011-06-10 Jan Hubicka <jh@suse.cz>
16830
16831 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
16832 setting the nothrow flag.
16833 * ipa-reference.c (propagate): Skip aliases.
16834 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
16835 (propagate_nothrow): Skip aliases; do not update cgraph.
16836 (local_pure_const): Do not update cgraph.
16837 * tree-profile.c (tree_profiling): Do fixup_cfg.
16838
36a32361 168392011-06-10 Jan Hubicka <jh@suse.cz>
16840
16841 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
16842 (cgraph_local_node_p): ... here; handle aliases.
16843 (has_addr_references_p): Break out from ...;
16844 (cgraph_remove_unreachable_nodes) ... here.
16845
055af069 168462011-06-10 Jan Hubicka <jh@suse.cz>
16847
16848 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
a17124a0 16849 * common.opt (flag_inline_functions_called_once): Do not
16850 initialize to 1.
055af069 16851
eae7682a 168522011-06-10 Jan Hubicka <jh@suse.cz>
16853
16854 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
a17124a0 16855 (ipcp_initialize_node_lattices): Do not deal with aliases;
16856 Do not try to propagate through thunks.
eae7682a 16857 (ipcp_change_tops_to_bottom): Do not deal with aliases.
16858
d6731c65 168592011-06-10 Jan Hubicka <jh@suse.cz>
16860
a17124a0 16861 * ipa-prop.c (ipa_write_node_info): Stream jump functions
16862 for indirect calls.
d6731c65 16863 (ipa_read_node_info): Likewise.
16864
a5c384c1 168652011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16866
16867 PR lto/49302
16868 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
16869 (build_and_insert_call): Likewise.
16870 (build_and_insert_ref): New.
16871 (gimple_expand_builtin_pow): Minor cleanup.
16872 (gimple_expand_builtin_cabs): New.
16873 (execute_cse_sincos): Add case for BUILT_IN_CABS.
a17124a0 16874
4855a75d 168752011-06-10 Jan Hubicka <jh@suse.cz>
16876
16877 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
16878 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
16879 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
16880 (ipcp_propagate_stage): Skip aliases when propagating.
16881 (ipcp_need_redirect_p): Skip aliases.
16882 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
16883 collect_callers_of_node.
16884 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
16885 for aliases.
16886 (ipa_compute_jump_functions): Look through aliases.
16887
5c799286 168882011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16889
16890 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
16891
d12ecbda 168922011-06-10 Hans-Peter Nilsson <hp@axis.com>
16893
16894 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
16895 Adjust comments.
16896 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
16897
b21cfa64 168982011-06-10 Jan Hubicka <jh@suse.cz>
16899
16900 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
16901 Update call of gimple_get_virt_method_for_binfo.
16902 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
16903 refuse_thunks parameter.
16904 (gimple_fold_call): Update.
16905 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
16906
1dd91a19 169072011-06-10 Jan Hubicka <jh@suse.cz>
16908
16909 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
16910 (not_all_callers_have_enough_arguments_p): ... this one; turn into
16911 worker for cgraph_for_node_and_aliases.
16912 (convert_callers_for_node): Break out from ...
16913 (convert_callers): ... here.
16914 (modify_function): Use collect_callers_of_node.
16915 (ipa_early_sra): Use cgraph_for_node_and_aliases.
16916
3050df3e 169172011-06-10 Richard Guenther <rguenther@suse.de>
16918
16919 PR tree-optimization/49361
16920 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
16921 when not already in gimple form.
16922
5715c09b 169232011-06-10 Richard Guenther <rguenther@suse.de>
16924
16925 PR bootstrap/49344
16926 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
16927 FOR_EACH_PHI_OR_STMT_USE.
16928
82626cb0 169292011-06-10 Jan Hubicka <jh@suse.cz>
16930
16931 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
16932 (clone_inlined_nodes): ... here.
16933 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
16934 to real destination prior inlining.
16935 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
16936 can_early_inline_edge_p, want_early_inline_function_p,
16937 want_early_inline_function_p, want_inline_small_function_p,
16938 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
16939 edge_badness, update_all_callee_keys, lookup_recursive_calls,
16940 add_new_edges_to_heap, inline_small_functions, flatten_function,
16941 inline_always_inline_functions, early_inline_small_functions): Use
16942 cgraph_function_or_thunk_node.
16943 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
16944 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
16945 (do_estimate_edge_growth_1): Break out from ...
16946 (do_estimate_growth) ... here; walk aliases.
16947 (inline_generate_summary): Skip aliases.
16948
a7107e58 169492011-06-10 Richard Guenther <rguenther@suse.de>
16950
a17124a0 16951 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
16952 forward when combining, visit inserted stmts when a stmt was changed.
a7107e58 16953
da579dbb 169542011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
16955
16956 * tree.h (error_operand_p): Add.
16957 * dbxout.c (dbxout_type_fields): Use the latter.
16958 * c-decl.c (add_stmt): Likewise.
16959 * gimplify.c (omp_add_variable, omp_notice_variable,
16960 gimplify_scan_omp_clauses): Likewise.
16961
e46ab6d3 169622011-06-10 Georg-Johann Lay <avr@gjlay.de>
da579dbb 16963
e46ab6d3 16964 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
16965 when a value is actually passed in regs.
16966
47529489 169672011-06-10 Eric Botcazou <ebotcazou@adacore.com>
165d480a 16968 Laurent Rougé <laurent.rouge@menta.fr>
47529489 16969
16970 * doc/invoke.texi (SPARC options): Add -mflat.
16971 * config/sparc/sparc.opt: Likewise.
16972 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
16973 (sparc_flat_expand_prologue): Declare.
16974 (sparc_flat_expand_epilogue): Likewise.
16975 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
16976 (CPP_ENDIAN_SPEC): Replace with...
16977 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
16978 (CPP_SPEC): Adjust to above change.
16979 (EXTRA_SPECS): Likewise.
16980 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
16981 (INCOMING_REGNO): Likewise.
16982 (OUTGOING_REGNO): Likewise.
16983 (LOCAL_REGNO): Likewise.
16984 (SETUP_FRAME_ADDRESSES): Likewise.
16985 (FIXED_REGISTERS): Set 0 for %fp.
16986 (CALL_USED_REGISTERS): Likewise.
16987 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
16988 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
16989 (RETURN_ADDR_REGNUM): Define.
16990 (RETURN_ADDR_RTX): Use it.
16991 (INCOMING_RETURN_ADDR_REGNUM): Define.
16992 (INCOMING_RETURN_ADDR_RTX): Use it.
16993 (DWARF_FRAME_RETURN_COLUMN): Likewise.
16994 (EH_RETURN_REGNUM): Define.
16995 (EH_RETURN_STACKADJ_RTX): Use it.
16996 (EH_RETURN_HANDLER_RTX): Delete.
16997 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
16998 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
16999 Delete.
17000 (struct machine_function): Add frame_size, apparent_frame_size,
17001 frame_base_reg, frame_base_offset, n_global_fp_regs and
17002 save_local_in_regs_p fields.
17003 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
17004 sparc_frame_base_offset, sparc_n_global_fp_regs,
17005 sparc_save_local_in_regs_p): New macros.
17006 (sparc_option_override): Error out if -fcall-saved-REG is specified
17007 for Out registers.
17008 (eligible_for_restore_insn): Fix formatting.
17009 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
17010 (eligible_for_sibcall_delay): Likewise.
17011 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
17012 (sparc_legitimate_address_p): Adjust to above change.
17013 (save_global_or_fp_reg_p): New predicate.
17014 (return_addr_reg_needed_p): Likewise.
17015 (save_local_or_in_reg_p): Likewise.
17016 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
17017 (SORR_SAVE, SORR_RESTORE): Delete.
17018 (sorr_pred_t): New typedef.
17019 (sorr_act_t): New enum.
17020 (save_or_restore_regs): Rename to...
17021 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
17022 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
17023 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
17024 mechanism. Add CFI information for double-word saves in 32-bit mode.
17025 (emit_adjust_base_to_offset): New function extracted from...
17026 (emit_save_or_restore_regs): ...this. Rename the rest to...
17027 (emit_save_or_restore_regs_global_fp_regs): ...this.
17028 (emit_save_or_restore_regs_local_in_regs): New function.
17029 (gen_create_flat_frame_[123]): New functions.
17030 (sparc_expand_prologue): Use SIZE local variable. Adjust.
17031 (sparc_flat_expand_prologue): New function.
17032 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
17033 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
17034 (sparc_flat_expand_epilogue): New function.
17035 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
17036 (output_return): Likewise.
17037 (output_sibcall): Likewise.
17038 (sparc_output_mi_thunk): Likewise.
17039 (sparc_frame_pointer_required): Likewise.
17040 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
17041 function optimization.
17042 * config/sparc/sparc.md (flat): New attribute.
17043 (prologue): Add TARGET_FLAT handling.
17044 (save_register_window): Disable if TARGET_FLAT.
17045 (create_flat_frame_[123]): New patterns.
17046 (epilogue): Add TARGET_FLAT handling.
17047 (sibcall_epilogue): Likewise.
17048 (eh_return): New expander.
17049 (eh_return_internal): New insn and splitter.
17050 (return_internal): Add TARGET_FLAT handling.
17051 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
17052 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
17053 (nonlocal_goto): Add TARGET_FLAT handling.
17054 * config/sparc/t-elf: Add -mflat multilib.
17055 * config/sparc/t-leon: Likewise.
17056
b2c2e188 170572011-06-10 Jan Hubicka <jh@suse.cz>
17058
17059 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
17060 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
17061 (self_recursive_p): Use cgraph_function_node.
17062 (propagate_pure_const): Likewise.
17063 (propagate_nothrow): Likewise.
17064 * ipa-reference.c (ipa_reference_get_not_read_global): Use
17065 cgraph_function_node.
17066 (propagate_bits): Likewise.
17067 (propagate): Likewise.
17068
463d6a35 170692011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17070 Richard Earnshaw <rearnsha@arm.com>
17071
a17124a0 17072 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
463d6a35 17073 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
17074 (*thumb2_movdi_vfp): Delete.
17075 (*arm_movdi_vfp_cortexa8): Delete.
17076 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
17077 (*movdi_vfp_cortexa8): Likewise.
17078
f1444979 170792011-06-10 Richard Guenther <rguenther@suse.de>
17080
17081 * stor-layout.c (initialize_sizetypes): Give names to all
17082 sizetype kinds.
17083
67eea82d 170842011-06-10 Ira Rosen <ira.rosen@linaro.org>
17085
17086 PR tree-optimization/49318
17087 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
17088 irrelevant pattern statements.
17089
5bac2f8b 170902011-06-10 Hans-Peter Nilsson <hp@axis.com>
17091
db01fad0 17092 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
17093
5bac2f8b 17094 PR bootstrap/49354
17095 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
17096 to last assignment.
17097
443089c1 170982011-06-09 Jan Hubicka <jh@suse.cz>
17099
17100 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
17101 do not recompute reachable flag.
17102 (cgraph_finalize_function, cgraph_analyze_functions): Set
17103 redefined_extern_inline here.
17104
74fa5f1c 171052011-06-09 Jan Hubicka <jh@suse.cz>
17106
17107 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
17108 (cgraph_only_called_directly_p): ... this one; bring offline.
17109 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
17110 varpool_used_from_object_file_p): Drop names from the declaratoin.
17111 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
17112 collect_callers_of_node): New.
17113 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
17114 (cgraph_edge_recursive_p): Use cgraph_function_node.
17115 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
17116 (cgraph_node_cannot_be_local_p_1): Break out from ...
17117 (cgraph_node_can_be_local_p): ... here; walk aliases.
17118 (cgraph_for_node_thunks_and_aliases): New function.
17119 (cgraph_for_node_and_aliases): New function.
17120 (cgraph_make_node_local_1): Break out from ...
a17124a0 17121 (cgraph_make_node_local) ... here; use
17122 cgraph_for_node_thunks_and_aliases.
74fa5f1c 17123 (cgraph_set_nothrow_flag_1): Break out from ...
a17124a0 17124 (cgraph_set_nothrow_flag) ... here;
17125 use cgraph_for_node_thunks_and_aliases.
74fa5f1c 17126 (cgraph_set_const_flag_1): Break out from ...
a17124a0 17127 (cgraph_set_const_flag) ... here;
17128 use cgraph_for_node_thunks_and_aliases.
74fa5f1c 17129 (cgraph_set_pure_flag_1): Break out from ...
a17124a0 17130 (cgraph_set_pure_flag) ... here;
17131 use cgraph_for_node_thunks_and_aliases.
74fa5f1c 17132 (cgraph_propagate_frequency_1): Break out from ...
a17124a0 17133 (cgraph_propagate_frequency) ... here; use
17134 cgraph_for_node_thunks_and_aliases.
74fa5f1c 17135 (cgraph_used_from_object_file_p): Do not care about aliases.
a17124a0 17136 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
17137 New functions.
74fa5f1c 17138 (collect_callers_of_node_1, collect_callers_of_node): New functions.
17139
34569717 171402011-06-10 Hans-Peter Nilsson <hp@axis.com>
17141
17142 PR rtl-optimization/49154
17143 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
17144 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
17145 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
17146 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
17147 * config/cris/cris.h (cris_register_move_cost): Remove
17148 !TARGET_V32 code. Tweak comments.
17149
9be42e8c 171502011-06-09 Jan Hubicka <jh@suse.cz>
17151
17152 * cgraphbuild.c (record_eh_tables): Mark personality function as having
17153 address taken.
17154
a4621139 171552011-06-10 Hans-Peter Nilsson <hp@axis.com>
17156
fa715e07 17157 PR rtl-optimization/49154
a17124a0 17158 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
17159 is a matching slot in the hashtable, assign it to classes_ptr.
fa715e07 17160
24cedde8 17161 PR rtl-optimization/49154
a4621139 17162 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
17163 register classes.
17164 * doc/tm.texi: Regenerate.
17165
93289d7e 171662011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
17167
17168 PR target/49307
17169 * config/sh/sh.md (UNSPEC_CHKADD): New.
17170 (chk_guard_add): New define_insn_and_split.
17171 (symGOT_load): Use chk_guard_add instead of blockage.
17172
b7404024 171732011-06-09 Kai Tietz <ktietz@redhat.com>
17174
17175 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
17176
eb430f9f 171772011-06-09 Eric Botcazou <ebotcazou@adacore.com>
17178
17179 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
17180
922b6913 171812011-06-09 Wei Guozhi <carrot@google.com>
17182
17183 PR target/46975
17184 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
17185 (peephole2 for conditional move): Generate 16 bit instructions.
17186
c50e6579 171872011-06-09 Uros Bizjak <ubizjak@gmail.com>
17188
17189 * config/i386/i386.md (*movdi_internal_rex64): Merge
17190 alternatives 6 and 8.
17191
55dabf9b 171922011-06-09 David Li <davidxl@google.com>
17193
17194 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
17195 * passes.c (passr_eq): New function.
17196 (create_pass_tab): New function.
17197 (pass_traverse): New function.
17198 (dump_one_pass): New function.
17199 (dump_pass_list): New function.
17200 (dump_passes): New function.
17201
10e20ba5 172022011-06-09 David Li <davidxl@google.com>
17203
17204 * tree-complex.c (tree_lower_complex): Gate cleanup.
17205 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
17206 (execute_optimize_stdarg): Ditto.
17207 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
17208 (execute_cleanup_eh_1): Ditto.
17209 (execute_cleanup_eh): Ditto.
17210 * gcse.c (gate_rtl_pre): Ditto.
17211 (execute_rtl_pre): Ditto.
17212 * except.c (finish_eh_generation): Ditto.
17213 (convert_to_eh_region_ranges): Ditto.
17214 * cprop.c (one_cprop_pass): Ditto.
17215
b3923b22 172162011-06-09 Bernd Schmidt <bernds@codesourcery.com>
17217
17218 PR target/48673
17219 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
17220 in all basic blocks.
17221
a6f06169 172222011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17223
17224 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
17225 (HAVE_ENABLE_EXECUTE_STACK): Define.
17226 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
17227 (HAVE_ENABLE_EXECUTE_STACK): Define.
17228 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
17229 (HAVE_ENABLE_EXECUTE_STACK): Define.
17230 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
17231 (ENABLE_EXECUTE_STACK): Remove.
17232 (HAVE_ENABLE_EXECUTE_STACK): Define.
17233 [IN_LIBGCC2]: Don't include <windows.h>.
17234 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
17235 (HAVE_ENABLE_EXECUTE_STACK): Define.
17236 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
17237 (HAVE_ENABLE_EXECUTE_STACK): Define.
17238 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
17239 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
17240 (HAVE_ENABLE_EXECUTE_STACK): Define.
17241 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
17242 (HAVE_ENABLE_EXECUTE_STACK): Define.
17243 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
17244 (HAVE_ENABLE_EXECUTE_STACK): Define.
17245 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
17246 (HAVE_ENABLE_EXECUTE_STACK): Define.
17247 * config/alpha/alpha.c (alpha_trampoline_init): Test
17248 HAVE_ENABLE_EXECUTE_STACK.
17249 * config/i386/i386.c (ix86_trampoline_init): Likewise.
17250 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
17251 (sparc64_initialize_trampoline): Likewise.
17252 * libgcc2.c [L_enable_execute_stack]: Remove.
17253 * system.h (ENABLE_EXECUTE_STACK): Poison.
17254 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
17255 * doc/tm.texi: Regenerate.
17256 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
17257
5af2c7fc 172582011-06-09 Jakub Jelinek <jakub@redhat.com>
17259
17260 PR middle-end/49308
17261 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
17262 variable. After resetting and rescanning insn continue with previous
17263 statement.
17264
b9099475 172652011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17266
17267 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
17268 (gcc_cv_ld_hidden): Likewise.
17269 * configure: Regenerate.
17270 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
17271 (ix86_stack_protect_fail): Mark unused.
17272 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
17273 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
17274 [TARGET_MACHO]: Don't define.
17275 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
17276 (TARGET_STACK_PROTECT_FAIL): Likewise.
17277 (rs6000_stack_protect_fail): Mark unused.
17278 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
c50e6579 17279 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
b9099475 17280
b74d9e7a 172812011-06-08 Andi Kleen <ak@linux.intel.com>
17282
17283 * varasm.c (get_section): Print location of other conflict
17284 for section conflicts.
17285
9eae7f95 172862011-06-08 Andi Kleen <ak@linux.intel.com>
17287
17288 * config/i386/driver-i386.c (host_detect_local_cpu):
17289 Add model 0x2d Intel CPU.
17290
ca2d5ca1 172912011-06-08 Andi Kleen <ak@linux.intel.com>
17292
17293 * reginfo.c (global_regs_decl): Add.
c50e6579 17294 (globalize_reg): Add decl parameter. Compute location. Pass location
17295 to warnings and add inform. Store decl in global_regs_decl.
ca2d5ca1 17296 * rtl.h (globalize_reg): Update prototype.
17297 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
17298
f2e5df9c 172992011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
17300
17301 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
17302
0c68c6cd 173032011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
17304
17305 PR target/49305
17306 * config/sh/predicates.md (general_movsrc_operand): Check
17307 mode for memory with indexed address for QI and HImode.
17308 (general_movdst_operand): Likewise.
17309
ba3f7241 173102011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
17311
c50e6579 17312 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
ba3f7241 17313
7115a510 173142011-06-08 Alexandre Oliva <aoliva@redhat.com>
17315
17316 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
17317 (num_ssa_operands): Likewise.
17318 (op_iter_init_phiuse): Forward-declare.
17319 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
17320
437e93d2 173212011-06-08 Nick Clifton <nickc@redhat.com>
17322
17323 * doc/invoke.texi (ARM Options): Update description of
17324 -mthumb-interwork.
17325
59e32513 173262011-06-08 H.J. Lu <hongjiu.lu@intel.com>
17327
17328 * config/i386/driver-i386.c (host_detect_local_cpu): Support
17329 unknown Intel family 0x6 CPUs.
17330
6a05dfa4 173312011-06-08 Martin Jambor <mjambor@suse.cz>
17332
17333 * tree-sra.c (mark_rw_status): Removed.
17334 (analyze_access_subtree): New parameter parent instead of
17335 mark_read and mark_write, propagate from that.
17336
4c39d4f7 173372011-06-08 Julian Brown <julian@codesourcery.com>
17338
17339 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
17340 for double-precision helper functions in hard-float mode if only
17341 single-precision arithmetic is supported in hardware.
17342
93457441 173432011-06-08 Alexander Monakov <amonakov@ispras.ru>
17344
17345 PR rtl-optimization/49303
17346 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
17347 code_motion_path_driver returned 0 or 1.
17348 (sel_region_finish): Clear h_d_i_d.
17349
eadf7d4b 173502011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
17351
17352 * config/sh/sh.c (prepare_move_operands): Set pic register
17353 appropriately for global and local dynamic tls models even
17354 if flag_pic is unset.
17355
1ea9269b 173562011-06-07 Jason Merrill <jason@redhat.com>
17357
17358 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
17359
901a9d42 173602011-06-07 Xinliang David Li <davidxl@google.com>
17361 * passes.c (enable_disable_pass): Handle assembler name.
17362 (is_pass_explicitly_enabled_or_disabled): Ditto.
17363
4c81323a 173642011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17365
17366 PR tree-optimization/48497
17367 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
17368
0b7ad900 173692011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17370
17371 PR tree-optimization/46728
17372 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
17373 to use gimple_val_nonnegative_real_p.
17374 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
17375 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
437e93d2 17376
e4701ee9 173772011-06-07 H.J. Lu <hongjiu.lu@intel.com>
17378
17379 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
17380
a02a9ea5 173812011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
17382
17383 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
17384 constant vectors.
17385
7907db97 173862011-06-07 Richard Guenther <rguenther@suse.de>
17387
17388 * stor-layout.c (initialize_sizetypes): Initialize all
17389 sizetypes based on target definitions.
17390 (set_sizetype): Remove.
17391 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
17392 * tree.h (set_sizetype): Remove.
17393
f5ec6516 173942011-06-07 Nick Clifton <nickc@redhat.com>
17395
17396 * config.gcc: Unify V850 architecture options and add support for
17397 newer V850 architectures.
17398 * config/v850/t-v850e: Delete.
17399
1af0124d 174002011-06-07 Richard Guenther <rguenther@suse.de>
17401
17402 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
17403 Call set_sizetype from here.
17404
9a92f368 174052011-06-07 Andrew Stubbs <ams@codesourcery.com>
17406
17407 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
17408 (*maddhisi4tb, *maddhisi4tt): New define_insns.
17409
9f9356e0 174102011-06-07 Bernd Schmidt <bernds@codesourcery.com>
17411 Andrew Stubbs <ams@codesourcery.com>
17412
17413 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
17414 multiplies.
17415 * doc/md.texi (Canonicalization of Instructions): Document widening
17416 multiply canonicalization.
17417
25ae05af 174182011-06-07 Jakub Jelinek <jakub@redhat.com>
17419
17420 PR gcov-profile/49299
c50e6579 17421 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
25ae05af 17422
0eee81bc 174232011-06-07 Ira Rosen <ira.rosen@linaro.org>
17424
17425 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
17426 a pointer.
17427 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
17428 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
17429 vect_recog_pow_pattern): Likewise.
17430 (vect_pattern_recog_1): Remove declaration.
17431 (widened_name_p): Remove declaration. Add new argument to specify
17432 whether to check that both types are either signed or unsigned.
17433 (vect_recog_widen_mult_pattern): Update documentation. Handle
17434 unsigned patterns and multiplication by constants.
17435 (vect_pattern_recog_1): Update vect_recog_func references. Use
17436 statement information from the statement returned from pattern
17437 detection functions.
17438 (vect_pattern_recog): Update vect_recog_func reference.
17439 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
17440 multiplication by a constant use the type of the other operand.
17441
17748811 174422011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
17443
17444 PR rtl-optimization/49145
17445 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
17446
bb4322f9 174472011-06-06 Jakub Jelinek <jakub@redhat.com>
17448
aca32d80 17449 PR debug/49262
17450 * dwarf2out.c (native_encode_initializer): Decrement count in each
17451 iteration.
17452
7938df80 17453 PR debug/49294
17454 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
17455 non-MODE_INT modes.
17456
bb4322f9 17457 PR c++/49264
17458 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
17459 if stmt folded into nothing.
c50e6579 17460 * tree-inline.c (fold_marked_statements): If a builtin at the end of
17461 a bb folded into nothing, just update cgraph edges and move to next bb.
bb4322f9 17462 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
17463 to be NULL. Don't compute count and frequency if new_call is NULL.
17464
a0605d65 174652011-06-04 Diego Novillo <dnovillo@google.com>
17466
17467 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
17468 (cgraph.o): Likewise.
17469 (cgraphunit.o): Likewise.
17470 * cgraphunit.c: Include lto-streamer.h
17471 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
17472 if LTO is enabled.
17473 * lto-streamer-in.c (unpack_value_fields): Call
17474 streamer_hooks.unpack_value_fields if set.
17475 (lto_materialize_tree): For unhandled nodes, first try to
17476 call lto_streamer_hooks.alloc_tree, if it exists.
17477 (lto_input_ts_decl_common_tree_pointers): Move reading of
17478 DECL_INITIAL to lto_streamer_read_tree.
17479 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
17480 (lto_streamer_read_tree): New.
17481 (lto_reader_init): Rename from lto_init_reader.
17482 Move initialization code to lto/lto.c.
17483 * lto-streamer-out.c (pack_value_fields): Call
17484 streamer_hooks.pack_value_fields if set.
c50e6579 17485 (lto_output_tree_ref): For tree nodes that are not normally indexable,
17486 call streamer_hooks.indexable_with_decls_p before giving up.
a0605d65 17487 (lto_output_ts_decl_common_tree_pointers): Move handling
c50e6579 17488 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
17489 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
17490 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
17491 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
a0605d65 17492 (lto_streamer_write_tree): New.
17493 (lto_output): Call lto_streamer_init directly.
17494 (lto_writer_init): Remove.
17495 * lto-streamer.c (streamer_hooks): New.
17496 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
17497 instead of lto_preload_common_nodes.
17498 (lto_is_streamable): Move from lto-streamer.h
17499 (lto_streamer_hooks_init): New.
17500 (streamer_hooks): New.
17501 (streamer_hooks_init): New.
17502 * lto-streamer.h (struct output_block): Forward declare.
17503 (struct lto_input_block): Likewise.
17504 (struct data_in): Likewise.
17505 (struct bitpack_d): Likewise.
17506 (struct streamer_hooks): Declare.
17507 (streamer_hooks): Declare.
17508 (lto_streamer_hooks_init): Declare.
17509 (lto_streamer_write_tree): Declare.
17510 (lto_streamer_read_tree): Declare.
17511 (streamer_hooks_init): Declare.
17512 (lto_is_streamable): Move to lto-streamer.c
17513
83a875e9 175142011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17515
17516 * longlong.h (smul_ppmm): The resulting register pair contains the
17517 higher order word first.
17518
0810ff17 175192011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17520
17521 PR tree-optimization/46728
17522 * builtins.c (powi_table): Remove.
17523 (powi_lookup_cost): Remove.
17524 (powi_cost): Remove.
17525 (expand_powi_1): Remove.
17526 (expand_powi): Remove.
17527 (expand_builtin_pow_root): Remove.
17528 (expand_builtin_pow): Remove.
17529 (expand_builtin_powi): Eliminate handling of constant exponent.
17530 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
c50e6579 17531
4446c883 175322011-06-06 Alexandre Oliva <aoliva@redhat.com>
17533
17534 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
17535
a6aa49aa 175362011-06-06 Alexandre Oliva <aoliva@redhat.com>
17537
17538 * dce.c (reset_unmarked_insns_debug_uses): New.
17539 (delete_unmarked_insns): Skip debug insns.
17540 (prescan_insns_for_dce): Likewise.
17541 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
17542 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
17543 active reg can be found.
17544 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
17545 (convert_regs_1): Use it.
17546
55b028fe 175472011-06-06 Alexandre Oliva <aoliva@redhat.com>
17548
17549 * tree-pretty-print.c (dump_function_header): Add flags.
17550 Don't dump decl_uid with nouid.
17551 * tree-pretty-print.h (dump_function_header): Adjust.
17552 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
17553 * passes.c (pass_init_dump_file): Pass dump_flags on.
17554 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
17555
72cb6720 175562011-06-06 Alexandre Oliva <aoliva@redhat.com>
17557
17558 PR bootstrap/49270
17559 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
17560
69010134 175612011-06-06 Mikael Pettersson <mikpe@it.uu.se>
17562
17563 PR tree-optimization/49243
17564 * calls.c (setjmp_call_p): Also check if fndecl has the
17565 returns_twice attribute.
17566
ee884cfb 175672011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17568
17569 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
17570 -ffast-math etc.
17571
8cb3a87f 175722011-06-06 Richard Henderson <rth@redhat.com>
17573 Georg-Johann Lay <avr@gjlay.de>
17574
17575 PR target/42210
17576 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
17577 New predicates.
17578 * config/avr/avr.md ("insv"): New insn expander.
17579 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
17580 "*insv.not.io", "*insv.reg"): New insns.
17581
5141388f 175822011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
17583
17584 PR target/49285
c50e6579 17585 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
17586 to nonimmediate_operand from memory_operand for the operand that is to
17587 be forced to memory by the expander. Lose the constraints.
5141388f 17588
3a88a70b 175892011-06-05 Eric Botcazou <ebotcazou@adacore.com>
17590
17591 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
17592 EH return when delayed branches are disabled.
17593
f45e47e6 175942011-06-05 Uros Bizjak <ubizjak@gmail.com>
17595
17596 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
17597 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
17598 calculation.
17599 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
17600 Simplify MODE_V1DF and MODE_V2SF handling.
17601 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
17602 Simplify MODE_SF handling.
17603
92ceb887 176042011-06-04 Jan Hubicka <jh@suse.cz>
17605
17606 PR tree-optimization/48893
17607 PR tree-optimization/49091
17608 PR tree-optimization/49179
17609 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
17610 Bounds check.
17611
29413d70 176122011-06-04 Jan Hubicka <jh@suse.cz>
17613
17614 PR lto/48954
c50e6579 17615 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
17616 bitmaps.
29413d70 17617
90b40725 176182011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
17619
17620 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
17621
2d72f3cf 176222011-06-04 Jakub Jelinek <jakub@redhat.com>
17623
17624 PR target/49281
17625 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
17626 to be strictly smaller than 1 << shiftcount.
17627
144eea3a 176282011-06-04 Jan Hubicka <jh@suse.cz>
17629
17630 PR tree-optimize/48929
17631 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
17632 of empty predicate.
17633
854aa6aa 176342011-06-04 Alexandre Oliva <aoliva@redhat.com>
17635
17636 PR debug/48333
17637 * calls.c (emit_call_1): Prefer the __builtin declaration of
17638 builtin functions.
17639
71ecfb7c 176402011-06-03 Diego Novillo <dnovillo@google.com>
17641
17642 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
17643 (lto_input_tree_pointers): Likewise.
17644 * lto-streamer-out.c (pack_value_fields): Likewise.
17645 (lto_output_tree_pointers): Likewise.
17646 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
17647 and OPTIMIZATION_NODE.
17648
1e53920f 176492011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17650
17651 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
17652 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
17653 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
17654 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
17655 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
17656 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
17657 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
17658 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
17659 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
17660 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
17661 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
17662 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
17663 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
17664 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
17665 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
17666 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
17667 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
17668 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
17669 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
17670 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
17671 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
17672 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
17673 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
17674 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
17675 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
17676 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
17677 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
17678 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
17679 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
17680 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
17681 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
17682 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
17683 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
17684 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
17685 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
17686 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
17687 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
17688 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
17689 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
17690 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
17691 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
17692 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
17693 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
17694 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
17695 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
17696 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
17697 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
17698 * system.h (MD_UNWIND_SUPPORT): Poison.
17699 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
17700 * doc/tm.texi: Regenerate.
17701 * unwind-dw2.c: Include md-unwind-support.h instead of
17702 MD_UNWIND_SUPPORT.
17703 * config/ia64/unwind-ia64.c: Likewise.
17704 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
17705
eda83832 177062011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
4bcd2e07 17707
17708 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
17709
31510e9d 177102011-06-03 Richard Henderson <rth@redhat.com>
17711 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17712
17713 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
17714 (sigill_hdlr): Correct insn, insn size.
17715 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
17716
8087ae75 177172011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17718
17719 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
17720 t-slibgcc-dummy.
17721 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
17722 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
17723 * config/mips/t-iris: Remove.
17724 * config/mips/t-irix6: New file.
17725 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
17726
506cfbc8 177272011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17728
17729 * Makefile.in (LIB2ADDEHDEP): Remove.
17730 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
17731 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
17732 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
17733 * config/t-darwin (LIB2ADDEHDEP): Remove.
17734 * config/t-freebsd (LIB2ADDEHDEP): Remove.
17735 * config/t-linux (LIB2ADDEHDEP): Remove.
17736
f05c9dfb 177372011-06-03 Diego Novillo <dnovillo@google.com>
17738
17739 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
17740 (lto_register_var_decl_in_symtab): Likewise.
17741 (lto_register_function_decl_in_symtab): Likewise.
17742 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7ba0cb54 17743 logic to uniquify_nodes.
f05c9dfb 17744
541346b9 177452011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17746
17747 * config/alpha/t-osf5: Remove.
17748 * config/alpha/t-osf-pthread: Remove.
17749 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
17750 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
17751
290a6dcf 177522011-06-03 Julian Brown <julian@codesourcery.com>
17753
17754 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
17755 (strongarm1110): Use strongarm tuning.
f45e47e6 17756 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
290a6dcf 17757 * config/arm/arm.c (arm_strongarm_tune): New.
17758 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
17759 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
17760 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
17761 setting, using previous defaults or 1 for Cortex-A5.
17762 (arm_option_override): Set max_insns_skipped from current tuning.
17763
9453bfe4 177642011-06-03 Nathan Sidwell <nathan@codesourcery.com>
17765
17766 * doc/install.texi (Options specification): Document --with-specs.
17767
2eb9782e 177682011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17769
17770 * config/arm/neon.md (orndi3_neon): Actually split it.
17771
66d42724 177722011-06-02 Alexandre Oliva <aoliva@redhat.com>
17773
17774 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
17775 * var-tracking.c (reverse_op): Limite recurse depth to 5.
17776
8a42230a 177772011-06-02 Alexandre Oliva <aoliva@redhat.com>
17778
17779 PR debug/47590
17780 * target.def (delay_sched2, delay_vartrack): New.
17781 * doc/tm.texi.in: Update.
17782 * doc/tm.texi: Rebuild.
17783 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
17784 * var-tracking.c (gate_handle_var_tracking): Likewise.
17785 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
17786 (bfin_flag_var_tracking): Drop.
17787 (output_file_start): Don't save and override flag_var_tracking.
17788 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
17789 (bfin_reorg): Test original variables.
17790 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
17791 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
17792 (ia64_flag_var_tracking): Drop.
17793 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
17794 (ia64_file_start): Don't save and override flag_var_tracking.
17795 (ia64_override_options_after_change): Ditto
17796 flag_schedule_insns_after_reload.
17797 (ia64_reorg): Test original variables.
17798 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
17799 (picochip_flag_var_tracking): Drop.
17800 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
17801 (picochip_option_override): Don't save and override
17802 flag_schedule_insns_after_reload.
17803 (picochip_asm_file_start): Ditto flag_var_tracking.
17804 (picochip_reorg): Test original variables.
17805 * config/spu/spu.c (spu_flag_var_tracking): Drop.
17806 (TARGET_DELAY_VARTRACK): Define.
17807 (spu_var_tracking): New.
17808 (spu_machine_dependent_reorg): Call it.
17809 (asm_file_start): Don't save and override flag_var_tracking.
17810
cb022464 178112011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
17812
17813 PR target/49163
17814 * config/sh/predicates.md (general_movsrc_operand): Return 0
17815 for memory and memory subreg of which address is an invalid
17816 indexed address for QI and HImode.
17817 (general_movdst_operand): Likewise.
17818
4c43a998 178192011-06-02 Eric Botcazou <ebotcazou@adacore.com>
17820
17821 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
17822 edges only, when there is a non-local label in the function.
17823 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
17824
01624f90 178252011-06-02 Uros Bizjak <ubizjak@gmail.com>
17826
17827 * config/i386/constraints.md (Y3): New register constraint.
17828 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
17829 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
17830 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
17831 *sse2_interleave_lowv2df.
17832
08969866 178332011-06-02 Julian Brown <julian@codesourcery.com>
17834
17835 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
17836 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
17837 (arm_cortex_a5_tune): New.
17838
37565543 178392011-06-02 Julian Brown <julian@codesourcery.com>
17840
285a01fc 17841 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
17842 * config/arm/arm.c (arm_default_branch_cost): New.
17843 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
17844 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
17845 (arm_fa726_tune): Set branch_cost field using
17846 arm_default_branch_cost.
17847 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
17848 current_tune structure.
17849 * dojump.c (tm_p.h): Include file.
17850
178512011-06-02 Julian Brown <julian@codesourcery.com>
17852
17853 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
17854 tuning.
37565543 17855 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
17856 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
17857 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
17858 field.
17859 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
17860 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
17861 (arm_fa726te_tune): Add prefer_constant_pool setting.
17862 (arm_v6t2_tune, arm_cortex_tune): New.
17863 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
17864 prefer_constant_pool setting.
17865
1e541240 178662011-06-02 Uros Bizjak <ubizjak@gmail.com>
17867
01624f90 17868 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
17869 switch statement.
1e541240 17870 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
17871 (*movdf_internal) <case 6,7,8>: Ditto.
17872
01624f90 17873 * config/i386/constraints.md (Y4): New register constraint.
1e541240 17874 * config/i386/sse.md (vec_set<mode>_0): Merge with
17875 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
17876 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
17877 *vec_extractv2di_1_sse.
17878 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
17879 and *vec_concatv2di_rex64_sse.
17880
f0090234 178812011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
17882
17883 PR target/48807
17884 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
17885 of cgraph_local_info for null before attempting to use it.
17886
d1ff492e 178872011-06-02 Eric Botcazou <ebotcazou@adacore.com>
17888
17889 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
17890 (current_function_dynamic_alloc_count): Delete.
17891 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
17892 (expand_builtin_nonlocal_goto): Remove obsolete comment.
17893 (expand_builtin_update_setjmp_buf): Remove dead code.
17894 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
17895 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
17896 support.
17897 * function.c (instantiate_virtual_regs): Likewise.
17898 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
17899 for a block with a single abnormal incoming edge.
17900 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
460390cf 17901 (SETJMP_VIA_SAVE_AREA): Delete.
d1ff492e 17902 * config/sparc/sparc-protos.h (load_got_register): Declare.
17903 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
17904 (load_got_register): Make global.
17905 (sparc_frame_pointer_required): Add 'static'.
17906 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
17907 (sparc_builtin_setjmp_frame_value): New function.
17908 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
17909 (save_stack_nonlocal): New expander.
17910 (restore_stack_nonlocal): Likewise.
17911 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
17912 (nonlocal_goto_internal): New insn.
17913 (goto_handler_and_restore): Delete.
17914 (builtin_setjmp_setup): Likewise.
17915 (do_builtin_setjmp_setup): Likewise.
17916 (setjmp): Likewise.
17917 (builtin_setjmp_receiver): New expander.
17918
523a6ae3 179192011-06-01 David Li <davidxl@google.com>
17920
17921 PR middle-end/49261
17922 * tree-pretty-print.c (dump_function_header): Format cleanup.
17923
73e5edb6 179242011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
17925
17926 PR target/49238
17927 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
17928 needed when original operands are used for msw_skip comparison.
17929
4951f89f 179302011-06-01 Jakub Jelinek <jakub@redhat.com>
17931
17932 PR debug/49250
17933 * var-tracking.c (add_uses, add_stores): Don't call
17934 cselib_subst_to_values on ENTRY_VALUE.
17935
bb35cf1e 179362011-06-01 Diego Novillo <dnovillo@google.com>
17937
17938 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
17939 output_record_start with LTO_null instead of output_zero.
17940 (lto_output_ts_binfo_tree_pointers): Likewise.
17941 (lto_output_tree): Likewise.
17942 (output_eh_try_list): Likewise.
17943 (output_eh_region): Likewise.
17944 (output_eh_lp): Likewise.
17945 (output_eh_regions): Likewise.
17946 (output_bb): Likewise.
17947 (output_function): Likewise.
17948 (output_unreferenced_globals): Likewise.
17949 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
17950 instead of NUM_TREE_CODES.
17951 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
17952 (lto_output_int_in_range): Change << to >> when shifting VAL.
17953
35d04dfc 179542011-06-01 Diego Novillo <dnovillo@google.com>
17955
17956 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
17957 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
17958
e09c2930 179592011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
17960
17961 PR target/45074
17962 * optabs.h (valid_multiword_target_p): Declare.
17963 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
17964 doing multi-word operations.
17965 * optabs.c (expand_binop): Likewise.
17966 (expand_doubleword_bswap): Likewise.
17967 (expand_absneg_bit): Likewise.
17968 (expand_unop): Likewise.
17969 (expand_copysign_bit): Likewise.
17970 (multiword_target_p): New function.
17971
b128b22f 179722011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
17973
17974 PR rtl-optimization/48830
17975 PR rtl-optimization/48808
17976 PR rtl-optimization/48792
17977 * reload.c (push_reload): Check contains_reg_of_mode.
17978 * reload1.c (strip_paradoxical_subreg): New function.
17979 (gen_reload_chain_without_interm_reg_p): Use it to handle
17980 paradoxical subregs.
17981 (emit_output_reload_insns, gen_reload): Likewise.
17982
855c9b82 179832011-06-01 David Li <davidxl@google.com>
17984
17985 * predict.c : Change pass name
17986 * ipa.c: Ditto.
17987 * dce.c: Ditto.
17988 * tree-profile.c: Ditto.
17989 * except.c: Ditto.
17990
7009b7bd 179912011-06-01 David Li <davidxl@google.com>
17992
17993 * tree-pretty-print.c (dump_function_header): New function.
17994 * final.c (rest_of_clean_state): Use header dumper.
17995 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
17996 * passes.c (pass_init_dump_file): Use header dumper.
17997
236e4c9e 179982011-06-01 Jakub Jelinek <jakub@redhat.com>
17999
e2ed6265 18000 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
18001 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
18002 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
18003 New functions.
18004 (mem_loc_descriptor): Use them.
18005
236e4c9e 18006 * var-tracking.c (create_entry_value): New function.
18007 (vt_add_function_parameter): Use it.
18008
43ae7603 180092011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18010
18011 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
18012 Include <signal.h>, <ucontext.h>.
18013 (sigill_caught): Define.
18014 (sigill_hdlr): New function.
18015 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
18016 insns can be executed.
1e541240 18017 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
43ae7603 18018 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
18019
63abf89e 180202011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18021
18022 * config/t-slibgcc-darwin: Move to ...
1e541240 18023 * config/t-slibgcc-dummy: ... this. Clarify comments.
63abf89e 18024 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
18025 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
18026 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
1e541240 18027 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
63abf89e 18028 Remove i386/t-crtstuff from tmake_file.
18029 (i[34567]86-*-solaris2*): Remove t-svr4,
18030 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
18031 t-slibgcc-dummy.
18032 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
18033 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
18034 sparc/t-crtfm from tmake_file.
18035 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
18036 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
18037 Remove extra_parts.
18038 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
18039 * config/i386/t-nwld (SHLIB_LINK): Remove.
18040 * config/i386/t-rtems-i386: Rename to ...
18041 * config/i386/t-rtems: ... this.
18042 ($(T)crti.o, $(T)crtn.o): Remove.
18043 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
18044 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
18045 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
18046 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
18047 EXTRA_MULTILIB_PARTS): Remove.
18048 * config/sparc/t-sol2-64: Likewise.
18049 * config/sparc/t-sol2: Remove.
18050 * config/sparc/t-crtin: Remove.
18051 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
18052 * config/i386/gmon-sol2.c: Remove.
18053 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
18054 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
18055 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
18056 * config/i386/sol2-gc1.asm: Remove.
18057 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
18058 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
18059 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
18060 * config/t-slibgcc-sld: Remove.
18061
61d45baf 180622011-06-01 Jakub Jelinek <jakub@redhat.com>
18063
18064 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
18065 base_type_for_mode with op_mode instead of mode.
18066
7d3cda8c 180672011-06-01 Paul Brook <paul@cpodesourcery.com>
18068
18069 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
18070 Cortex-A15.
18071 * config/arm/arm-tune.md: Regenerate.
18072 * config/arm/arm-tables.opt: Regenerate.
18073 * config/arm/arm.c (FL_DIV): Rename...
18074 (FL_THUMB_DIV): ... to this.
18075 (FL_ARM_DIV): Define.
18076 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
18077 (arm_arch_hwdiv): Remove.
18078 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
18079 (arm_issue_rate): Add cortexr5.
18080 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
18081 __ARM_ARCH_EXT_IDIV__.
18082 (TARGET_IDIV): Define.
18083 (arm_arch_hwdiv): Remove.
18084 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
18085 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
18086 (divsi3, udivsi3): New patterns.
18087 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
18088 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
18089
572635a5 180902011-06-01 Martin Jambor <mjambor@suse.cz>
18091
18092 * ipa-utils.c (ipa_dfs_info): New field scc_no.
18093 * ipa-utils.c (searchc): Set scc_no.
18094
c336a49e 180952011-06-01 Martin Jambor <mjambor@suse.cz>
18096
18097 * ipa-utils.c (searchc_env): New field allow_overwritable.
18098 (searchc): do not ignore edges to overwritable nodes if indicated
18099 by env->allow_overwritable.
18100 (ipa_reduced_postorder): Set env.allow_overwritable.
18101
ed61b909 181022011-06-01 Richard Guenther <rguenther@suse.de>
18103
18104 * tree.c (free_lang_data): Do not reset boolean_type_node nor
18105 char_type_node.
18106 * lto-streamer.c (lto_record_common_node): Take node pointer,
18107 do not register types.
18108 (lto_preload_common_nodes): Explicitly skip preloading nodes
18109 that differ between frontends.
18110
7d2c0823 181112011-05-31 Pat Haugen <pthaugen@us.ibm.com>
3c9df09e 18112
18113 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
18114 NON_FLOAT_REGS.
18115
7d2c0823 181162011-05-31 Pat Haugen <pthaugen@us.ibm.com>
29d2973b 18117
18118 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
18119 parameter value for dump. Dump cost on outermost call only.
18120 (rs6000_memory_move_cost): Dump cost on outermost call only.
18121
1bd906a3 181222011-05-31 Jakub Jelinek <jakub@redhat.com>
18123
6a3c8c39 18124 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
18125 DW_OP_GNU_convert ops.
18126
0ee5bf3c 18127 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
18128 cselib_preserve_constants.
18129 (cselib_lookup_1): If cselib_preserve_constants,
18130 a new VALUE is being created for REG and there is a VALUE for the
18131 same register in wider mode, add another loc with lowpart SUBREG of
18132 the wider VALUE.
18133 (cselib_subst_to_values): Handle ENTRY_VALUE.
18134 * var-tracking.c (replace_expr_with_values): Return NULL for
18135 ENTRY_VALUE too.
18136 * dwarf2out.c (convert_descriptor_to_signed): New function.
18137 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
18138 instead of two shifts.
18139 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
18140 the right mode if needed.
18141 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
18142 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
18143 convert_descriptor_to_signed.
18144 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
18145 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
18146
1bd906a3 18147 PR target/48688
18148 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
18149
c6a47dd3 181502011-05-31 Uros Bizjak <ubizjak@gmail.com>
18151
18152 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
18153 of X87MODEI12 and SWI48x instead of SSEMODEI24.
18154 (SWI248x): New mode iterator, rename from X87MODEI.
18155 (X87MODEI): Remove mode iterator.
18156 (X87MODEI12): Ditto.
18157 (SSEMODEI24): Ditto.
18158
b5c80997 181592011-05-31 Alexandre Oliva <aoliva@redhat.com>
18160
18161 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
18162 * doc/invoke.texi: Document max-vartrack-expr-depth.
18163 * var-tracking.c (EXPR_DEPTH): New.
18164 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
18165
c42ab3cf 181662011-05-31 Alexandre Oliva <aoliva@redhat.com>
18167
18168 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
18169 * config/i386/sse.md: Add n to negated FMA pattern names.
18170
400b18e7 181712011-05-31 Alexandre Oliva <aoliva@redhat.com>
18172
18173 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
18174
5479358a 181752011-05-31 Alexandre Oliva <aoliva@redhat.com>
18176
c6a47dd3 18177 * gengtype-state.c (read_state_params_structs): Initialize previous.
5479358a 18178
b928b0b2 181792011-05-31 Uros Bizjak <ubizjak@gmail.com>
18180
18181 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
18182 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
18183
181842011-05-31 Uros Bizjak <ubizjak@gmail.com>
18185
18186 * config/i386/i386.md (*movtf_internal): Avoid allocating general
18187 registers. Penalize F*r->o alternative to prevent partial memory
18188 stalls. Slightly penalize *roF->*r alternative. Generate SSE
18189 CONST_DOUBLE immediates when optimizing function for size. Do not move
18190 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
18191 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
18192 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
18193 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
18194 alternatives.
18195 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
18196
18197 (fp_register_operand splitters): Use fp_register_operand
18198 constraint. Do not use FP_REG_P in insn condition.
18199 (any_fp_register_operand splitters): Use any_fp_register_operand
18200 constraint. Do not use ANY_FP_REG_P in insn condition.
18201
7857a7b7 182022011-05-31 Jan Hubicka <jh@suse.cz>
18203
18204 * cgraph.h (cgraph_inline_failed_t): Give enum a name
18205 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
18206 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
18207 (lto_output_edge): Use output_enum and var_len_unsigned.
18208 (lto_output_varpool_node): Likewise.
18209 (input_overwrite_node): Do not take resolution parameter;
18210 extract it from a bitpack.
18211 (input_node): Do not read resolution; use input_enum and
18212 var_len_unsigned.
18213 (input_varpool_node): Likewise.
18214 (input_edge): Likewise.
18215 (input_cgraph_1): Likewise.
18216
f0e8bbbc 182172011-05-31 Richard Guenther <rguenther@suse.de>
18218
18219 * gimple.c (gimple_register_canonical_type): Do not register
18220 any types via gimple_register_type.
18221
58d2f5dd 182222011-05-31 Jan Hubicka <jh@suse.cz>
18223
18224 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
18225 of thunks.
18226
8525edb5 182272011-05-31 Jakub Jelinek <jakub@redhat.com>
18228
18229 PR rtl-optimization/49235
18230 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
18231 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
18232
83ec4165 182332011-05-31 Ira Rosen <ira.rosen@linaro.org>
18234
18235 PR tree-optimization/49093
18236 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
18237 data references.
18238
eb255359 182392011-05-31 Dodji Seketeli <dodji@redhat.com>
18240
18241 PR debug/49047
18242 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
b928b0b2 18243 for concrete functions containing the code of cloned functions.
eb255359 18244
678b2f5b 182452011-05-31 Richard Guenther <rguenther@suse.de>
18246
18247 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
18248 to ...
18249 (forward_propagate_into_comparison_1): ... this.
18250 (forward_propagate_comparison): Rename to ...
18251 (forward_propagate_into_comparison): ... this. Split out
18252 real forward propagation code to ...
18253 (forward_propagate_comparison): ... this.
18254 (forward_propagate_into_gimple_cond): Remove looping.
18255 (forward_propagate_into_cond): Likewise.
18256 (simplify_not_neg_expr): Return whether we have done something.
18257 (simplify_gimple_switch): Likewise.
18258 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
18259 (ssa_forward_propagate_and_combine): ... this. Re-structure
18260 to do a forward forward-propagation walk on BBs and a backward
b928b0b2 18261 stmt combining walk on BBs. Consistently re-scan changed statements.
678b2f5b 18262 (pass_forwprop): Adjust.
18263
84e176ba 182642011-05-30 Ian Lance Taylor <iant@google.com>
18265
18266 * godump.c (go_format_type): Correct length of name added to
18267 obstack for anonymous field.
18268
35e3c1ad 182692011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
18270
18271 PR target/49186
18272 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
18273 part of the second operand is 0.
18274
7d13df59 182752011-05-30 Uros Bizjak <ubizjak@gmail.com>
18276
18277 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
18278 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
18279 to memory for !TARGET_MEMORY_MISMATCH_STALL.
18280 (*movdf_internal_rex64): Do not penalize F->r alternative.
b928b0b2 18281 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7d13df59 18282 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
18283 when optimizing function for size. Do not move CONST_DOUBLEs
18284 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
b928b0b2 18285 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
18286 SUBREGs. Do not check for MEM_P operands in the insn condition,
7d13df59 18287 check for ANY_FP_REGNO_P instead.
18288 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
18289 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
18290 function for speed.
18291 * config/i386/i386.c (ix86_option_override_internal): Do not
18292 set TARGET_INTEGER_DFMODE_MOVES here.
18293
9e4cf85e 182942011-05-30 H.J. Lu <hongjiu.lu@intel.com>
18295
18296 PR target/49168
1e541240 18297 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
9e4cf85e 18298
f9ef3c37 182992011-05-30 Jakub Jelinek <jakub@redhat.com>
18300
18301 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
18302 DW_TAG_rvalue_reference_type even for
18303 -gdwarf-4 -fno-debug-types-section.
18304
ca12eb68 183052011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18306
18307 PR tree-optimization/46728
18308 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
18309 (build_and_insert_binop): New.
18310 (gimple_expand_builtin_pow): Reorder args for
18311 build_and_insert_call; use build_and_insert_binop; add more
18312 optimizations for fractional exponents.
7d13df59 18313
fc9c9e87 183142011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
18315
18316 PR bootstrap/49190
18317
18318 Revert:
18319 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
18320
18321 * tree.h (struct tree_identifier): Inherit from tree_typed, not
18322 tree_common.
18323 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
18324 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
18325 TS_BASE instead of TS_COMMON.
18326 * varasm.c (assemble_name): Remove assert.
18327
f7e59ca4 183282011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
18329
18330 * config.gcc: Keep obselete list sorted.
18331
04c9ad62 183322011-05-30 Jakub Jelinek <jakub@redhat.com>
18333 Eric Botcazou <ebotcazou@adacore.com>
18334
18335 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
18336 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
18337 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
18338 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
18339 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
18340
26256e53 183412011-05-30 Richard Guenther <rguenther@suse.de>
18342
18343 * gimple.c (gimple_types_compatible_p_1): Compare record
18344 and union type members properly.
18345
9ece8f57 183462011-05-30 Richard Guenther <rguenther@suse.de>
18347
18348 PR tree-optimization/49210
b928b0b2 18349 * ipa-split.c (split_function): Care for the case where the call
18350 result is not trivially convertible to the result holding variable.
9ece8f57 18351
29b71b9c 183522011-05-30 Richard Guenther <rguenther@suse.de>
18353
18354 PR tree-optimization/49218
18355 * tree-vrp.c (adjust_range_with_scev): Properly check whether
18356 overflow occured.
18357
c8126d25 183582011-05-30 Richard Guenther <rguenther@suse.de>
18359
18360 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
18361 New function split out from ...
18362 (forward_propagate_into_gimple_cond): ... here. Adjust.
18363 (forward_propagate_into_cond): Likewise.
18364 (forward_propagate_comparison): Also propagate into
18365 comparisons on assignment RHS. Change return value to
18366 behave similar to forward_propagate_into_cond.
18367 (tree_ssa_forward_propagate_single_use_vars): Handle
18368 strict-overflow warnings properly for forward_propagate_comparison.
18369
1dc619a1 183702011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18371
18372 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
18373 from plugin linker.
18374 * configure: Regenerate.
18375
eb3a666e 183762011-05-30 Ira Rosen <ira.rosen@linaro.org>
18377
18378 PR tree-optimization/49199
18379 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7d13df59 18380 non-reduction operands are either defined in the loop or by induction.
eb3a666e 18381
c3087ce0 183822011-05-29 Xinliang David Li <davidxl@google.com>
18383
18384 * opts-global.c (handle_common_deferred_options): Handle new options.
18385 * passes.c (register_one_dump_file): Call register_pass_name.
18386 (execute_one_pass): Check explicit enable/disable flag.
18387 (passr_hash): New function.
18388 (passr_eq): Ditto.
18389 (register_pass_name): Ditto.
18390 (get_pass_by_name): Ditto.
18391 (pass_hash): Ditto.
18392 (pass_eq): Ditto.
18393 (enable_pass): Ditto.
18394 (disable_pass): Ditto.
18395 (is_pass_explicitly_enabled_or_disabled): Ditto.
18396
30677884 183972011-05-29 Uros Bizjak <ubizjak@gmail.com>
18398
18399 * config/i386/i386.md (*movoi_internal_avx): Use
18400 standard_sse_constant_opcode for alternative 0.
18401 (*movti_internal_sse): Ditto.
18402 (*movti_internal_rex64): Use standard_sse_constant_opcode for
18403 alternative 2.
18404 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
18405 sselog1 type moves.
18406 (*movsi_internal): Ditto.
18407 (*movdi_internal): Ditto. Add ssecvt type moves.
18408
7cb63246 184092011-05-29 Eric Botcazou <ebotcazou@adacore.com>
18410
18411 PR target/48830
18412 * rtlanal.c (simplify_subreg_regno): Adjust comment.
18413
4ca75988 184142011-05-29 Jakub Jelinek <jakub@redhat.com>
18415
18416 PR rtl-optimization/49095
18417 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
18418 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
18419
df81f4db 184202011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
18421
18422 PR target/43995
18423 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
18424 recurse_p argument. Only follow register copies if it is set,
18425 and prevent mips_find_pic_call_symbol from recursing.
18426 (mips_find_pic_call_symbol): Add a recurse_p argument.
18427 Pass it to mips_pic_call_symbol_from_set.
18428 (mips_annotate_pic_calls): Update accordingly.
18429
47e1410d 184302011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
18431
18432 * emit-rtl.c (try_split): Use a loop to search for
18433 NOTE_INSN_CALL_ARG_LOCATIONs.
18434
451e322a 184352011-05-29 Richard Guenther <rguenther@suse.de>
18436
18437 PR tree-optimization/49217
18438 * ipa-pure-const.c (propagate_pure_const): Fix typos.
18439
894593c8 184402011-05-28 Jan Hubicka <jh@suse.cz>
18441
18442 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
18443 length.
18444 (string_slot_free): Remove
18445 (create_output_block): Initialize obstack.
18446 (destroy_output_block): Free obstack.
18447 (lto_string_index): Add PERSISTENT parameter; do not duplicate
18448 the string unless it needs to be added into the hash.
18449 (lto_output_string_with_length): Add persistent attribute;
18450 handle NULL strings.
18451 (lto_output_string): Add PERSISTENT parameter.
18452 (output_string_cst, output_identifier): Simplify.
18453 (lto_output_location_bitpack): Update.
18454 (lto_output_builtin_tree): Update.
18455 * lto-streamer.h (struct output_block): Add obstack.
30677884 18456 (lto_output_string, lto_output_string_with_length): Remove
18457 declarations; functions are static now.
894593c8 18458
34c4d8ed 184592011-05-28 Jan Hubicka <jh@suse.cz>
18460
18461 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
18462 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
18463 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
18464 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
18465 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
18466 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
18467 unpack_ts_decl_with_vis_value_fields,
18468 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
18469 lto_get_builtin_tree): Use enum and variable length i/o.
18470 * basic-block.h (profile_status_d): Add PROFILE_LAST.
18471 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
18472 New functions.
18473 (bp_pack_enum, bp_unpack_enum): New macros.
18474
792d374c 184752011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
18476
18477 * genrecog.c: Remove redundant forward declarations.
18478
6142f56e 184792011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
18480
18481 * config.gcc: Deprecate mips*-*-openbsd*.
18482
a83211d6 184832011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
18484
18485 PR bootstrap/49195
18486 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
18487 for match_op_dup.
18488
72e5da43 184892011-05-27 Andrew Pinski <pinskia@gmail.com>
18490
18491 PR middle-end/48981
18492 * gengtype.c (vec_prefix_type): New function.
18493 (note_def_vec): Use vec_prefix_type and change the length
18494 attribute to be based on the prefix.
18495 * vec.c: Include coretypes.h before vec.h.
18496 (struct vec_prefix): Remove.
18497 (vec_gc_p_reserve): Change the offsetof to sizeof.
18498 (vec_gc_p_reserve_exact): Likewise.
18499 (vec_heap_p_reserve): Likewise.
18500 (vec_heap_p_reserve_exact): Likewise.
18501 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
18502 (vec_stack_p_reserve): Change the offsetof to sizeof.
18503 (vec_stack_p_reserve_exact): Likewise.
18504 * vec.h (struct vec_prefix): New struct definition.
18505 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
18506 (VEC_T_GTY(T,B)): Likewise.
18507 (DEF_VEC_FUNC_P(T)): Use prefix field.
18508 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
18509 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
18510
ae43b05e 185112011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18512
18513 PR tree-optimization/46728
18514 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
18515 (powi_as_mults): Add gimple_set_location.
18516 (build_and_insert_call): New.
18517 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
18518 0.5, 0.25, 0.75, 1./3., or 1./6.
30677884 18519
a2145c8f 185202011-05-27 Alexander Monakov <amonakov@ispras.ru>
18521
18522 * doc/contrib.texi: Update copyright years.
18523 (Contributors): Add Zdenek Sojka.
18524
cacfdc02 185252011-05-27 Nathan Froyd <froydnj@codesourcery.com>
18526
18527 * c-decl.c (c_push_function_context): Copy the current statement
18528 list stack.
18529 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
18530 (finish_struct): Call building_stmt_list_p instead of checking
18531 cur_stmt_list.
18532 * c-parser.c (c_parser_postfix_expression): Likewise.
18533 * c-typeck.c (c_end_compound_stmt): Likewise.
18534 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
18535 * tree-iterator.c (stmt_list_cache): Change to a VEC.
18536 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
18537 (free_stmt_list): Likewise.
18538 * tree.h (struct tree_statement_list): Include typed_tree instead
18539 of tree_common.
18540 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
18541 as TS_TYPED instead of TS_COMMON.
18542
04a4c50e 185432011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7d2c0823 18544 Uros Bizjak <ubizjak@gmail.com>
04a4c50e 18545
18546 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
18547 (HAVE_AS_IX86_TLSGDPTL): Define.
18548 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
18549 (HAVE_AS_IX86_TLSLDMPLT): Define.
18550 * configure: Regenerate.
18551 * config.in: Regenerate.
18552 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
18553 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
18554 TARGET_SUN_TLS, use @tlsgdplt or @plt.
18555 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
18556 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
18557 @tlsldmplt or @plt.
18558 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
18559
6c2d9e41 185602011-05-27 Bernd Schmidt <bernds@codesourcery.com>
18561
18562 * sched-int.h (struct _haifa_deps_insn_data): New members cond
18563 and reverse_cond.
18564 (INSN_COND, INSN_REVERSE_COND): New macros.
18565 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
18566 once.
18567 (sched_get_condition_with_rev): Cache the results, and look them up
18568 if possible.
18569 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
18570 are clobbered by the current insn.
18571 * target.def (exposed_pipline): New sched data hook.
18572 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
18573 * doc/tm.texi: Regenerate.
18574
d312d7df 185752011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18576
18577 PR tree-optimization/49170
18578 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
18579 sincos or cexp.
6c2d9e41 18580
ca356add 185812011-05-27 Richard Guenther <rguenther@suse.de>
18582
18583 PR middle-end/49189
18584 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
18585 of comparisons.
18586
52d7e28c 185872011-05-27 Bernd Schmidt <bernds@codesourcery.com>
18588
18589 * haifa-sched.c (sched_scan_info): Remove.
18590 (schedule_block): Call sched_extend_luids rather than sched_init_luids
18591 with NULL args.
18592 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
18593 Remove functions.
18594 (sched_scan): Remove.
18595 (sched_extend_luids): Renamed from luids_extend_insn and no longer
18596 static. All callers changed.
18597 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
18598 static. All callers changed.
18599 (sched_init_luids): Remove all arguments except the first. All
18600 callers changed. Don't use sched_scan.
18601 (haifa_init_h_i_d): Likewise.
18602 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
18603 manually rather than using sched_init_luids. Likewise with
18604 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
18605 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
18606 rather than sched_init_luids with NULL args.
18607 * sel-sched-ir.c (new_insns): Remove variable.
18608 (sched_scan): New static function, previously in haifa-sched.c. Remove
18609 all arguments but the first two; all callers changed.
18610 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
18611 rather than sched_init_luids.
18612 (sel_init_bbs): Remove second argument. All callers changed.
18613 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
18614 with NULL arguments.
18615 (create_insn_rtx_from_pattern): Likewise.
18616 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
18617 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
18618 (sched_init_insn_luid, sched_extend_luids): Declare.
18619 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
18620 declarations.
18621
76288c9a 186222011-05-27 Richard Guenther <rguenther@suse.de>
18623
18624 PR middle-end/49177
18625 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
18626 A CMP B ? (T) true : (T) false for non-integral types T again.
18627
a12c2487 186282011-05-27 Jan Hubicka <jh@suse.cz>
18629
18630 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
18631 so 0 means NULL string.
18632 (lto_output_string_with_length): ... here.
76288c9a 18633 (lto_output_string, output_string_cst, output_identifier): Update
18634 handling of NULL strings.
a12c2487 18635 (lto_output_location_bitpack): New function.
18636 (lto_output_location): Use it.
18637 (lto_output_tree_ref): Use output_record_start.
76288c9a 18638 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
18639 len values.
18640 * lto-streamer-in.c (string_for_index): Break out from ...; offset
18641 values by 1.
30677884 18642 (input_string_internal): ... here;
76288c9a 18643 (input_string_cst, input_identifier, lto_input_string): Update handling
18644 of NULL strings.
a12c2487 18645 (lto_input_location_bitpack): New function
18646 (lto_input_location): Use it.
76288c9a 18647 (unpack_ts_type_common_value_fields): Pack align & alias in var len
18648 values.
a12c2487 18649 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
18650 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
18651 (bp_pack_value): Sanity check the value range.
18652 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
18653 New functions.
18654 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
18655 New functions.
18656
7d2c0823 186572011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
0b80d316 18658
18659 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
18660 call_arg_location instructions down the floor.
18661
bc694d56 186622011-05-26 Vladimir Makarov <vmakarov@redhat.com>
18663
18664 PR rtl-optimization/49154
18665 * ira.c (setup_pressure_classes): Process class without sublcasses
18666 as a candidate for pressure classes.
18667
2494d261 186682011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
18669
18670 PR rtl-optimization/48575
18671 * genrecog.c (position_type): New enum.
18672 (position): New structure.
18673 (decision): Use position structure instead of a string.
18674 (root_pos, peep2_insn_pos_list): New variables.
18675 (next_position, compare_positions): New functions.
18676 (new_decision): Use position structures instead of strings.
18677 (maybe_both_true): Likewise.
18678 (change_state): Likewise.
18679 (write_tree): Likewise.
18680 (make_insn_sequence): Likewise.
18681
027fc6ef 186822011-05-26 Nathan Froyd <froydnj@codesourcery.com>
18683
18684 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
18685 TS_BASE instead of TS_COMMON.
18686 (find_decls_types_r): Check for TS_TYPED structure before looking at
18687 TREE_TYPE.
18688 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
18689 Add chain field.
18690 (BLOCK_CHAIN): Use new chain field.
18691
7d2c0823 186922011-05-26 Pat Haugen <pthaugen@us.ibm.com>
0dfaa5df 18693
18694 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
18695 moves expensive on Power7 also.
18696
cea0b915 186972011-05-26 Richard Guenther <rguenther@suse.de>
18698
18699 * fold-const.c (fold_unary_loc): Remove bogus code.
18700
f21317a1 187012011-05-26 Nathan Froyd <froydnj@codesourcery.com>
18702
18703 * tree.h (struct tree_identifier): Inherit from tree_typed, not
18704 tree_common.
18705 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
18706 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
18707 TS_BASE instead of TS_COMMON.
18708 * varasm.c (assemble_name): Remove assert.
18709
04d1e93a 187102011-05-26 Bernd Schmidt <bernds@codesourcery.com>
18711
18712 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
18713 substituted first.
18714 * libgcc-std.ver: Delete file.
18715
a07f6629 187162011-05-26 Richard Guenther <rguenther@suse.de>
18717
18718 PR tree-optimization/48702
18719 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
18720 only when we know the base address is within bounds.
18721 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
18722 assume the base address of TARGET_MEM_REFs is in bounds.
18723
c37ec47f 187242011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18725
18726 PR target/49099
18727 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
18728 declaration in TARGET_SOLARIS.
18729
7d2c0823 187302011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
77af1486 18731
18732 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
30677884 18733 The instruction is then expanded explicitly.
77af1486 18734 (supported_compare): Callable instruction.
18735 (compare): Likewise.
18736
ae22319c 187372011-05-26 Jakub Jelinek <jakub@redhat.com>
18738
18739 PR c++/49165
18740 * gimplify.c (shortcut_cond_r): Don't special case
18741 COND_EXPRs if they have void type on one of their arms.
18742
8a83ab3e 187432011-05-26 Bernd Schmidt <bernds@codesourcery.com>
18744
18745 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
18746 to reduce duplication, and to achieve a slightly more logical order
18747 of operations.
18748
8b318348 187492011-05-26 Jakub Jelinek <jakub@redhat.com>
18750
18751 PR tree-optimization/49161
18752 * tree-vrp.c (struct case_info): New type.
18753 (compare_case_labels): Sort case_info structs instead of
18754 trees, and not primarily by CASE_LABEL uids but by
18755 label_for_block indexes.
18756 (find_switch_asserts): Put case labels into struct case_info
18757 array instead of TREE_VEC, adjust sorting, compare label_for_block
18758 values instead of CASE_LABELs.
18759
04931b44 187602011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18761
18762 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
18763 ("orndi3_neon"): Likewise.
18764 ("bic<mode>3_neon"): Likewise.
18765
a4ee7fac 187662011-05-26 Ira Rosen <ira.rosen@linaro.org>
18767
18768 PR tree-optimization/49038
18769 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
18770 Ensure at least one epilogue iteration if required by data
18771 accesses with gaps.
18772 * tree-vectorizer.h (struct _loop_vec_info): Add new field
18773 to mark loops that require peeling for gaps.
18774 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
18775 (vect_get_known_peeling_cost): Take peeling for gaps into
18776 account.
18777 (vect_transform_loop): Generate epilogue if required by data
18778 access with gaps.
18779 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
18780 loop as requiring an epilogue if there are gaps in the end of
18781 the strided group.
18782
85bd2ab6 187832011-05-25 Ian Lance Taylor <iant@google.com>
18784
18785 * godump.c (go_format_type): Output the first field with a usable
18786 Go type, if any.
18787
24cb5f0e 187882011-05-25 Ian Lance Taylor <iant@google.com>
18789
18790 * godump.c (go_format_type): Check for invalid type names, pointer
18791 target types, and struct field types.
18792
58ee5a30 187932011-05-25 Jason Merrill <jason@redhat.com>
18794
18795 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
18796
dd1f4650 187972011-05-25 Uros Bizjak <ubizjak@gmail.com>
18798
18799 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
18800
56911ddb 188012011-05-25 H.J. Lu <hongjiu.lu@intel.com>
18802
18803 * config/i386/i386.md (*movqi_extv_1)): Put back
18804 "register_operand" check in "type" calculation.
18805 (*movqi_extzv_2): Likewise.
18806
4d7a5fd9 188072011-05-25 H.J. Lu <hongjiu.lu@intel.com>
18808
dd1f4650 18809 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
4d7a5fd9 18810
7be359e3 188112011-05-25 Bernd Schmidt <bernds@codesourcery.com>
18812
18813 PR bootstrap/49160
18814 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
18815 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
18816 __divxc3, __divtc3): Wrap definitions in #ifndef.
18817
c5256590 188182011-05-25 H.J. Lu <hongjiu.lu@intel.com>
18819
18820 PR target/49142
18821 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
18822 "register_operand" check and replace q_regs_operand with
18823 QIreg_operand in "type" calculation.
18824 (*movqi_extv_1): Likewise.
18825 (*movqi_extzv_2_rex64): Likewise.
18826 (*movqi_extzv_2): Likewise.
18827
18828 * config/i386/predicates.md (QIreg_operand): New.
18829
061b1263 188302011-05-25 Richard Guenther <rguenther@suse.de>
18831
18832 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
18833 type-based offset disambiguation, streamline MEM_REF and
18834 TARGET_MEM_REF handling.
18835
1c0d1529 188362011-05-25 H.J. Lu <hongjiu.lu@intel.com>
18837
18838 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
18839 (bdesc_special_args): Add pause intrinsic.
18840
18841 * config/i386/i386.md (UNSPEC_PAUSE): New.
18842 (pause): Likewise.
18843 (*pause): Likewise.
18844 * config/i386/ia32intrin.h (__pause): Likewise.
18845
18846 * doc/extend.texi (X86 Built-in Functions): Add documentation for
18847 pause intrinsic.
18848
e78306af 188492011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18850
18851 PR tree-optimization/46728
18852 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
18853 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
dd1f4650 18854
1e184c62 188552011-05-25 Nathan Froyd <froydnj@codesourcery.com>
18856
18857 * tree.h (struct tree_exp): Inherit from struct tree_typed.
18858 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
18859 instead of TS_COMMON.
18860
f308a9b2 188612011-05-25 Bernd Schmidt <bernds@codesourcery.com>
18862
18863 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
18864 LIBGCC2_GNU_PREFIX is defined.
18865 (__N): New macro.
18866 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
18867 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
18868 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
18869 __clz_tab): Define using __N.
18870 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
18871 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
18872 * target.def (libfunc_gnu_prefix): New hook.
18873 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
18874 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
18875 * doc/tm.texi: Regenerate.
18876 * system.h (LIBGCC2_GNU_PREFIX): Poison.
18877 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
18878 account.
18879 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
18880 (init_optabs): Likewise for the bswap libfuncs.
18881 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
18882 and divide.
18883 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
18884 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
18885 * libgcc-std.ver: Remove.
18886 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
18887 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
18888 libgcc-std.ver.
18889 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
18890 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
18891 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
18892 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
18893 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
18894 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
18895 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
18896 * config/fixed-bit.h (FIXED_OP): Define differently depending on
18897 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
18898 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
18899
5f8d4adf 189002011-05-25 Jan Hubicka <jh@suse.cz>
18901
18902 * lto-streamer-out.c (output_record_start): Use lto_output_enum
18903 (lto_output_tree): Use output_record_start.
18904 * lto-streamer-in.c (input_record_start): Use lto_input_enum
18905 (lto_get_pickled_tree): Use input_record_start.
18906 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
18907 (lto_value_range_error): New function.
18908 * lto-streamer.h (lto_value_range_error): Declare.
18909 (lto_output_int_in_range, lto_input_int_in_range): New functions.
18910 (lto_output_enum, lto_input_enum): New macros.
18911
8c0dd614 189122011-05-25 Eric Botcazou <ebotcazou@adacore.com>
18913
18914 * common.opt (flag_stack_usage_info): New variable.
18915 (-Wstack-usage): New option.
18916 * doc/invoke.texi (Warning options): Document -Wstack-usage.
18917 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
18918 <OPT_fstack_usage>: Likewise.
18919 * toplev.c (output_stack_usage): Handle -Wstack-usage.
18920 * calls.c (expand_call): Test flag_stack_usage_info variable instead
18921 of flag_stack_usage.
18922 (emit_library_call_value_1): Likewise.
18923 * explow.c (allocate_dynamic_stack_space): Likewise.
18924 * function.c (instantiate_virtual_regs ): Likewise.
18925 (prepare_function_start): Likewise.
18926 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
18927 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
18928 * config/arm/arm.c (arm_expand_prologue): Likewise.
18929 (thumb1_expand_prologue): Likewise.
18930 * config/avr/avr.c (expand_prologue): Likewise.
18931 * config/i386/i386.c (ix86_expand_prologue): Likewise.
18932 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
18933 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
18934 * config/mips/mips.c (mips_expand_prologue): Likewise.
18935 * config/pa/pa.c (hppa_expand_prologue): Likewise.
18936 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
18937 * config/s390/s390.c (s390_emit_prologue): Likewise.
18938 * config/sh/sh.c (sh_expand_prologue): Likewise.
18939 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
18940 * config/spu/spu.c (spu_expand_prologue): Likewise.
18941
ebb9e48b 189422011-05-25 Richard Guenther <rguenther@suse.de>
18943
18944 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
18945 (gimple_canonical_types_compatible_p): Likewise.
18946
841f7bf1 189472011-05-25 Jan Hubicka <jh@suse.cz>
18948
18949 PR middle-end/49062
18950 * ipa.c (function_and_variable_visibility): Only add to same
18951 comdat group list if DECL_ONE_ONLY.
18952
680bc122 189532011-05-25 Andrey Belevantsev <abel@ispras.ru>
18954
18955 PR rtl-optimization/49014
18956 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
18957
5042e3a4 189582011-05-25 Jakub Jelinek <jakub@redhat.com>
18959
18960 PR target/49128
18961 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
18962
a977d63f 189632011-05-24 Vladimir Makarov <vmakarov@redhat.com>
18964
18965 PR rtl-optimization/48757
18966 * ira-build.c (loop_with_eh_edge_p): Rename to
18967 loop_with_complex_edge_p, check edges on complexity, make function
18968 conditional.
18969 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
18970 conditional.
18971
7d102c18 189722011-05-24 Eric Botcazou <ebotcazou@adacore.com>
18973
18974 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
18975 force flag_ira_share_save_slots to 0.
18976
c69a7a6b 189772011-05-24 Eric Botcazou <ebotcazou@adacore.com>
18978
18979 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
18980 (vt_initialize): Set PROLOGUE_BB unconditionally.
18981 Add block comment about CFA_BASE_RTX machinery.
18982 Reset FP_CFA_OFFSET to -1 on all invalid paths.
18983 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
18984
7ef1fa91 189852011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
18986
18987 PR objc/48187
18988 * c-parser.c (c_parser_objc_class_instance_variables): More robust
18989 parsing of syntax error in ObjC instance variable lists. In
18990 particular, avoid an infinite loop if there is a stray ']'.
18991 Updated error message.
18992
654a2463 189932011-05-24 Ian Lance Taylor <iant@google.com>
18994
18995 * godump.c (go_define): Don't accept a string immediately after
18996 another operand.
18997
4eac1d96 189982011-05-24 Ian Lance Taylor <iant@google.com>
18999
19000 * godump.c (struct godump_container): Add invalid_hash field.
19001 (go_format_type): Return false if type is found in invalid_hash.
19002 (go_output_typedef): Add invalid type to invalid_hash.
19003 (go_finish): Create and delete invalid_hash.
19004
e78306af 190052011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
dd1f4650 19006
e9a6c4bc 19007 PR tree-optimization/46728
19008 * tree-ssa-math-opts.c (powi_table): New.
19009 (powi_lookup_cost): New.
19010 (powi_cost): New.
19011 (powi_as_mults_1): New.
19012 (powi_as_mults): New.
19013 (gimple_expand_builtin_powi): New.
19014 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
19015 (gate_cse_sincos): Remove sincos/cexp restriction.
4eac1d96 19016
a0bd86eb 190172011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19018
19019 PR target/3746
19020 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
19021 mips-tdump native.
19022 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
19023 * mips-tdump.c: Likewise.
19024
93294988 190252011-05-24 H.J. Lu <hongjiu.lu@intel.com>
19026
19027 PR target/49128
19028 * config/i386/driver-i386.c (host_detect_local_cpu): Always
19029 add -mno-XXX. Handle FMA.
19030
c199e49c 190312011-05-24 Vladimir Makarov <vmakarov@redhat.com>
19032
19033 PR rtl-optimization/48633
19034 * ira-build.c (loop_with_eh_edge_p): New function.
19035 (mark_loops_for_removal): Use it.
19036
190372011-05-24 Vladimir Makarov <vmakarov@redhat.com>
59813b40 19038
19039 PR rtl-optimization/48971
19040 * ira.c (setup_pressure_classes): Don't check register move cost
19041 for classes with one registers. Don't add pressure class if there
19042 is a pressure class with the same available hard registers.
19043 Check contains_reg_of_mode. Fix a typo in collecting
19044 temp_hard_regset. Ignore hard registers not belonging to a class.
19045
23372c6e 190462011-05-24 Uros Bizjak <ubizjak@gmail.com>
19047
19048 PR target/49133
19049 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
19050
50f35d2e 190512011-05-24 Eric Botcazou <ebotcazou@adacore.com>
19052 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19053
19054 PR gcov-profile/48845
19055 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
19056
1ca0809c 190572011-05-24 Richard Guenther <rguenther@suse.de>
19058
19059 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
19060 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
19061 (gimple_types_compatible_p_1): Adjust.
19062 (iterative_hash_canonical_type): Do not bother about complete vs.
19063 incomplete types.
19064 (gimple_canonical_types_compatible_p): Likewise.
19065
a89638b3 190662011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19067
19068 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
19069
45014c84 190702011-05-24 Richard Guenther <rguenther@suse.de>
19071
19072 PR bootstrap/49078
19073 * gimple.c (gimple_register_canonical_type): Revert
19074 previous change.
19075 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
19076 does not for a tree for the case where it matters. Cache
19077 pointer-type alias-sets.
19078
eb65953e 190792011-05-24 Joseph Myers <joseph@codesourcery.com>
19080
19081 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
19082 (OBJS): Remove options.o, opts-common.o and prefix.o.
19083 (OBJS-libcommon-target): New.
19084 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
19085 (BACKEND): Include libcommon-target.a.
19086 (MOSTLYCLEANFILES): Include libcommon-target.a.
19087 (libcommon-target.a): New.
19088 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
19089 prefix.o.
19090
0bfbe373 190912011-05-23 Joseph Myers <joseph@codesourcery.com>
19092
19093 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
19094 parts of output shared with the driver.
19095 * optc-gen.awk: Don't generate parts of output not shared with the
19096 driver.
19097 * opth-gen.awk: Remove GCC_DRIVER conditionals.
19098 * doc/options.texi (SourcerInclude): Mention options-save.c.
19099 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
19100 (OBJS): Add options-save.o.
19101 (options-save.c, options-save.o): New.
19102 (options.o): Update dependencies.
19103 (gcc-options.o): Remove.
19104 (mostlyclean): Remove options-save.c.
19105
c6333c6e 191062011-05-23 Jakub Jelinek <jakub@redhat.com>
19107
dc0bd85b 19108 PR debug/49032
19109 * dbxout.c: Include cgraph.h.
19110 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
19111 and without value expr, return NULL if no varpool node exists for
19112 it or if it is not needed.
19113 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
19114
c6333c6e 19115 PR c/49120
19116 * c-decl.c (start_decl): Convert expr to void_type_node.
19117
b0bd0491 191182011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
19119
19120 PR rtl-optimization/48826
19121 * emit-rtl.c (try_split): When splitting a call that is followed
19122 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
19123
5f28ce61 191242011-05-23 Jakub Jelinek <jakub@redhat.com>
19125
19126 * cfgexpand.c (expand_debug_expr): For unused non-addressable
19127 parameters passed in memory prefer using DECL_INCOMING_RTL over
19128 the pseudos it will be copied into.
19129
0b70e1e3 191302011-05-23 H.J. Lu <hongjiu.lu@intel.com>
19131
19132 PR target/47315
19133 * config/i386/i386.c (ix86_option_override_internal): Save the
19134 initial options after checking vzeroupper.
19135
658c2e37 191362011-05-23 David Li <davidxl@google.com>
19137
19138 PR tree-optimization/48988
19139 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
19140 Initialize has_valid_pred for each pred chain.
19141
9c759c0a 191422011-05-23 Richard Guenther <rguenther@suse.de>
19143
19144 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
19145 (iterative_hash_gimple_type): Always hash type names.
19146
774e9d58 191472011-05-23 Nathan Froyd <froydnj@codesourcery.com>
19148
19149 * c-typeck.c (build_function_call_vec): Tweak call to
19150 check_function_arguments.
19151
e54d36c4 191522011-05-23 Richard Guenther <rguenther@suse.de>
19153
19154 PR tree-optimization/49115
19155 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
19156 is not necessarily carried out, do not claim it kills the ref.
19157 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
19158
e07c7898 191592011-05-23 Richard Guenther <rguenther@suse.de>
19160
19161 PR middle-end/15419
19162 * builtins.c (fold_builtin_memory_op): Be less restrictive about
19163 what pointer types we accept for folding.
19164
c177b341 191652011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19166
19167 * gthr-gnat.c: Remove.
19168 * gthr-gnat.h: Remove.
19169 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
19170 * config/t-freebsd (LIB2ADDEH): Likewise.
19171 * config/t-linux (LIB2ADDEH): Likewise.
19172 * config/t-sol2 (LIB2ADDEH): Likewise.
19173 * config/ia64/t-vms (LIB2ADDEH): Likewise.
19174 * configure.ac (target_thread_file): Remove gnat handling.
19175 * configure: Regenerate.
19176 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
19177
ea1e6352 191782011-05-23 Tristan Gingold <gingold@adacore.com>
19179 Eric Botcazou <ebotcazou@adacore.com>
19180
19181 * gcov.c (create_file_names): If no object directory is specified,
19182 keep the directory of the file.
19183
3f25492e 191842011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19185
19186 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
19187 * configure: Regenerate.
19188
d430af93 191892011-05-23 Jakub Jelinek <jakub@redhat.com>
19190
19191 PR middle-end/48973
19192 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
19193 failed and the comparison has a single bit signed type, use
19194 constm1_rtx instead of const1_rtx for true value.
19195 (do_store_flag): If ops->type is single bit signed type, disable
19196 signel bit test optimization and pass -1 instead of 1 as last
19197 parameter to emit_store_flag_force.
19198
dba7464a 191992011-05-23 Tom de Vries <tom@codesourcery.com>
19200
19201 PR target/45098
19202 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
19203 function.
19204 (infer_loop_bounds_from_undefined): Use new function.
19205
dd71e058 192062011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
19207
19208 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
19209 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
19210 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
19211 and -O0 otherwise.
19212 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
19213
50f4aeca 192142011-05-22 Eric Botcazou <ebotcazou@adacore.com>
19215
19216 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
19217 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
19218 returns true.
19219
6c035750 192202011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
19221
19222 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
19223
ebbcbb93 192242011-05-22 Eric Botcazou <ebotcazou@adacore.com>
19225
19226 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
19227 UNSPEC_MOVE_PIC pattern.
19228
91464496 192292011-05-22 Eric Botcazou <ebotcazou@adacore.com>
19230
19231 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
19232 (sparc-*-rtems*): Likewise.
19233 (sparc64-*-elf*): Likewise.
19234 (sparc64-*-rtems*): Likewise.
19235 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
19236 * config/sparc/t-crtin: New file.
19237 * config/sparc/t-sol2 (crti.o): Delete rule.
19238 (crtn.o): Likewise.
19239 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
19240 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
19241 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
19242 (ENDFILE_SPEC): Add crtn.o.
19243
478263cb 192442011-05-22 Tom de Vries <tom@codesourcery.com>
19245
19246 PR middle-end/48689
19247 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
19248 CODE_CONTAINS_STRUCT (TS_COMMON).
19249
fcae9057 192502011-05-22 Jakub Jelinek <jakub@redhat.com>
19251
19252 PR middle-end/49029
19253 * expmed.c (extract_fixed_bit_field): Test whether target can be used
19254 only after deciding which mode to use.
19255
5d24f4be 192562011-05-22 Tom de Vries <tom@codesourcery.com>
19257
19258 PR target/45098
b01acfb8 19259 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
5d24f4be 19260 for call to get_shiftadd_cost.
19261
cef70b8a 192622011-05-22 Uros Bizjak <ubizjak@gmail.com>
19263
19264 PR target/49104
19265 * config/i386/cpuid.h (bit_MMXEXT): New define.
19266
89a2af15 192672011-05-22 Nick Clifton <nickc@redhat.com>
19268
19269 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
19270 initialisation of non-existant args[2] element. Use args[] array
19271 not arg[] array to pass arguments to build_function_type_list.
19272
ca8206e4 192732011-05-22 Ira Rosen <ira.rosen@linaro.org>
19274
19275 PR tree-optimization/49087
cef70b8a 19276 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
ca8206e4 19277
b622b5f5 192782011-05-21 Jason Merrill <jason@redhat.com>
19279
19280 PR c++/49092
19281 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
19282 static storage duration.
19283
d74fda7a 192842011-05-21 Eric Botcazou <ebotcazou@adacore.com>
19285
19286 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
19287 frame pointer.
19288
9ddcf03c 192892011-05-21 Eric Botcazou <ebotcazou@adacore.com>
19290
19291 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
19292 false if there are call-saved registers here...
19293 (sparc_can_use_return_insn_p): ...but here instead.
19294 (save_or_restore_regs): Fix thinko.
19295 (sparc_expand_prologue): Use current_function_is_leaf.
19296 (sparc_frame_pointer_required): Likewise.
19297
3e8d9684 192982011-05-21 Nick Clifton <nickc@redhat.com>
19299
19300 PR target/49098
19301 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
19302
248c24dd 193032011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
19304
19305 * gengtype.c (walk_type): Implemented "atomic" GTY option.
19306 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
19307
1e127302 193082011-05-21 Joseph Myers <joseph@codesourcery.com>
19309
19310 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
19311 * optc-gen.awk: Move common code to opt-read.awk.
19312 * opth-gen.awk: Likewise.
cef70b8a 19313 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1e127302 19314
f2af597c 193152011-05-20 Nathan Froyd <froydnj@codesourcery.com>
19316
19317 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
19318
e0ae2fe2 193192011-05-20 Tom de Vries <tom@codesourcery.com>
19320
19321 PR target/45098
19322 * tree-ssa-loop-ivopts.c: Include expmed.h.
19323 (get_shiftadd_cost): New function.
19324 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
19325
ae4330d7 193262011-05-20 Jakub Jelinek <jakub@redhat.com>
19327
19328 PR bootstrap/49086
19329 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
19330 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
19331
f0246315 193322011-05-20 Joseph Myers <joseph@codesourcery.com>
19333
19334 * Makefile.in: Update comment referring to $(OBJS-common).
19335
32874486 193362011-05-20 Ian Lance Taylor <iant@google.com>
19337
19338 * godump.c (go_output_typedef): Put enum constants in the macro
19339 hash table to avoid duplicate Go const definitions.
19340
0b4f4daf 193412011-05-20 Joseph Myers <joseph@codesourcery.com>
19342
19343 * Makefile.in (LIBDEPS): Add libcommon.a.
19344 (LIBS): Likewise.
19345 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
19346 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
19347 pretty-print.o and version.o.
19348 (OBJS-libcommon): New.
19349 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
19350 (BACKEND): Add libcommon.a.
19351 (MOSTLYCLEANFILES): Likewise.
19352 (libcommon.a): New.
19353 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
19354 (cpp$(exeext)): Likewise.
19355 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
19356 pretty-print.o and input.o.
19357 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
19358 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
19359 (errors.o): Remove.
19360 (mips-tfile): Don't explicitly use version.o.
19361 (mips-tdump): Likewise.
19362 (gcov.o): Depend on $(DIAGNOSTIC_H).
19363 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
19364 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
19365 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
19366 * gcov-dump.c: Include intl.h and diagnostic.h.
19367 (main): Initialize diagnostics.
19368 * gcov.c: Include diagnostic.h.
19369 (fnotice): Remove.
19370 (main): Initialize diagnostics.
19371 * lto-wrapper.c: Include diagnostic.h.
19372 (main): Initialize diagnostics.
19373
aef23a85 193742011-05-20 Michael Matz <matz@suse.de>
19375
19376 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
19377
02b9b70b 193782011-05-20 Michael Matz <matz@suse.de>
19379 Richard Guenther <rguenther@suse.de>
19380
19381 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
19382 use lto_streamer_cache_append directly instead of returning a VEC.
19383 (preload_common_node): Remove.
19384 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
19385 track seen nodes.
19386 (lto_streamer_cache_create): Call lto_preload_common_nodes.
19387
06ec5ac4 193882011-05-20 Richard Guenther <rguenther@suse.de>
19389
19390 PR tree-optimization/49079
19391 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
19392 MEM_REFs correctly for the trailing array access detection.
19393 Special case constants the same way as decls for overall size
19394 constraining.
19395
6ae2c051 193962011-05-20 Uros Bizjak <ubizjak@gmail.com>
19397
19398 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
19399 argument expansion.
19400
8a245b9d 194012011-05-20 Jakub Jelinek <jakub@redhat.com>
19402
19403 PR tree-optimization/49073
6ae2c051 19404 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
19405 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8a245b9d 19406 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
19407
c9819bb0 194082011-05-20 Richard Guenther <rguenther@suse.de>
19409
19410 PR middle-end/48849
19411 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
19412 of pointer types the same way the middle-end does.
19413
4d83607a 194142011-05-20 Richard Guenther <rguenther@suse.de>
19415
6ae2c051 19416 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
19417 or pointer-to chains. Delay all fixup to uniquify_nodes.
4d83607a 19418
ad33e6a8 194192011-05-19 Quentin Neill <quentin.neill@amd.com>
19420
19421 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
19422 (fma4_fmaddsub): Likewise
19423
b2640e03 194242011-05-19 Jan Hubicka <jh@suse.cz>
19425
19426 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
19427 (GIMPLE_TYPE_PAIR_SIZE): New macro.
19428 (type_pair_cache): New static var.
19429 (lookup_type_pair): Use fixed sized custom hash; make inline.
19430 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
19431 calls of lookup_type_pair.
19432 (print_gimple_types_stats): Remove cache stats.
19433 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
19434 and gtc_ob.
19435
d9973cb4 194362011-05-19 Uros Bizjak <ubizjak@gmail.com>
19437
19438 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
19439 when TARGET_RDRND is active.
19440 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
19441 Generate dummy SImode target register when target is NULL.
19442
bcbb3950 194432011-05-19 Joseph Myers <joseph@codesourcery.com>
19444
19445 * config/arm/arm-fpus.def: New.
19446 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
19447 arm-fpus.def.
19448 * config/arm/arm-tables.opt: Regenerate.
19449 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
19450 (arm_option_override): Don't decode FPU name to string here.
19451 * config/arm/arm.opt (mfpu=): Use Enum.
19452 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
19453 Update dependencies.
19454
11091b4d 194552011-05-19 Joseph Myers <joseph@codesourcery.com>
19456
19457 * collect2.c: Include diagnostic.h.
19458 (fatal_perror, fatal, error, fancy_abort): Remove.
19459 (main): Set progname. Call xmalloc_set_program_name and
19460 diagnostic_initialize.
19461 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
19462 scan_libraries, resolve_lib_name): Call fatal_error instead of
19463 fatal and fatal_perror.
19464 * collect2.h (error, fatal, fatal_perror): Don't declare.
19465 * tlink.c: Include diagnostic-core.h.
19466 (recompile_files): Call fatal_error instead of fatal_perror.
19467 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
19468 pretty-print.o and input.o.
19469 (collect2.o, tlink.o): Update dependencies.
19470
c2b88971 194712011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19472
19473 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
19474
3468b0d6 194752011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19476
19477 PR target/40483
19478 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
19479 COMDAT group syntax, both SPARC and x86 variants.
19480 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
19481 * configure: Regenerate.
19482 * config/sol2.h (TARGET_SOLARIS): Define.
19483 (PUSHSECTION_FORMAT): Remove.
19484 (SECTION_NAME_FORMAT): Define.
19485 * config/sol2.c: Include hashtab.h.
19486 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
19487 expansion, using SECTION_NAME_FORMAT.
19488 (solaris_comdat_htab): New variable.
19489 (struct comdat_entry): Define.
19490 (comdat_hash): New function.
19491 (comdat_eq): New function.
19492 (solaris_elf_asm_comdat_section): New function.
19493 (solaris_define_comdat_signature): New function.
19494 (solaris_code_end): New function.
19495 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
19496 (solaris_code_end): Declare.
19497 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
19498 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
19499 solaris_code_end.
19500 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
19501 Remove ATTRIBUTE_UNUSED.
19502 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
19503 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
d9973cb4 19504 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
3468b0d6 19505 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
19506 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
19507 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
19508 (PUSHSECTION_FORMAT): Remove.
19509 (SECTION_NAME_FORMAT): Redefine.
19510
d515ee79 195112011-05-19 Kai Tietz <ktietz@redhat.com>
19512
19513 * tree-cfg.c (verify_gimple_assign_binary): Barf on
19514 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
19515 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
19516
8d1c633d 195172011-05-19 Anatoly Sokolov <aesok@post.ru>
f5030be1 19518 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19519
19520 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
19521
dda02ea2 195222011-05-19 Richard Guenther <rguenther@suse.de>
19523
19524 PR middle-end/48985
19525 * tree-object-size.c (addr_object_size): If the pointed-to
19526 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
19527
bddb3763 195282011-05-19 Richard Guenther <rguenther@suse.de>
19529
19530 * gimple.c (gimple_types_compatible_p_1): Compare names of
19531 the types themselves.
19532 (iterative_hash_gimple_type): And hash them that way.
19533 (gimple_register_type_1): If we register a main variant properly
19534 initialize the leader to ourselves.
19535
055d6bb2 195362011-05-19 Tom de Vries <tom@codesourcery.com>
19537
19538 PR target/45098
19539 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
19540 get_loop_invariant_expr_id.
19541 (get_loop_invariant_expr_id): Use get_expr_id.
19542 (parm_decl_cost): New function.
19543 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
19544 Improve bound cost estimation. Use different inv_expr_id for elim and
19545 express cases.
19546
ee36045b 195472011-05-19 Tom de Vries <tom@codesourcery.com>
19548
19549 PR target/45098
19550 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
19551 cost_base.cost == 0.
19552
03f65847 195532011-05-18 H.J. Lu <hongjiu.lu@intel.com>
19554
19555 PR target/49002
7d2c0823 19556 * config/i386/sse.md
19557 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
19558 load cast.
03f65847 19559
556a56dd 195602011-05-18 Jakub Jelinek <jakub@redhat.com>
19561
19562 PR tree-optimization/49039
19563 * tree-vrp.c (extract_range_from_binary_expr): For
19564 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
19565 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
19566
9881cd2d 195672011-05-18 Tom de Vries <tom@codesourcery.com>
19568
19569 PR target/45098
19570 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
19571
b26e9e37 195722011-05-18 Uros Bizjak <ubizjak@gmail.com>
19573
19574 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
19575 (*tls_global_dynamic_64): Ditto.
19576 (*tls_local_dynamic_base_32_gnu): Ditto.
19577 (*tls_local_dynamic_base_64): Ditto.
19578 (tls_initial_exec_64_sun): Ditto.
19579
0d7700ef 195802011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
19581
19582 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
19583 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
19584 bf592-none.
19585 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
19586 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
19587 * config/bfin/bfin.c (bfin_cpus): Add bf592.
19588 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
b26e9e37 19589 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
0d7700ef 19590 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
19591 * config/bfin/elf.h (LIB_SPEC): Add bf592.
19592
8bbee4a9 195932011-05-18 Joseph Myers <joseph@codesourcery.com>
19594
19595 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
b26e9e37 19596 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
8bbee4a9 19597 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
19598 target_thread_pointer, arm_structure_size_boundary, struct
19599 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
19600 struct abi_name, arm_all_abis): Remove.
b26e9e37 19601 (arm_option_override) Don't process most enumerated option values here.
19602 Don't process target_fpe_name here. Work with integer not string for
19603 structure size boundary; use separate diagnostics for each case.
8bbee4a9 19604 * config/arm/arm.h (enum float_abi_type, enum
19605 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
19606 to arm-opts.h.
19607 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
19608 arm_structure_size_boundary): Remove.
19609 * config/arm/arm.opt (mabi=): Use Enum and Init.
19610 (arm_abi_type): New Enum and EnumValue entries.
19611 (mfloat-abi=): Use Enum and Init.
19612 (float_abi_type): New Enum and EnumValue entries.
b26e9e37 19613 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
8bbee4a9 19614 (mfp16-format=): Use Enum and Init.
19615 (arm_fp16_format_type): New Enum and EnumValue entries.
19616 (mstructure-size-boundary=): Use UInteger and Init.
19617 (mtp=): Use Enum and Init.
19618 (arm_tp_type): New Enum and EnumValue entries.
19619
b523dd6d 196202011-05-18 Richard Guenther <rguenther@suse.de>
19621
19622 PR tree-optimization/49018
19623 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
19624 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
19625 gimple_has_side_effects.
19626
ce89f696 196272011-05-18 Richard Guenther <rguenther@suse.de>
19628
19629 * gimple.c (gimple_register_type_1): New function, split out from ...
19630 (gimple_register_type): ... here. Avoid infinite recursion.
19631
39a5d6b1 196322011-05-18 Ira Rosen <ira.rosen@linaro.org>
19633
19634 PR tree-optimization/41881
19635 * tree-vectorizer.h (struct _loop_vec_info): Add new field
19636 reduction_chains along with a macro for its access.
19637 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
19638 (destroy_loop_vec_info): Free reduction chains.
19639 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
19640 (vect_is_slp_reduction): New function.
19641 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
19642 (vect_create_epilog_for_reduction): Support SLP reduction chains.
19643 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
19644 definition types for reduction chains.
19645 (vect_supported_load_permutation_p): Don't allow permutations for
19646 reduction chains.
19647 (vect_analyze_slp_instance): Support reduction chains.
19648 (vect_analyze_slp): Try to build SLP instance from reduction chains.
19649 (vect_get_constant_vectors): Handle reduction chains.
19650 (vect_schedule_slp_instance): Mark the first statement of the
19651 reduction chain as reduction.
19652
21009880 196532011-05-18 Ira Rosen <ira.rosen@linaro.org>
19654
19655 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
19656 names for group elements access.
19657 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
19658 reduction chains as well. Remove data reference and interleaving
19659 related words from the fields names.
19660 * tree-vect-loop.c (vect_transform_loop): Use new names for group
19661 elements access.
19662 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
19663 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
19664 vect_update_interleaving_chain, vect_same_range_drs,
19665 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
19666 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
19667 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
19668 vect_analyze_group_access, vect_analyze_data_ref_access,
19669 vect_create_data_ref_ptr, vect_transform_strided_load,
19670 vect_record_strided_load_vectors): Likewise.
19671 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
19672 vect_model_load_cost, vectorizable_store, vectorizable_load,
19673 vect_remove_stores, new_stmt_vec_info): Likewise.
19674 * tree-vect-slp.c (vect_build_slp_tree,
19675 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
19676
9ad3a576 196772011-05-18 Richard Guenther <rguenther@suse.de>
19678
19679 PR middle-end/48989
19680 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
19681 operand verification.
19682 (verify_gimple_assign_binary): Likewise.
19683 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
19684 to non-1-precision BOOLEAN_TYPEs.
19685
4fb583ad 196862011-05-18 Tom de Vries <tom@codesourcery.com>
19687
19688 PR target/45098
19689 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
19690
fd2b4bf0 196912011-05-18 Jakub Jelinek <jakub@redhat.com>
19692
19693 PR tree-optimization/49000
19694 * tree-ssa.c (execute_update_addresses_taken): Call
19695 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
19696 be rewritten and decl has been marked for renaming, reset
19697 the debug stmt.
19698
0ea4d98d 196992011-05-17 Joseph Myers <joseph@codesourcery.com>
19700
19701 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
19702 enum_opts_set when testing if attributes have set -mfpmath=.
19703
3eb76ba5 197042011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
19705
19706 * config/mips/mips.c (mips_handle_option): Remove unused variable.
19707
839c5aac 197082011-05-17 Uros Bizjak <ubizjak@gmail.com>
19709
19710 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
19711 info->entry with 0
19712 * tree-inline.c (maybe_inline_call_in_expr): Initialize
19713 id.transform_lang_insert_block with NULL.
19714
197152011-05-17 Uros Bizjak <ubizjak@gmail.com>
ca242583 19716
19717 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
19718 (output_fp_compare): Change args 3 and 4 to bool.
19719 (ix86_expand_call): Change arg 6 to bool.
19720 (ix86_attr_length_immediate_default): Change arg 2 to bool.
19721 (ix86_attr_length_vex_default): Change arg 3 to bool.
19722 * config/i386/i386.md: Update all uses.
19723 * config/i386/i386.c: Ditto.
19724 (ix86_flags_dependent): Change return type to bool.
19725
e8dcede0 197262011-05-17 Richard Guenther <rguenther@suse.de>
19727
19728 * gimple.c (type_hash_pair_compare): Fix comparison.
19729
f5e139e8 197302011-05-17 Richard Guenther <rguenther@suse.de>
19731
19732 * gimple.c (iterative_hash_gimple_type): Simplify singleton
19733 case some more, fix final hash value of the non-singleton case.
19734
e47af1f1 197352011-05-17 Richard Guenther <rguenther@suse.de>
19736
19737 PR bootstrap/49013
19738 Revert
19739 2011-05-16 Richard Guenther <rguenther@suse.de>
19740
19741 * gimple.c (gimple_types_compatible_p_1): Use names of the
19742 type itself, not its main variant.
19743 (iterative_hash_gimple_type): Likewise.
19744
46237a73 197452011-05-17 Richard Guenther <rguenther@suse.de>
19746
19747 * gimple.c (gimple_register_canonical_type): Use the main-variant
19748 leader for computing the canonical type.
19749
7e6e7156 197502011-05-17 Nick Clifton <nickc@redhat.com>
19751
6145a46d 19752 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
19753 moves.
19754
7e6e7156 19755 * config/rx/rx.md: Add peephole to remove redundant extensions
19756 after loads.
5341fa53 19757 (bitset_in_memory): Use rx_restricted_mem_operand.
19758 (bitinvert_in_memory): Likewise.
19759 (bitclr_in_memory): Likewise.
7e6e7156 19760
5c07e5ac 197612011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
19762 Nick Clifton <nickc@redhat.com>
19763
19764 * config/rx/rx.md: Add peepholes to match a register move followed
19765 by a comparison of the moved register. Replace these with an
19766 addition of zero that does both actions in one instruction.
19767
feb218cb 197682011-05-17 Jakub Jelinek <jakub@redhat.com>
19769
19770 PR target/48986
19771 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
19772 predicate to allow CONST_INT.
19773 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
19774
9105695c 197752011-05-16 Joseph Myers <joseph@codesourcery.com>
19776
19777 * opts-common.c (opt_enum_arg_to_value): New.
19778 * opts.h (opt_enum_arg_to_value): Declare.
19779 * config/i386/i386.opt (fpmath): Remove.
19780 (mfpmath=): Use Enum, Init and Save.
19781 (fpmath_unit): New Enum and EnumValue entries.
19782 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
19783 name for function fpmath state.
19784 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
19785 * config/i386/i386.c: Include diagnostic.h.
19786 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
ca242583 19787 (ix86_target_string): Take enum fpmath_unit value instead of string.
9105695c 19788 (ix86_debug_options): Update call to ix86_target_string.
ca242583 19789 (ix86_option_override_internal): Don't process fpmath strings here.
9105695c 19790 (x86_function_specific_save, ix86_function_specific_restore):
19791 Don't handle fpmath state specially.
19792 (ix86_function_specific_print): Pass fpmath state to
19793 ix86_target_string instead of printing in this function.
19794 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
19795 Handle enum attributes.
19796 (IX86_ATTR_ENUM, ix86_opt_enum): New.
19797 (ix86_valid_target_attribute_tree): Update option_strings
19798 handling. Handle fpmath as enum option.
19799 (ix86_can_inline_p): Update field names for function fpmath state.
19800 (ix86_expand_builtin): Update call to ix86_target_string.
19801 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
19802 (ix86_fpmath): Remove.
19803 * config/i386/t-i386 (i386.o): Update dependencies.
19804
e9a7bf99 198052011-05-16 Joseph Myers <joseph@codesourcery.com>
19806
19807 PR preprocessor/48677
19808 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
19809 from decoded_options[0], not from itself.
19810
25d5a263 198112011-05-16 Uros Bizjak <ubizjak@gmail.com>
19812
19813 * config/i386/constraints.md (z): New constraint.
19814 * config/i386/i386.c (c): New mode attribute.
19815 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
19816 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
19817 constraint for operand 0.
19818 (*call_vzeroupper): Ditto.
19819 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
19820 (*call_rex64_ms_sysv_vzeroupper): Ditto.
19821 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
19822 Use "lzm" constraint for operand 0.
19823 (*call_pop_vzeroupper): Ditto.
19824 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
19825 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
19826 constraint for operand 0.
19827 (*sibcall_vzeroupper): Ditto.
19828 (*sibcall_rex64_ms_sysv): Ditto.
19829 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
19830 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
19831 *sibcall_pop_1. Use "Uz" constraint for operand 0.
19832 (*sibcall_pop_vzeroupper): Ditto.
19833 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
19834 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
19835 mode iterator. Use "<c>zm" constraint for operand 1.
19836 (*call_value_vzeroupper): Ditto.
19837 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
ca242583 19838 for operand 1.
25d5a263 19839 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
19840 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
19841 *call_value_pop_1. Use "lzm" constraint for operand 1.
19842 (*call_value_pop_vzeroupper): Ditto.
19843 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
19844 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
19845 mode iterator. Use "Uz" constraint for operand 1.
19846 (*sibcall_value_vzeroupper): Ditto.
19847 (*sibcall_value_rex64_ms_sysv): Ditto.
19848 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
19849 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
19850 constraint for operand 1.
19851 (*sibcall_value_pop_vzeroupper): Ditto.
19852 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
19853 and "z" constraint for operand 2.
19854 (*tls_global_dynamic_32_gnu): Ditto.
19855 (*tls_local_dynamic_base_32_gnu): Ditto.
19856 (*tls_local_dynamic_base_64): Ditto.
19857 (*tls_local_dynamic_32_once): Ditto.
19858 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
19859 Update all callers.
19860 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
19861
9351e6d9 198622011-05-16 Richard Guenther <rguenther@suse.de>
19863
19864 * gimple.c (gimple_types_compatible_p_1): Use names of the
19865 type itself, not its main variant.
19866 (iterative_hash_gimple_type): Likewise.
19867
dc9aeee0 198682011-05-16 Richard Guenther <rguenther@suse.de>
19869
25d5a263 19870 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
19871 always visit pointer target and function result and argument types.
dc9aeee0 19872
18642e81 198732011-05-16 Jason Merrill <jason@redhat.com>
19874
19875 PR c++/48999
19876 * tree-inline.c (copy_statement_list): Put back recursion.
19877
db19f75e 198782011-05-16 Georg-Johann Lay <avr@gjlay.de>
19879
19880 PR target/27663
19881 PR target/41076
19882 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
19883 * config/avr/avr.md ("*ior<mode>qi.byte0",
19884 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
19885
04f600bb 198862011-05-16 Georg-Johann Lay <avr@gjlay.de>
19887
19888 PR target/45099
19889 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
19890 register is needed for a function argument.
19891
9532776c 198922011-05-16 Richard Guenther <rguenther@suse.de>
19893
19894 * gimple.c (struct type_hash_pair): New type.
19895 (type_hash_pair_compare): New function.
25d5a263 19896 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
9532776c 19897
9973add0 198982011-05-16 Revital Eres <revital.eres@linaro.org>
19899
25d5a263 19900 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
9973add0 19901
6a1210e5 199022011-05-15 Uros Bizjak <ubizjak@gmail.com>
19903
19904 * config/i386/i386.md (floating point move splitters): Fix
19905 usage of standard_80387_constant_p.
25d5a263 19906 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
6a1210e5 19907
751f709b 199082011-05-15 Uros Bizjak <ubizjak@gmail.com>
19909
19910 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
19911
2fd20c29 199122011-05-14 Eric Botcazou <ebotcazou@adacore.com>
19913
19914 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
19915 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
19916 (tree_ssa_lim_finalize): Likewise.
19917
ec679bd0 199182011-05-14 Uros Bizjak <ubizjak@gmail.com>
19919
19920 * config/i386/constraint.md (Yd, Yx): New register constraints.
19921 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
19922 Yd conditional register constraint.
19923 (*movtf_internal): Use standard_sse_constant_opcode.
19924 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
19925 Yx conditional register constraint.
19926 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
19927 Yd conditional register constraint. Use standard_sse_constant_p to
19928 check for valid SSE constants and call standard_sse_constant_opcode to
19929 output SSE insn.
19930 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
19931 constants and call standard_sse_constant_opcode to output SSE insn.
19932 * config/i386/i386.c (ix86_option_ovverride_internal): Set
19933 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
19934 optimize_size is set.
19935 (standard_sse_constant_opcode): Output conditional AVX insn templates.
19936
9e412fd2 199372011-05-14 Tobias Burnus <burnus@net-b.de>
19938
19939 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
19940
93f713da 199412011-05-13 Martin Jambor <mjambor@suse.cz>
19942
19943 * ipa-prop.c (ipa_cst_from_jfunc): New function.
19944 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
19945 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
19946 (evaluate_conditions_for_ipcp_clone): Removed.
19947 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
19948 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
19949 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
19950
6d31b223 199512011-05-13 Eric Botcazou <ebotcazou@adacore.com>
19952
19953 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
19954 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
19955 lieu of MAY_HAVE_DEBUG_STMTS.
19956 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
19957 debug statements if !MAY_HAVE_DEBUG_STMTS.
19958
e95cac88 199592011-05-13 Martin Thuresson <martint@google.com>
19960
19961 PR gcov-profile/47793
19962 * libgcov.c (gcov_exit): Support relative profile paths.
19963 * doc/invoke.texi (-fprofile-dir): Update for above change.
19964
8b55830c 199652011-05-13 Richard Guenther <rguenther@suse.de>
19966
19967 * gimple.c (gimple_canonical_types_compatible_p): Do not use
19968 type-pair caching, do not compare hashes.
19969
afec0a77 199702011-05-13 Nathan Froyd <froydnj@codesourcery.com>
19971
19972 PR middle-end/48965
19973 * tree-cfg.c (edge_to_cases_cleanup): Return true.
19974 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
19975
d994b25f 199762011-05-13 Kai Tietz <ktietz@redhat.com>
19977
19978 * gimplify.c (gimplify_expr): Make sure operand is boolified.
19979 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
19980 compatible type for TRUTH_NOT_EXPR.
19981
2db1a5bf 199822011-05-13 H.J. Lu <hongjiu.lu@intel.com>
19983
6d31b223 19984 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2db1a5bf 19985 (ix86_hard_regno_mode_ok): Change return value to bool. Use
19986 can_create_pseudo_p ().
19987
1f51cf89 199882011-05-13 Richard Guenther <rguenther@suse.de>
19989
19990 PR lto/48978
19991 * gimple.c (iterative_hash_gimple_type): Revert change in
19992 pointer target and function result and argument hashing.
19993
6e079bbc 199942011-05-13 Uros Bizjak <ubizjak@gmail.com>
19995
19996 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
19997 (*movxf_internal_nointeger): Ditto.
19998 (*movdf_internal_rex64): Ditto.
19999 (*movdf_internal): Ditto.
20000 (*movdf_internal_nointeger): Ditto.
20001 (*movsf_internal): Ditto.
20002 (sincos splitters): Use can_create_pseudo ().
20003
c16ca027 200042011-05-13 Joseph Myers <joseph@codesourcery.com>
20005
20006 * config/i386/i386-opts.h: New.
20007 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
20008 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
20009 ix86_section_threshold): Remove.
20010 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
20011 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
20012 OPT_mbranch_cost_.
20013 (ix86_option_override_internal): Don't decode strings for options
20014 other than -march=, -mtune= and -mfpmath=. Don't allow for
20015 __attribute__ uses in remaining diagnostics for options with
6e079bbc 20016 string arguments. Don't check for integer arguments being negative.
c16ca027 20017 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
6e079bbc 20018 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
c16ca027 20019 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
20020 ix86_branch_cost, ix86_section_threshold): Remove.
20021 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
20022 HeaderInclude.
20023 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
20024 but not Var.
20025 (masm=): Use Enum and Init.
20026 (asm_dialect): New Enum and EnumValue entries.
20027 (mbranch-cost=): Use UInteger.
20028 (mlarge-data-threshold=): Use UInteger and Init.
20029 (mcmodel=): Use Enum and Init.
20030 (cmodel): New Enum and EnumValue entries.
20031 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
20032 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
20033 mregparm=): Use UInteger.
20034 (mstringop-strategy=): Use Enum and Init.
20035 (stringop_alg): New Enum and EnumValue entries.
20036 (mtls-dialect=): Use Enum and Init.
20037 (tls_dialect): New Enum and EnumValue entries.
20038 (mabi=): Use Enum and Init.
20039 (calling_abi): New Enum and EnumValue entries.
20040 (mveclibabi=): Use Enum and Init.
20041 (ix86_veclibabi): New Enum and EnumValue entries.
20042
710e2b30 200432011-05-13 Nick Clifton <nickc@redhat.com>
20044
6e079bbc 20045 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
20046 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
710e2b30 20047
008eaf24 200482011-05-13 Kai Tietz <ktietz@redhat.com>
20049
20050 PR middle-end/48984
20051 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
20052 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
20053 (gimple_boolify): Check for cast for boolean_type_node instead for
20054 BOOLEAN_TYPE.
20055
b43efa05 200562011-05-13 Richard Guenther <rguenther@suse.de>
20057
20058 PR tree-optimization/48172
20059 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
20060 multiplying by number of iterations for equal step.
20061 (vect_create_cond_for_alias_checks): Likewise.
20062
bc6c87c1 200632011-05-13 Andreas Schwab <schwab@redhat.com>
20064
20065 * configure.ac: Use AS_HELP_STRING throughout.
20066 * configure: Regenerate.
20067
7da01271 200682011-05-12 H.J. Lu <hongjiu.lu@intel.com>
20069
6e079bbc 20070 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
7da01271 20071 (ix86_emit_restore_regs_using_mov): Likewise.
20072 (ix86_emit_restore_sse_regs_using_mov): Likewise.
20073
5d57e68b 200742011-05-12 Anatoly Sokolov <aesok@post.ru>
20075
20076 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
20077 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
20078 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
20079 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
20080 RTX_OK_FOR_OLO10_P): ...here.
20081 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
20082 SYMBOLIC_CONST.
20083
4c7817e5 200842011-05-12 Kai Tietz <ktietz@redhat.com>
20085
20086 * gimplify.c (gimple_boolify): Re-boolify expression
20087 arguments even if expression type is of kind BOOLEAN_TYPE.
20088 (gimplify_boolean_expr): Removed.
20089 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
20090 and XOR. Additional take care that we keep expression's type.
20091 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
20092 of TRUTH_AND|OR|XOR_EXPR.
20093
39760a87 200942011-05-12 Jakub Jelinek <jakub@redhat.com>
20095
20096 PR tree-optimization/48975
20097 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
20098 on all bbs here and free and clear ifc_bbs at the end.
20099
488a4664 201002011-05-12 Richard Guenther <rguenther@suse.de>
20101
20102 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
20103 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
20104 until after simple checks.
20105 (gimple_types_compatible_p): Likewise.
20106 (iterative_hash_gimple_type): Always hash pointer targets
20107 and function return and argument types.
20108 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
20109 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
20110 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
20111 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
20112 completely in the simple compare section.
20113 (gimple_register_canonical_type): Query the cache again after
20114 registering.
20115
76d8ef3b 201162011-05-12 Richard Guenther <rguenther@suse.de>
20117
20118 PR tree-optimization/48172
20119 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
20120 the number of iterations from the segment size calculation.
20121 (vect_create_cond_for_alias_checks): Adjust.
20122
ca88a6ea 201232011-05-12 Jakub Jelinek <jakub@redhat.com>
20124
20125 PR debug/48967
20126 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
20127 if validate_subreg fails.
20128
201292011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
861b8aab 20130
20131 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
20132 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
20133 early.
20134
103700c7 201352011-05-12 DJ Delorie <dj@redhat.com>
20136
92514c2f 20137 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
103700c7 20138 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
20139 created builtin into rx_builtins array.
20140 (rx_builtin_decl): New function.
6e079bbc 20141 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
103700c7 20142
f7fcec1a 201432011-05-12 DJ Delorie <dj@redhat.com>
20144 Nick Clifton <nickc@redhat.com>
20145
20146 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
20147 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
20148 (rx_is_legitimate_address): Add pre-decrement and post-increment
20149 addressing in HImode and QImode. Fix test for out of range
20150 REG+INT addressing.
103700c7 20151 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
6e079bbc 20152 (rx_align_for_label): Test label before extracting its usage count.
f7fcec1a 20153 (rx_adjust_insn_lengths): Fix selection of insn codes.
103700c7 20154 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
f7fcec1a 20155
381824bd 201562011-05-11 Jason Merrill <jason@redhat.com>
20157
20158 * tree.c (type_hash_canon): Use struct tree_type_non_common.
20159
53105d88 201602011-05-11 Eric Botcazou <ebotcazou@adacore.com>
20161
20162 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
20163 reindent the subsequent block.
20164
3cb9bbfa 201652011-05-11 Satoru Takabayashi <satorux@google.com>
20166 Paul Pluzhnikov <ppluzhnikov@google.com>
20167
6e079bbc 20168 * doc/install.texi (Configuration): Document --with-linker-hash-style.
c1c901bf 20169 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
20170 * config.in: Add LINKER_HASH_STYLE.
20171 * configure.ac: Add --with-linker-hash-style.
20172 * configure: Regenerate.
3cb9bbfa 20173
4088c72c 201742011-05-11 Richard Guenther <rguenther@suse.de>
20175
20176 PR middle-end/48964
20177 * gimple.c (iterative_hash_canonical_type): Fix typo.
20178
a5421f96 201792011-05-11 Uros Bizjak <ubizjak@gmail.com>
20180
20181 * config/i386/i386.c (legitimize_tls_address)
ec679bd0 20182 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
a5421f96 20183 expanders directly for TARGET_GNU2_TLS. Determine pic and
20184 __tls_get_addr symbol reference here. Update call to
20185 gen_tls_global_dynamic_{32,64} for added arguments.
ec679bd0 20186 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
a5421f96 20187 expanders directly for TARGET_GNU2_TLS. Determine
20188 __tls_get_addr symbol reference here. Update call to
20189 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
20190 unique UNSPEC REG_EQUIV to libcall block.
20191 (ix86_tls_get_addr): Declare static.
20192 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
20193 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
20194 Do not determine pic and __tls_get_addr symbol reference here. Do not
20195 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
20196 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
20197 (tls_global_dynamic_64): Add operand 2. Do not determine
20198 __tls_get_addr symbol reference here. Do not call
20199 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
20200 (tls_local_dynamic_base64): Ditto for operand 1.
20201
f8c438a1 202022011-05-11 Eric Botcazou <ebotcazou@adacore.com>
20203
20204 * function.c (expand_function_start): Initialize stack_check_probe_note
20205 only if the generic stack checking mechanism is used.
20206
26f54bd0 202072011-05-11 Richard Guenther <rguenther@suse.de>
20208
20209 PR tree-optimization/15256
20210 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
20211 (A & B) | C, combine (A op CST1) op CST2.
20212 (tree_ssa_forward_propagate_single_use_vars): Only bother to
20213 visit assigns that have uses.
20214
8f2eb9e1 202152011-05-11 Nathan Froyd <froydnj@codesourcery.com>
20216
a5421f96 20217 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
8f2eb9e1 20218 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
20219 (unpack_ts_type_common_value_fields): ...this. Update comment.
20220 (unpack_value_fields): Adjust for renaming.
20221 (lto_input_ts_type_tree_pointers): Split into...
20222 (lto_input_ts_type_common_tree_pointer): ...this and...
20223 (lto_input_ts_type_non_common_tree_pointers): ...this.
20224 (lto_input_tree_pointers): Adjust for above split.
20225 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
20226 (pack_ts_type_common_value_fields): ...this. Update comment.
20227 (lto_output_ts_type_tree_pointers): Split into...
20228 (lto_output_ts_type_common_tree_pointers): ...this and...
20229 (lto_output_ts_type_non_common_tree_pointers): ...this.
20230 (lto_output_tree_pointers): Adjust for above split.
20231 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
20232 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
20233 * stor-layout.c (vector_type_mode): Adjust location of mode field.
20234 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
20235 Define.
20236 (struct tree_type): Split into...
20237 (struct tree_type_common: ...this and...
20238 (struct tree_type_with_lang_specific): ...this and...
20239 (struct tree_type_non_common): ...this. Adjust accessor macros
20240 accordingly.
20241 (TYPE_VALUES_RAW): Define.
20242 (union tree_node): Update for above changes.
20243 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
20244 TS_TYPE_NON_COMMON.
20245 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
20246 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
20247 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
20248 * treestructu.def (TS_TYPE): Remove.
20249 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
20250 Define.
20251
8ebd8f29 202522011-05-11 Jakub Jelinek <jakub@redhat.com>
20253
20254 PR debug/48159
20255 * tree-ssa.c (reset_debug_uses): New function.
20256 * tree-flow.h (reset_debug_uses): New prototype.
20257 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
20258 * tree-loop-distribution.c (generate_loops_for_partition): Call
20259 reset_debug_uses on the stmts that will be removed. Keep around
20260 all debug stmts, don't count them as bits in partition bitmap.
20261 (generate_builtin): Don't count debug stmts or labels as bits in
20262 partition bitmap.
20263
564cba5f 202642011-05-11 Richard Guenther <rguenther@suse.de>
20265
20266 * gimple.c (gimple_type_hash_1): Merge with ...
20267 (gimple_type_hash): ... this.
20268 (gtc_visit): Remove mode parameter and simplify accordingly.
20269 (gimple_types_compatible_p_1): Likewise.
20270 (gimple_types_compatible_p): Likewise.
20271 (iterative_hash_gimple_type): Likewise.
20272 (visit): Likewise.
20273 (gimple_type_eq): Adjust.
20274
6f7f081f 202752011-05-11 Revital Eres <revital.eres@linaro.org>
20276
20277 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
20278 enters the branch create an anti edge in the opposite direction
20279 to prevent the creation of reg-moves.
20280 * modulo-sched.c: Adjust comment to reflect the fact we are
20281 scheduling closing branch.
20282 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
20283 (stage_count): New field in struct partial_schedule.
20284 (calculate_stage_count): New function.
20285 (normalize_sched_times): Rename to reset_sched_times and handle
20286 incrementing the sched time of the nodes by a constant value
20287 passed as parameter.
20288 (duplicate_insns_of_cycles): Skip closing branch.
20289 (sms_schedule_by_order): Schedule closing branch.
20290 (ps_insn_find_column): Handle closing branch.
20291 (sms_schedule): Call reset_sched_times and adjust the code to
20292 support scheduling of the closing branch.
20293 (ps_insert_empty_row): Update calls to normalize_sched_times
20294 and rotate_partial_schedule functions.
20295
a37d97a5 202962011-05-11 Richard Guenther <rguenther@suse.de>
20297
20298 PR middle-end/48953
20299 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
20300
20c2121a 203012011-05-11 Joseph Myers <joseph@codesourcery.com>
20302
a5421f96 20303 * opts.c (finish_options): Move warning settings from process_options.
20304 * toplev.c (process_options): Move warning settings to finish_options.
20c2121a 20305
300da094 203062011-05-11 Richard Guenther <rguenther@suse.de>
20307
20308 PR tree-optimization/18041
20309 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
20310 (simplify_bitwise_binary): ... this. Handle operand conversions
20311 by applying them to the result instead.
20312 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
20313
e27d9de9 203142011-05-11 Richard Guenther <rguenther@suse.de>
20315
20316 * gimple.c (gimple_canonical_types_compatible_p): Split out
20317 from gimple_types_compatible_p and friends. Do not recurse
20318 to pointed-to types.
20319 (gimple_canonical_type_eq): Use it.
20320 (iterative_hash_canonical_type): Split out from
20321 iterative_hash_gimple_type and friends. Do not recurse
20322 to pointed-to types.
20323 (gimple_canonical_type_hash): Use it, allocate the hash here.
20324
cf961a94 203252011-05-11 Revital Eres <revital.eres@linaro.org>
20326
20327 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
20328 recognizing doloop.
20329
29dc3c19 203302011-05-11 Revital Eres <revital.eres@linaro.org>
20331
20332 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
20333 instead of PREV_INSN.
20334
90c2bcf0 203352011-05-11 Revital Eres <revital.eres@linaro.org>
20336
20337 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
20338 * loop-doloop.c (doloop_condition_get): Likewise.
20339 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
20340 (doloop_end): New.
20341 * config/arm/arm.md (*addsi3_compare0): Remove "*".
20342
315119c9 203432011-05-10 Nathan Froyd <froydnj@codesourcery.com>
20344
20345 * tree.def (CASE_LABEL_EXPR): Add an operand.
20346 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
20347
b354cec8 203482011-05-10 Joseph Myers <joseph@codesourcery.com>
20349
20350 * c-decl.c (c_override_global_bindings_to_false): Remove.
20351 (global_bindings_p): Don't check
20352 c_override_global_bindings_to_false.
20353 * c-tree.h (c_override_global_bindings_to_false): Remove.
20354 * c-typeck.c (composite_type): Don't set
20355 c_override_global_bindings_to_false.
20356
2cf72ba5 203572011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
20358
20359 PR target/48857, 48495
20360 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
20361 (VSX_MODE): Ditto.
20362 (VSX_MOVE_MODE): Ditto.
20363 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
20364 VSX vector types. Add V2DImode.
20365 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
20366 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
20367 (MODES_TIEABLE_P): Ditto.
20368
20369 * config/rs6000/rs6000.c (rs6000_emit_move): Use
20370 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
20371 VSX_VECTOR_MODE.
20372 (init_cumulative_args): Ditto.
20373 (rs6000_function_arg_boundary): Ditto.
20374 (rs6000_function_arg_advance_1): Ditto.
20375 (rs6000_function_arg): Ditto.
20376 (rs6000_function_ok_for_sibcall): Ditto.
20377 (emit_frame_save): Ditto.
20378 (rs6000_function_value): Ditto.
20379 (rs6000_libcall_value): Ditto.
20380
8633828c 203812011-05-10 Joseph Myers <joseph@codesourcery.com>
20382
20383 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
20384 i386/darwin-lib.h to $libgcc_tm_file.
20385 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
20386
73905b5d 203872011-05-10 Joseph Myers <joseph@codesourcery.com>
20388
20389 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
20390
d41a5879 203912011-05-10 Joseph Myers <joseph@codesourcery.com>
20392
a5421f96 20393 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
d41a5879 20394 * config/rs6000/rs6000-tables.opt: New file (generated).
20395 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
20396 rs6000/rs6000-tables.opt to extra_options.
20397 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
20398 * config/rs6000/rs6000.c (rs6000_select): Remove.
20399 (processor_target_table): Move contents to rs6000-cpus.def.
20400 (darwin_rs6000_override_options): Check
20401 global_options_set.x_rs6000_cpu_index instead of
20402 rs6000_select[1].string.
20403 (rs6000_option_override_internal): Likewise.
20404 (rs6000_handle_option): Don't assert that global structures are in
20405 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
20406 (rs6000_default_cpu): New variable.
20407 (rs6000_file_start): Set it instead of local default_cpu. Check
20408 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
20409 global_options_set.x_rs6000_tune_index instead of rs6000_select.
20410 (rs6000_darwin_file_start): Check rs6000_default_cpu and
20411 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
20412 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
20413 rs6000_select): Remove.
20414 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
20415 Remove.
20416 (mcpu=, mtune=): Use Var, Init, Enum and Save.
20417 * config/rs6000/t-rs6000
20418 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
20419 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
20420 global_options_set.x_rs6000_cpu_index instead of
20421 rs6000_select[1].string.
20422 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
20423 global_options_set.x_rs6000_cpu_index instead of
20424 rs6000_select[1].string.
20425
3be74046 204262011-05-10 Joseph Myers <joseph@codesourcery.com>
20427
20428 * config.gcc (libgcc_tm_file): Define instead of including files
20429 from ../../libgcc/config/ in tm_file.
a5421f96 20430 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
3be74046 20431 * configure: Regenerate.
20432 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
20433 libgcc_tm.h, cs-libgcc_tm.h): New.
20434 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
20435 (clean): Remove libgcc_tm.h.
20436 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
20437 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
20438 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
20439
1086ba15 204402011-05-10 Georg-Johann Lay <avr@gjlay.de>
20441
20442 PR target/48896
20443 * config/avr/avr.c (avr_ret_register): Return unsigned int
20444 instead of int.
20445 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
20446 it to avr_libcall_value.
20447 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
20448 expand_expr.
20449 (avr_expand_binop_builtin): Ditto.
20450 (avr_expand_unop_builtin): Ditto.
20451
001afa63 204522011-05-10 DJ Delorie <dj@redhat.com>
20453
20454 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
20455 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
20456 * config/rx/rx.c (rx_align_for_label): Add label and
20457 uses_threshold parameters. Do not align when the label is not
20458 used enough.
20459 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
20460
6afd0544 204612011-05-10 Richard Guenther <rguenther@suse.de>
20462
20463 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
20464 a series of conversions and apply foldings similar to what
20465 fold-const does.
20466 (tree_ssa_forward_propagate_single_use_vars): Call it.
20467
36637ccf 204682011-05-10 Jakub Jelinek <jakub@redhat.com>
20469
4e392ca1 20470 PR tree-optimization/48611
20471 PR tree-optimization/48794
20472 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
20473 referenced from RESX or EH_DISPATCH arguments.
20474
36637ccf 20475 PR debug/48928
20476 * dfp.c (decimal_to_decnumber): Handle conversion from
20477 dconst{1,2,m1,half}.
20478
e1626ed3 204792011-05-09 Uros Bizjak <ubizjak@gmail.com>
20480
20481 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
20482 for !flag_prefer_avx128.
20483 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
20484
05539e47 204852011-05-09 Eric Botcazou <ebotcazou@adacore.com>
20486
20487 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
20488 (fold_ternary_loc): Use expr_location_or.
20489
85413a3c 204902011-05-09 H.J. Lu <hongjiu.lu@intel.com>
20491
20492 PR debug/48853
20493 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
20494 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
20495 Pmode and mem_mode is not VOIDmode.
20496
05539e47 204972011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
ece7f9e3 20498
05539e47 20499 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
20500 TYPE_QUAL_RESTRICT): Convert to enum.
ece7f9e3 20501
d3d379e7 205022011-05-09 Uros Bizjak <ubizjak@gmail.com>
20503
20504 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
20505 (const_pow2_1_to_8_operand): Ditto.
20506 (const_pow2_1_to_128_operand): Ditto.
20507 (const_pow2_1_to_32768_operand): Ditto.
20508 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
20509 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
20510 in insn constraint to check integer value of operand 3.
20511 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
20512
20513 (PINSR_MODE): New mode iterator.
20514 (sse2p4_1): New mode attribute.
20515 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
20516 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
20517 iterator. Use const_int_operand instead of
20518 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
20519 exact_log2 in insn constraint to check integer value of operand 3.
20520
205212011-05-09 Uros Bizjak <ubizjak@gmail.com>
20522
20523 * config/i386/sse.md (blendbits): Remove mode attribute.
20524 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
20525 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
20526 Check integer value of operand 3 in insn constraint.
20527
79e191db 205282011-05-09 Richard Guenther <rguenther@suse.de>
20529
20530 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
20531 for diagnostics.
20532 (lto_symtab_merge): Likewise. Do not register types here.
20533 (lto_symtab_merge_decls_2): Likewise.
20534 (lto_symtab_merge_decls_1): Likewise.
20535 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
20536 * gimple.c (enum gtc_mode): Declare.
20537 (gimple_types_compatible_p): Make static.
20538
5b225bb2 205392011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20540
20541 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
20542 temporary register to match Pmode.
20543
18c3cd78 205442011-05-09 Uros Bizjak <ubizjak@gmail.com>
20545
20546 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
20547 and *vec_concatv4si_1_avx.
20548
34347cd4 205492011-05-09 Uros Bizjak <ubizjak@gmail.com>
20550
20551 PR rtl-optimization/48927
20552 * ira-conflicts.c (commutative_constraint_p): Use
20553 recog_data.alternative_enabled_p to disable alternatives where
20554 "enabled" attribute is false.
20555 (get_dup_num): Ditto.
20556 * ira-lives.c (single_reg_class): Ditto.
20557 (ira_implicitly_set_insn_hard_regs): Ditto.
20558
d0a639c4 205592011-05-09 Eric Botcazou <ebotcazou@adacore.com>
20560
20561 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
20562 (dataflow_set_preserve_mem_locs): Likewise.
20563
205642011-05-09 Philipp Thomas <pth@suse.de>
20565
516bc58f 20566 * config/mep/mep.c (mep_validate_vliw): Syntax description
20567 should not be translated.
20568
64bd95e1 205692011-05-09 Joseph Myers <joseph@codesourcery.com>
20570
20571 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
20572 * config/mips/mips-tables.opt: New file (generated).
34347cd4 20573 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
64bd95e1 20574 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
20575 MIPS_ARCH_OPTION_NATIVE): Define.
20576 * config/mips/mips.c (mips_cpu_info_table): Move contents to
20577 mips-cpus.def.
20578 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
20579 mips_parse_cpu): Remove.
20580 (mips_cpu_info_from_opt, mips_default_arch): New.
20581 (mips_handle_option): Don't assert that global structures are in
20582 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
20583 (mips_option_override): Use new variables and functions to set
34347cd4 20584 state of these options. Use strcmp to check for individual CPU names.
64bd95e1 20585 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
20586 definition.
20587 * config/mips/mips.opt (march=): Use ToLower and Enum.
20588 (mips): Use ToLower, Enum and Var.
20589 (mtune=): Use ToLower and Enum.
20590 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
20591
4075ce4a 205922011-05-08 Jan Hubicka <jh@suse.cz>
20593
20594 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
20595 Arrange type pairs to be UID ordered.
20596 (gimple_lookup_type_leader): Make inline.
20597
81705807 205982011-05-09 Nick Clifton <nickc@redhat.com>
20599
fcbb2025 20600 PR target/48899
20601 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
20602 PROCESSOR_DEFAULT.
20603
81705807 20604 PR target/48897
20605 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
20606 variable 's'.
20607
9a86832e 206082011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
20609
20610 * combine.c (simplify_comparison): Abstract out parts into...
20611 (simplify_compare_const): ... new function.
20612 (try_combine): Generalize parallel arithmetic/compare combining
20613 to call simplify_compare_const() and CANONICALIZE_COMPARE().
20614
8bae3ea4 206152011-05-08 Jan Hubicka <jh@suse.cz>
20616
20617 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
34347cd4 20618 (cgraph_create_virtual_clone): Call hooks once virtual clone
20619 is finished.
8bae3ea4 20620 * cgraph.h (cgraph_clone_node): Update prototype.
34347cd4 20621 * ipa-cp.c (ipcp_estimate_growth): Use
20622 estimate_ipcp_clone_size_and_time.
8bae3ea4 20623 * ipa-inline-transform.c (clone_inlined_nodes): Update.
20624 * lto-cgraph.c (input_node): Update.
20625 * ipa-inline.c (recursive_inlining): Update.
20626 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
20627 (evaluate_conditions_for_known_args): Break out from ...
20628 (evaluate_conditions_for_edge): ... here.
20629 (evaluate_conditions_for_ipcp_clone): New function.
20630 (inline_node_duplication_hook): Update clone summary based
20631 on parameter map.
20632 (estimate_callee_size_and_time): Rename to ...
20633 (estimate_node_size_and_time): take NODE instead of EDGE;
20634 take POSSIBLE_TRUTHS as argument.
20635 (estimate_callee_size_and_time): Update.
20636 (estimate_ipcp_clone_size_and_time): New function.
20637 (do_estimate_edge_time): Update.
20638
714e9434 206392011-05-08 Richard Guenther <rguenther@suse.de>
20640
20641 PR middle-end/48908
20642 PR middle-end/48905
20643 * expmed.c (expand_shift_1): Compute adjusted constant shift
20644 amount manually.
20645
163e62fb 206462011-05-08 Eric Botcazou <ebotcazou@adacore.com>
20647
20648 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
20649
381b6dc3 206502011-05-08 Eric Botcazou <ebotcazou@adacore.com>
20651
20652 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
20653
43d19b74 206542011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
20655
20656 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
20657
0656d247 206582011-05-07 Jan Hubicka <jh@suse.cz>
20659
56bef313 20660 * ipa-inline-transform.c (inline_call): Account when program size
20661 decreases.
0656d247 20662 * ipa-inline.c (relative_time_benefit): New function.
56bef313 20663 (edge_badness): Reorganize to be power 2 based; fix thinko when
20664 computing badness for negative growth; update comments to match
20665 reality; better dumps.
0656d247 20666
1d2bb655 206672011-05-07 Eric Botcazou <ebotcazou@adacore.com>
20668
20669 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
20670 type to bool and adjust comment.
20671 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
20672 (fold_mathfn_compare): Remove calls to global_bindings_p.
20673 (fold_inf_compare): Likewise.
20674 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
20675 * c-tree.h (global_bindings_p): Adjust prototype.
20676 * c-decl.c (global_bindings_p): Return bool and simplify.
20677
f09431f1 206782011-05-07 Zdenek Dvorak <ook@ucw.cz>
20679
20680 PR tree-optimization/48837
20681 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
20682 when accumulator transformation is performed.
20683
ffe461d9 206842011-05-06 Jan Hubicka <jh@suse.cz>
20685
56bef313 20686 * i386.h (ix86_tune_indices): Add
20687 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
34347cd4 20688 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
56bef313 20689 * i386.c (initial_ix86_tune_features): Add
20690 X86_SOFTARE_PREFETCHING_BENEFICIAL.
ffe461d9 20691 (software_prefetching_beneficial_p): Remove predicate.
20692 (ix86_option_override_internal): Use new macro.
20693
e825447c 206942011-05-06 Jan Hubicka <jh@suse.cz>
20695
20696 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
20697
91bf9d9a 206982011-05-06 Jan Hubicka <jh@suse.cz>
20699
20700 * cgraph.c (cgraph_add_thunk): Create real function node instead
20701 of alias node; finalize it and mark needed/reachale; arrange visibility
20702 to be right and add it into the corresponding same comdat group list.
20703 (dump_cgraph_node): Dump thunks.
20704 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
56bef313 20705 cgraph_function_with_gimple_body_p,
20706 cgraph_first_function_with_gimple_body,
91bf9d9a 20707 cgraph_next_function_with_gimple_body): New functions.
20708 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
20709 New macros.
20710 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
20711 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
20712 * cgraphunit.c (cgraph_finalize_function): Only look into possible
20713 devirtualization when optimizing.
20714 (verify_cgraph_node): Verify thunks.
20715 (cgraph_analyze_function): Analyze thunks.
20716 (cgraph_mark_functions_to_output): Output thunks only in combination
20717 with function they are assigned to.
20718 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
20719 alias into normal node.
20720 (assemble_thunks): New functoin.
20721 (cgraph_expand_function): Use it.
20722 * lto-cgraph.c (lto_output_node): Stream thunks.
20723 (input_overwrite_node): Stream in thunks.
20724 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
20725 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
20726 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
20727 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
20728 (inline_analyze_function): Do not care about thunk jump functions.
20729 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
56bef313 20730 * ipa-prop.c (ipa_prop_write_jump_functions): Use
20731 cgraph_function_with_gimple_body_p.
20732 * passes.c (do_per_function_toporder): Use
20733 cgraph_function_with_gimple_body_p.
91bf9d9a 20734 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
20735 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
20736 (function_called_by_processed_nodes_p): Likewise.
20737
b9f8199f 207382011-05-06 Joseph Myers <joseph@codesourcery.com>
20739
20740 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
20741 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
20742 entries.
20743 (mabi=): Replace with separate entries for mabi=altivec,
20744 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
20745 mabi=ieeelongdouble and mabi=ibmlongdouble.
20746 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
20747 check for -mabi=spe without SPE ABI support here.
20748 (rs6000_handle_option): Replace OPT_mabi_ handling with
20749 OPT_mabi_altivec and OPT_mabi_spe handling.
20750
779ad5d0 207512011-05-06 Cary Coutant <ccoutant@google.com>
20752
20753 * dwarf2out.c (contains_subprogram_definition): New function.
20754 (should_move_die_to_comdat): Call it.
20755
06a81e3f 207562011-05-06 Jeff Law <law@redhat.com>
20757
20758 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
20759 remove_ctrl_stmt_and_useless_edges.
20760 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
20761 (fixup_template_block, thread_single_edge): Likewise.
20762 (mark_threaded_blocks): Use THREAD_TARGET.
20763
61f51476 207642011-05-06 Alan Modra <amodra@gmail.com>
20765
20766 PR target/48900
20767 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
20768 const0_rtx as the arg to the dummy __tls_get_addr libcall.
20769
41f4c13a 207702011-05-06 Uros Bizjak <ubizjak@gmail.com>
20771
20772 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
20773 constraint modifier to "r".
20774
83f34ac5 207752011-05-06 Joseph Myers <joseph@codesourcery.com>
20776
20777 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
20778 fall through for OPT_mcmodel_.
20779
29335855 207802011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20781
20782 * config/s390/s390.c (s390_asm_trampoline_template): Comment
20783 instruction sizes.
41f4c13a 20784 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
29335855 20785
d6d485a9 207862011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20787
34347cd4 20788 PR target/47930
20789 * config/arm/arm.opt (marm): Document it.
20790 (mthumb): Reject negative variant.
d6d485a9 20791
80a05cde 207922011-05-06 Uros Bizjak <ubizjak@gmail.com>
20793
20794 PR target/48898
20795 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
20796 Fix typo in "ccvt" variable name.
20797
c2881874 207982011-05-06 Tristan Gingold <gingold@adacore.com>
20799
20800 PR target/48895
20801 * config/vms/vms-ar.c (main): Remove cwd variable.
20802
bc40ee90 208032011-05-06 Jakub Jelinek <jakub@redhat.com>
20804
20805 PR debug/48902
20806 * var-tracking.c (prepare_call_arguments): Move else before #endif.
20807
b6e3dd65 208082011-05-05 Nathan Froyd <froydnj@codesourcery.com>
20809
20810 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
20811 * gimplify.c (gimplify_switch_expr): Likewise.
20812 * omp-low.c (expand_omp_sections): Likewise.
20813 * tree-eh.c (lower_try_finally_switch): Likewise.
20814 (lower_eh_dispatch): Likewise.
20815 * tree.h (build_case_label): Declare.
20816 * tree.c (build_case_label): Define.
20817
17476aac 208182011-05-05 Jason Merrill <jason@redhat.com>
20819
20820 PR c++/40975
20821 * tree-inline.c (copy_tree_r): Use copy_statement_list.
20822 (copy_statement_list): Don't recurse.
20823 * stor-layout.c (copy_self_referential_tree_r): Don't allow
20824 STATEMENT_LIST.
20825
b444e5be 208262011-05-05 Joseph Myers <joseph@codesourcery.com>
20827
20828 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
20829 through from -mfpu= handling.
20830 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
20831
fbc27330 208322011-05-05 Bernd Schmidt <bernds@codesourcery.com>
20833
20834 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
20835 POST_MODIFY.
20836
637c9296 208372011-05-05 Steve Ellcey <sje@cup.hp.com>
20838
20839 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
20840 for 11.31.
20841 (hppa[12]*-*-hpux11*): Ditto.
20842 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
20843 * config/ia64/hpux-unix2003.h: New.
20844 * config/pa/pa-hpux1131.opt: New.
20845 * config/pa/pa-hpux1131.h: New.
20846 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
20847 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
48054c99 20848 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
637c9296 20849
a9b10eec 208502011-05-05 Jakub Jelinek <jakub@redhat.com>
20851
20852 PR debug/48853
20853 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
20854 instead of mode as 3rd argument to recursive call.
20855 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
20856 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
20857 VOIDmode.
20858 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
20859 don't give up if mode is Pmode and mem_mode is not VOIDmode.
20860 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
20861 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
20862
e3c4ab51 208632011-05-05 Julian Brown <julian@codesourcery.com>
20864
20865 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
20866 parenthesis in D-register case.
20867
a4a5a0e9 208682011-05-05 Joseph Myers <joseph@codesourcery.com>
20869
20870 * opt-functions.awk (var_type_struct): Handle Enum options.
20871 * optc-gen.awk: Don't check range of variables of character type.
20872 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
20873 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
20874 rs6000_sdata_name, rs6000_explicit_options): Remove.
20875 (rs6000_option_override_internal): Check for -malign-power here.
20876 Use global_options_set instead of rs6000_explicit_options.
20877 (rs6000_parse_fpu_option): Remove.
20878 (rs6000_handle_option): Access variables via opts and opts_set
20879 pointers. Use error_at and warning_at. Add fall-through
20880 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
20881 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
20882 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
20883 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
20884 here. Don't use rs6000_parse_fpu_option.
20885 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
20886 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
20887 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
20888 (mrecip=): Use Var.
20889 (mspe): Use Var and Save.
20890 (mtraceback=): Use Enum and Var.
20891 (rs6000_traceback_type): New Enum and EnumValue entries.
20892 (mfloat-gprs=): Use Enum, Var and Save.
20893 (rs6000_float_gprs): New Enum and EnumValue entries.
20894 (mlong-double-): use Var and Save.
20895 (msched-costly-dep=, minsert-sched-nops=): Use Var.
20896 (malign-): Use Enum and Var.
20897 (rs6000_alignment_flags): New Enum and EnumValue entries.
20898 (mfpu=): Use Enum.
20899 (fpu_type_t): New Enum and EnumValue entries.
20900 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
20901 global_options_set instead of rs6000_explicit_options.
20902 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
20903 global_options_set instead of rs6000_explicit_options.
20904 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
20905 global_options_set instead of rs6000_explicit_options.
20906 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
20907 global_options_set instead of rs6000_explicit_options.
20908 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
20909 global_options_set instead of rs6000_explicit_options.
20910 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
20911 global_options_set instead of rs6000_explicit_options.
20912 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
20913 definition.
20914 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
20915 global_options_set instead of rs6000_explicit_options.
20916 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
20917 (rs6000_cmodel): New Enum and EnumValue entries.
20918 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
20919 global_options_set instead of rs6000_explicit_options.
20920 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
20921 (mtls-size=): Use Enum and Var.
20922 (rs6000_tls_size): New Enum and EnumValue entries.
20923
5820f58d 209242011-05-05 Michael Matz <matz@suse.de>
20925
20926 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
20927 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
20928 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
20929 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
20930 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
20931 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
20932 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
20933 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
20934 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
20935 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
20936 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
20937 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
20938 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
20939 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
20940 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
20941 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
20942
32d37219 209432011-05-05 Richard Guenther <rguenther@suse.de>
20944
20945 * expmed.c (expand_variable_shift): Rename to ...
20946 (expand_shift_1): ... this. Take an expanded shift amount.
20947 For rotates recurse directly not building trees for the shift amount.
20948 (expand_variable_shift): Wrap around expand_shift_1.
20949 (expand_shift): Adjust.
20950
bb0794f9 209512011-05-05 Jakub Jelinek <jakub@redhat.com>
20952
20953 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
20954
a5aff672 209552011-05-05 Eric Botcazou <ebotcazou@adacore.com>
20956
20957 * tree.h (get_pending_sizes): Remove prototype.
20958 (put_pending_size): Likewise.
20959 (put_pending_sizes): Likewise.
20960 * stor-layout.c (pending_sizes): Delete.
20961 (get_pending_sizes): Likewise.
20962 (put_pending_size): Likewise.
20963 (put_pending_sizes): Likewise.
20964 (variable_size): Do not call put_pending_size and tidy up.
20965 * function.h (struct function): Remove dont_save_pending_sizes_p.
20966 * lto-streamer-in.c (input_function): Do not stream it.
20967 * lto-streamer-out.c (output_function): Likewise.
20968 * tree-inline.c (initialize_cfun): Do not copy it.
20969 * c-decl.c (store_parm_decls): Do not set it.
20970 * omp-low.c (create_task_copyfn): Likewise.
20971 * tree-optimize.c (tree_rest_of_compilation): Likewise.
20972
d56eb220 209732011-05-05 Uros Bizjak <ubizjak@gmail.com>
20974
20975 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
20976 conditions.
20977 (*movdf_internal): Ditto.
20978 (*movdf_internal_nointeger): Ditto.
20979 (*movsf_internal): Ditto.
20980
4232a958 209812011-05-05 Joseph Myers <joseph@codesourcery.com>
20982
20983 * c-decl.c (finish_decl): Don't call get_pending_sizes.
20984 (grokparm): Add parameter expr. Pass it to grokdeclarator.
20985 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
20986 (c_variable_size): Remove.
20987 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
20988 call put_pending_sizes.
20989 (get_parm_info): Add parameter expr. Use it to set
20990 arg_info->pending_sizes.
20991 (store_parm_decls): Use arg_info->pending_sizes instead or calling
20992 get_pending_sizes.
20993 * c-parser.c (c_parser_parms_declarator): Update call to
20994 c_parser_parms_list_declarator.
20995 (c_parser_parms_list_declarator): Take parameter expr. Update
20996 call to push_parm_decl. Update recursive call. Don't call
20997 get_pending_sizes. Update calls to get_parm_info.
20998 (c_parser_objc_method_definition): Update calls to
20999 c_parser_objc_method_decl and objc_start_method_definition.
d56eb220 21000 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
4232a958 21001 (c_parser_objc_method_decl): Add parameter expr. Update call to
21002 grokparm.
d56eb220 21003 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
4232a958 21004 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
21005 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
21006
c275616e 210072011-05-05 Michael Hope <michael.hope@linaro.org>
21008
d56eb220 21009 PR pch/45979
21010 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
21011 __ARM_EABI__ hosts.
c275616e 21012
f17d2d13 210132011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21014
21015 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21016 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
21017 (spu_output_mi_thunk): New function.
21018
b82b45b4 210192011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21020
21021 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
21022 targetm.asm_out.print_operand.
21023 * config/sol2.c: Include target.h.
21024
ba5b0608 210252011-05-04 Jan Hubicka <jh@suse.cz>
21026
21027 * ipa-inline.c (reset_edge_caches): New function.
21028 (update_caller_keys): Add check_inlinablity_for; do not
21029 reset edge caches; remove now unnecesary loop.
d56eb220 21030 (update_callee_keys): Add comments; reset node_growth_cache of callee.
ba5b0608 21031 (update_all_callee_keys): Likewise.
21032 (inline_small_functions): Sanity check cache; update code
21033 recomputing it.
21034
8c936e55 210352011-05-04 Bernd Schmidt <bernds@codesourcery.com>
21036
21037 PR rtl-optimization/47612
21038 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
21039 as the last insn of the sequence to be moved.
21040
9d4ede2c 210412011-05-04 Tobias Burnus <burnus@net-b.de>
21042
21043 PR fortran/48864
21044 * doc/invoke.texi (Ofast): Document that it
21045 enables Fortran's -fno-protect-parens.
21046
343f07cb 210472011-05-04 Uros Bizjak <ubizjak@gmail.com>
21048
21049 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
21050
f682b737 210512011-05-04 Eric Botcazou <ebotcazou@adacore.com>
21052
21053 * stor-layout.c (variable_size): Do not issue errors.
21054
2c46738d 210552011-05-04 Richard Guenther <rguenther@suse.de>
21056
21057 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
21058 for array-ref indices.
21059 (tree_coverage_counter_addr): Likewise.
21060 (build_fn_info_type): Use size_int for index types.
21061 (build_gcov_info): Likewise.
21062
ceb7b692 210632011-05-04 Richard Guenther <rguenther@suse.de>
21064
21065 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
21066 to build_int_cst.
21067 * c-typeck.c (really_start_incremental_init): Use bitsize_int
21068 for constructor indices.
21069 (push_init_level): Likewise.
21070
49130e9a 210712011-05-04 Richard Guenther <rguenther@suse.de>
21072
21073 * explow.c (promote_mode): Move variable declarations before code.
21074
5edc3af9 210752011-05-04 Nathan Froyd <froydnj@codesourcery.com>
21076
21077 * tree.h (build_function_type_array): Declare.
21078 (build_varargs_function_type_array): Declare.
21079 (build_function_type_vec, build_varargs_function_type_vec): Define.
21080 * tree.c (build_function_type_array_1): New function.
21081 (build_function_type_array): New function.
21082 (build_varargs_function_type_array): New function.
21083
2814125e 210842011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
21085
21086 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
21087 before setting STMT_VINFO_TYPE.
21088
27a82950 210892011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21090
21091 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
21092 instead of spu_pass_by_reference.
21093
adaf4ef0 210942011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21095
21096 * calls.c (emit_library_call_value_1): Invoke
21097 promote_function_mode hook on libcall arguments.
21098 * explow.c (promote_function_mode, promote_mode): Handle TYPE
21099 argument being NULL.
21100 * targhooks.c (default_promote_function_mode): Lisewise.
21101 * config/s390/s390.c (s390_promote_function_mode): Likewise.
21102 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
21103
21104 * doc/tm.texi: Document that TYPE argument might be NULL.
21105
9282cadb 211062011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
21107
21108 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
21109
55ed3ae7 211102011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
21111
21112 From Bernd Schmidt
21113 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
21114
a3702d5e 211152011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21116
21117 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
21118 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
21119 Move ...
21120 * mips-tfile.c: ... here.
21121 Don't include coretypes.h, tm.h, filenames.h.
21122 (saber_stop): Remove definition and all calls.
21123 [__SABER__]: Remove.
21124 (__LINE__): Remove default.
21125 (Size_t, Ptrdiff_t): Remove definitions.
21126 Replace by size_t, ptrdiff_t.
21127 [!MIPS_DEBUGGING_INFO]: Remove.
21128 (SHASH_SIZE, THASH_SIZE): Remove defaults.
21129 (progname): Add const.
21130 (STATIC): Remove.
21131 Replace all uses by static.
21132 (ALIGN_SYMTABLE_OFFSET): Remove default.
21133 * mips-tdump.c: Don't include coretypes.h, tm.h.
21134 Remove !MIPS_IS_STAB guard.
21135 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
21136 $(TM_H), filenames.h dependencies.
21137 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
21138
08d2cf2d 211392011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
21140
21141 From Jie Zhang
21142 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
21143 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
21144
edf1112c 211452011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
21146
21147 From Bernd Schmidt
21148 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
21149 account and save/restore RETS.
21150 (PROFILE_BEFORE_PROLOGUE): Define.
21151 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
21152 the push insn to use predecrement.
21153
6d8651b5 211542011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
21155
21156 From Jie Zhang
21157 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
21158
f9b3e8f5 211592011-05-04 Nick Clifton <nickc@redhat.com>
21160
21161 * config/mn10300/mn10300.c: Include cfgloop.h.
21162 (DUMP): New macro.
21163 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
21164 Lcc or a FLcc insn into the instruction stream.
21165 (mn10300_block_contains_call): New function. Returns true if the
21166 given basic block contains a CALL insn.
21167 (mn10300_loop_contains_call_insn): New function. Returns true if
21168 the given loop contains a CALL insn.
21169 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
21170 to use the SETLB and Lcc or FLcc insns.
21171 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
21172 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
21173 * config/mn10300/mn10300.opt (msetlb): New option. Used to
21174 disable the SETLB optimization.
21175 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
21176 __SETLB__ or __NO_SETLB__.
21177 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
21178 (movsf_internal): Handle MDR register.
21179 (cmpsi): Make visible.
21180 (setlb): New pattern.
21181 (Lcc): New pattern.
21182 (FLcc): New pattern.
21183
dd196988 211842011-05-04 Uros Bizjak <ubizjak@gmail.com>
21185
21186 PR target/48860
21187 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
21188 for reg<->xmm moves.
21189 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
21190 (vec_concatv2di_rex64_sse): Ditto.
21191 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
21192 (*vec_extractv2di_1_rex64): Ditto.
21193
21194 Revert:
21195 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
21196
21197 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
21198 reg<->xmm moves.
21199 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
21200
317e2a67 212012011-05-04 Richard Guenther <rguenther@suse.de>
21202
21203 * tree.h (int_const_binop): Remove notrunc argument.
21204 * fold-const.c (int_const_binop): Remove notrunc argument. Always
21205 create integer constants that are properly truncated.
21206 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
21207 (const_binop): Remove zero notrunc argument to int_const_binop.
21208 (size_binop_loc): Likewise.
21209 (fold_div_compare): Likewise.
21210 (maybe_canonicalize_comparison_1): Likewise.
21211 (fold_comparison): Likewise.
21212 (fold_binary_loc): Likewise.
21213 (multiple_of_p): Likewise.
21214 * expr.c (store_constructor): Likewise.
21215 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
21216 (maybe_fold_stmt_addition): Likewise.
21217 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
21218 * stor-layout.c (layout_type): Likewise.
21219 * tree-data-ref.c (tree_fold_divides_p): Likewise.
21220 * tree-sra.c (build_ref_for_offset): Likewise.
21221 (build_user_friendly_ref_for_offset): Likewise.
21222 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
21223 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
21224 * tree-ssa-loop-niter.c (inverse): Likewise.
21225 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
21226 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
21227 * tree-switch-conversion.c (check_range): Likewise.
21228 (build_constructors): Likewise.
21229 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
21230 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
21231 (extract_range_from_assert): Likewise.
21232 (vrp_int_const_binop): Likewise.
21233 (extract_range_from_binary_expr): Likewise.
21234 (extract_range_from_unary_expr): Likewise.
21235 (check_array_ref): Likewise.
21236 (find_case_label_range): Likewise.
21237 (simplify_div_or_mod_using_ranges): Likewise.
21238 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
21239 comparing case labels for merging.
21240
4b665711 212412011-05-03 Mark Wielaard <mjw@redhat.com>
21242
21243 * dwarf2out.c (debug_str_hash_forced): Removed.
21244 (gen_label_for_indirect_string): Removed.
21245 (get_debug_string_label): Removed.
21246 (AT_string_form): Generate label directly.
21247 (output_indirect_string): Test indirect_string_node for
21248 DW_FORM_strp instead of checking label and refcount.
21249 (prune_indirect_string): Removed.
21250 (prune_unused_types): Don't check debug_str_hash_forced or
21251 call prune_indirect_string.
21252
7cdcc48d 212532011-05-04 Alexandre Oliva <aoliva@redhat.com>
21254
21255 PR other/48093
21256 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
21257
ad971558 212582011-05-04 Alexandre Oliva <aoliva@redhat.com>
21259
21260 PR debug/47994
21261 PR debug/47919
21262 * combine.c (try_combine): Skip debug insns at m_split tests.
21263
fb512453 212642011-04-26 Mark Wielaard <mjw@redhat.com>
21265
21266 PR42288
21267 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
21268 when info_section_emitted.
21269
498fed4e 212702011-05-03 Joseph Myers <joseph@codesourcery.com>
21271
21272 * config/mips/mips-opts.h: New.
21273 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
21274 to mips-opts.h.
21275 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
21276 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
21277 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
21278 via opts pointer.
21279 * config/mips/mips.h (enum mips_code_readable_setting): Move to
21280 mips-opts.h.
21281 (mips_abi, mips_code_readable): Don't declare.
dd196988 21282 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
498fed4e 21283 (mabi=): Use Enum and Var.
21284 (mips_abi): New Enum and EnumValue entries.
21285 (mcode-readable=): Use Enum and Var.
21286 (mips_code_readable_setting): New Enum and EnumValue entries.
21287 (mr10k-cache-barrier=): Use Enum and Var.
21288 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
21289
19ad01f7 212902011-05-03 Jan Hubicka <jh@suse.cz>
21291
21292 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
21293 replace hash by pointer map.
21294 (cgraph_node_set_element_def, cgraph_node_set_element,
21295 const_cgraph_node_set_element, varpool_node_set_element_def,
21296 varpool_node_set_element, const_varpool_node_set_element): Remove.
21297 (free_cgraph_node_set, free_varpool_node_set): New function.
21298 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
21299 * tree-emutls.c: Free varpool node set.
21300 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
21301 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
21302 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
21303 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
21304 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
21305 Move here from ipa.c; implement using pointer_map
21306 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
21307 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
21308 debug_cgraph_node_set, varpool_node_set_new,
21309 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
21310 dump_varpool_node_set, debug_varpool_node_set):
21311 Move to ipa-uitls.c.
21312 * passes.c (ipa_write_summaries): Update.
21313
8c09c40e 213142011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
21315
343f07cb 21316 From Mike Frysinger:
21317 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
21318 bf542/bf544/bf547/bf548/bf549.
8c09c40e 21319
6eecb88e 213202011-05-03 Uros Bizjak <ubizjak@gmail.com>
21321
21322 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
21323
61b8983f 213242011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
21325
21326 From Bernd Schmidt:
21327 * config/bfin/bfin.md (MOVCC): New mode_macro.
21328 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
21329 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
21330 comments from generated assembly.
21331
1c4dac4c 213322011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
21333
21334 From Bernd Schmidt
21335 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
21336 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
21337 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
21338 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
21339 * config/bfin/lib1funcs.asm (___muldi3): New function.
21340
2a3cbbd4 213412011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21342
21343 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
21344 build_function_type_list instead of build_function_type.
21345 Rearrange initialization of `args' to do so.
21346
646d20a3 213472011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21348
21349 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
21350 instead of build_function_type.
21351
7f5e75d2 213522011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21353
21354 * config/rs6000/rs6000.c (spe_init_builtins): Call
21355 build_function_type_list instead of build_function_type.
21356 (paired_init_builtins, altivec_init_builtins): Likewise.
21357 (builtin_function_type): Likewise.
21358
03e08c98 213592011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21360
21361 * config/sh/sh.c (sh_media_init_builtins): Call
21362 build_function_type_list instead of build_function_type.
21363
130631cc 213642011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21365
21366 * config/sparc/sparc.c (sparc_file_end): Call
21367 build_function_type_list instead of build_function_type.
21368
3fecf4a0 213692011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21370
21371 * config/alpha/alpha.c (alpha_init_builtins): Call
21372 build_function_type_list instead of build_function_type.
21373
b4e90796 213742011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21375
21376 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
21377 build_function_type_list instead of build_function_type.
21378
5753b57e 213792011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21380
21381 * config/iq2000/i2000.c (iq2000_init_builtins): Call
21382 build_function_type_list instead of build_function_type.
21383 Delete `endlink' variable.
21384
c0010db9 213852011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21386
21387 * config/avr/avr.c (avr_init_builtins): Call
21388 build_function_type_list instead of build_function_type.
21389
740c08af 213902011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21391
21392 * config/picochip/picochip.c (picochip_init_builtins): Call
21393 build_function_type_list instead of build_function_type.
21394 Delete `endlink' variable.
21395
9989d11e 213962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
21397
21398 * config/bfin/bfin.c (bfin_init_builtins): Call
21399 build_function_type_list instead of build_function_type.
21400
5e3eb736 214012011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
21402
21403 From Bernd Schmidt
21404 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
21405 that's not CONST_INT. Seemingly redundant check is due to PR39768.
21406
35bd123e 214072011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
21408
21409 From Jie Zhang:
21410 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
21411 libbffastfp overrides libgcc when -mfast-fp.
21412
6a0cacf9 214132011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
a581fd25 21414
21415 Originally from Bernd Schmidt
21416 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
21417 * config/bfin/bfin.c (override_options): Test it and error if
21418 TARGET_FDPIC.
21419
274c4c98 214202011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
21421
21422 Originally From Bernd Schmidt
21423 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
21424 FD-PIC.
21425
eb31063a 214262011-05-03 Jeff Law <law@redhat.com>
21427
21428 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
21429 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
21430 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
6eecb88e 21431 than accessing AUX field directly. Free the AUX field before
21432 clearing it.
eb31063a 21433 (thread_block, thread_through_loop_header): Likewise.
21434 (thread_single_edge, mark_threaded_blocks): Likewise.
21435 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
21436 (register_jump_thread): Do not attempt to thread to a NULL edge.
6eecb88e 21437
756dcd13 214382011-05-03 Bernd Schmidt <bernds@codesourcery.com>
21439
21440 * function.c (init_function_start): Call decide_function_section.
21441 * varasm.c (decide_function_section): New function.
21442 (assemble_start_function): When not using
21443 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
21444 or first_function_block_is_cold.
21445 * rtl.h (decide_function_section): Declare.
21446
d99e41e8 214472011-05-03 Uros Bizjak <ubizjak@gmail.com>
21448 Jakub Jelinek <jakub@redhat.com>
21449
21450 PR target/48774
21451 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
21452 only succeed if req_mode is the same as set_mode.
21453
1a860023 214542011-05-03 Bernd Schmidt <bernds@codesourcery.com>
21455
21456 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
21457 * genemit.c (gen_exp): Handle RETURN.
21458 * emit-rtl.c (verify_rtx_sharing): Likewise.
21459 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
21460 * rtl.c (copy_rtx): RETURN is shared.
21461 * rtl.h (enum global_rtl_index): Add GR_RETURN.
21462 (ret_rtx): New.
21463 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
21464 * config/s390/s390.c (s390_emit_epilogue): Likewise.
21465 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
21466 * config/cris/cris.c (cris_expand_return): Likewise.
21467 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
21468 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
21469 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
21470 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
21471 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
21472 Likewise.
21473 * config/v850/v850.c (expand_epilogue): Likewise.
21474 * config/bfin/bfin.c (bfin_expand_call): Likewise.
21475 * config/arm/arm.md (epilogue): Likewise.
21476 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
21477 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
21478 variable to ret_reg.
21479
3efe00ad 214802011-05-03 Richard Guenther <rguenther@suse.de>
21481
21482 PR lto/48846
21483 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
21484 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
21485 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
21486
8f49133b 214872011-05-03 Richard Guenther <rguenther@suse.de>
21488
21489 * c-decl.c (grokdeclarator): Instead of looking at
21490 TREE_OVERFLOW check if the constant fits in the index type.
21491
672b3f5b 214922011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
21493
21494 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
21495 (vec_store_lanes<mode><mode>): Likewise.
21496
94b7b4dd 214972011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
21498
21499 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
21500 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
21501 convert_optab_index values.
21502 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
21503 * genopinit.c (optabs): Initialize the new optabs.
21504 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
21505 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
21506 (expand_STORE_LANES): New functions.
21507 * tree.h (build_array_type_nelts): Declare.
21508 * tree.c (build_array_type_nelts): New function.
21509 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
21510 (vect_model_load_cost): Likewise.
21511 (vect_store_lanes_supported, vect_load_lanes_supported)
21512 (vect_record_strided_load_vectors): Declare.
21513 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
21514 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
21515 (vect_transform_strided_load): Split out statement recording into...
21516 (vect_record_strided_load_vectors): ...this new function.
21517 * tree-vect-stmts.c (create_vector_array, read_vector_array)
21518 (write_vector_array, create_array_ref): New functions.
21519 (vect_model_store_cost): Add store_lanes_p argument.
21520 (vect_model_load_cost): Add load_lanes_p argument.
21521 (vectorizable_store): Try to use store-lanes functions for
21522 interleaved stores.
21523 (vectorizable_load): Likewise load-lanes and loads.
21524 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
21525 to vect_model_store_cost.
21526 (vect_build_slp_tree): Likewise vect_model_load_cost.
21527
13d3ceb9 215282011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
21529
21530 * hooks.h (hook_bool_mode_uhwi_false): Declare.
21531 * hooks.c (hook_bool_mode_uhwi_false): New function.
21532 * target.def (array_mode_supported_p): New hook.
21533 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
21534 * doc/tm.texi: Regenerate.
21535 * stor-layout.c (mode_for_array): New function.
21536 (layout_type): Use it.
21537 * config/arm/arm.c (arm_array_mode_supported_p): New function.
21538 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
21539
51d5dcac 215402011-05-03 Eric Botcazou <ebotcazou@adacore.com>
21541
21542 PR target/48723
21543 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
21544 for -fstack-check if the size to allocate is negative.
21545
6198e8f6 215462011-05-02 Lawrence Crowl <crowl@google.com>
21547
21548 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
21549 (timevar_cond_start): New for starting a timer only when it is not
21550 already running.
21551 (timevar_cond_stop): New for stopping a timer when it was not already
21552 running.
21553
21554 * timevar.c (timevar_stop): Enable start/stop timers to start again.
21555 (timevar_cond_start): New as above.
21556 (timevar_cond_stop): New as above.
21557
21558 * timevar.def: Add start/stop timers for compiler phases,
21559 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
21560 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
21561 and TV_PHASE_FINALIZE.
21562 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
21563 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
21564 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
21565 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
21566 Make unused TV_OVERLOAD into a start/stop timer.
21567
21568 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
21569 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
21570 to indicate that they are start/stop timers.
21571
21572 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
21573 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
21574 Move initialization to do_compile.
21575 (do_compile): Add initialization from above.
21576 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
21577
21578 * c-decl.c (c_write_global_declarations): Add start/stop of
21579 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
21580
21581 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
21582 or TV_PARSE_INLINE, as appropriate.
21583 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
21584 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
21585
d55ebb6a 215862011-05-02 Jason Merrill <jason@redhat.com>
21587
21588 PR c++/40975
21589 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
21590
74a1cbcf 215912011-05-02 Simon Martin <simartin@users.sourceforge.net>
21592
21593 PR c/35445
21594 * c-decl.c (finish_decl): Only create a composite if the types are
21595 compatible.
21596
4bccad5e 215972011-05-02 Joseph Myers <joseph@codesourcery.com>
21598
21599 * config/fr30/fr30-protos.h (Mmode): Don't define.
21600 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
21601 definition where used.
21602 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
21603 define. Expand definitions where used.
21604 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
21605 Expand definitions where used.
21606 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
21607 rx_function_arg, rx_function_arg_advance,
21608 rx_function_arg_boundary): Expand definitions of those macros.
21609 * config/v850/v850-protos.h (Mmode): Don't define. Expand
21610 definition where used.
21611
31b44162 216122011-05-02 Uros Bizjak <ubizjak@gmail.com>
21613
21614 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
21615 reg<->xmm moves.
21616 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
21617 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
21618 with *movv2sf_internal_rex64_avx.
21619 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
21620 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
21621 Use %v prefix in insn mnemonic to handle TARGET_AVX.
21622 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
21623 "vex" in "prefix" attribute calculation.
21624 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
21625
fa0aee40 216262011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
21627
343f07cb 21628 PR target/47951
21629 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
21630 inputs match the output.
fa0aee40 21631
611b3016 216322011-05-02 Andreas Schwab <schwab@linux-m68k.org>
21633
21634 PR target/47955
21635 * config/m68k/m68k.c (m68k_expand_prologue): Set
21636 current_function_static_stack_size.
21637
3ed05fdb 216382011-05-02 Jan Hubicka <jh@suse.cz>
21639
21640 * lto-streamer.c (lto_streamer_cache_insert_1,
21641 lto_streamer_cache_lookup, lto_streamer_cache_create,
21642 lto_streamer_cache_delete): Use pointer map instead of hashtable.
21643 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
21644
d078aadd 216452011-05-02 Joseph Myers <joseph@codesourcery.com>
21646
21647 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
21648 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
21649 config/m68k/t-opts: New files.
21650 * config/m68k/m68k-tables.opt: New file (generated).
21651 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
21652 extra_options and m68k/t-opts to tmake_file.
21653 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
21654 (all_isas): Initialize using m68k-isas.def.
21655 (all_microarchs): Initialize using m68k-microarchs.def.
21656 (m68k_find_selection): Remove.
21657 (m68k_handle_option): Don't assert that global structures are in
21658 use. Use error_at. Access variables via opts pointer. Don't
21659 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
21660 directly for -m68020-40 and -m68020-60.
21661 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
21662 m68k_tune_entry here.
21663 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
21664 to m68k-opts.h.
21665 (m68k_library_id_string): Remove declaration.
31b44162 21666 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
d078aadd 21667 (m68k_library_id_string): New Variable.
21668 (march=, mcpu=, mtune=): Use Enum and Var.
21669
a3f07b52 216702011-05-02 Richard Guenther <rguenther@suse.de>
21671
21672 * varasm.c (output_constructor_regular_field): Compute zero-based
21673 index with double-ints. Make sure to ICE instead of producing
21674 wrong code.
21675 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
21676 in asserts. Properly use a signed type.
21677
6fe5844b 216782011-05-02 Uros Bizjak <ubizjak@gmail.com>
21679
21680 * config/i386/sse.md (V): New mode iterator.
21681 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
21682 TARGET_SSE2.
21683 (V_256): Rename from AVX256MODE.
21684 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
21685 condition to all users.
21686 (VF1): Ditto.
21687 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
21688 condition to all users.
21689 (VF_128): Make V4SF mode unconditional.
21690 (VF_256): Rename from AVX256MODEF2P.
21691 (VI4F_128): Rename from SSEMODE4S.
21692 (VI8F_128): Rename from SSEMODE2D.
21693 (VI4F_256): Rename from AVX256MODE8P.
21694 (VI8F_256): Rename from AVX256MODE4P.
21695 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
21696 (ssescalarmodesuffix): Remove SF and DF modes.
21697 (SSEMODE124): Remove.
21698 (SSEMODE1248): Ditto.
21699 (SSEMODEF2P): Ditto.
21700 (AVXMODEF2P): Ditto.
21701 (AVXMODEFDP): Ditto.
21702 (AVXMODEFSP): Ditto.
21703 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
21704 unconditional.
21705 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
21706 unconditional.
21707 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
21708 xop_pcmov_<mode>256. Use V mode iterator.
21709
21710 Adjust RTX patterns globally for renamed mode attributes.
21711
c03ae898 217122011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21713
21714 * haifa-sched.c (sched_emit_insn): Emit insn before first
21715 non-scheduled insn. Inform back-end about new insn. Add
21716 new insn to scheduled_insns list.
21717
b81ffaee 217182011-05-02 Richard Guenther <rguenther@suse.de>
21719
21720 PR tree-optimization/48822
21721 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
21722 (process_scc): Indicate which iteration we start.
21723
673ca05f 217242011-05-02 Jan Hubicka <jh@suse.cz>
21725
21726 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
21727 (lto_section_overrun): New.
21728 * lto-section-out.c (append_block): Rename to ...
21729 (lto_append_block): ... this one; export.
21730 (lto_output_1_stream): Move lto lto-streamer.h
21731 (lto_output_data_stream): Update.
21732 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
21733 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
21734 functions.
21735
4aa24247 217362011-05-02 Richard Guenther <rguenther@suse.de>
21737
21738 * tree.c (tree_code_counts): New global array.
21739 (record_node_allocation_statistics): Count individual tree codes.
21740 (dump_tree_statistics): Dump individual code stats.
21741
0a0ca4d6 217422011-05-01 Jan Hubicka <jh@suse.cz>
21743
21744 * ipa-inline.c (caller_growth_limits): Fix thinko when
21745 looking for largest stack frame.
21746 * ipa-inline.h (dump_inline_summary): Declare.
21747 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
21748 on stack usage.
21749 (dump_inline_summary): Export.
21750 (debug_inline_summary): Declare as DEBUG_FUNCTION.
21751
ade444a4 217522011-05-01 Anatoly Sokolov <aesok@post.ru>
21753
21754 * reginfo.c (memory_move_cost): Change rclass argument type form
21755 'enum reg_class' to reg_class_t.
21756 * reload.h (memory_move_cost): Update prototype.
21757 * postreload.c reload_cse_simplify_set): Change type dclass var to
21758 reg_class_t.
21759 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
21760 Update prototype.
21761 (ira_allocate_and_set_costs): Change aclass argument type form
21762 'enum reg_class' to reg_class_t.
6fe5844b 21763 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
ade444a4 21764 Change aclass argument type to reg_class_t.
21765 (update_conflict_hard_reg_costs): Change type aclass and pref vars
21766 to reg_class_t.
21767 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
21768 memory_move_cost call.
21769
21770 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
21771 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
21772 Change type tmp var to reg_class_t.
21773
6f60f0b6 217742011-04-30 Jan Hubicka <jh@suse.cz>
21775
21776 * ipa-inline.c (can_inline_edge_p): Disregard limits when
21777 inlining into function with flatten attribute.
21778 (want_inline_small_function_p): Be more realistic about inlining
21779 cold calls where callee size grows.
21780
06240b6f 217812011-04-30 Jan Hubicka <jh@suse.cz>
21782
21783 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
21784 flags.
21785
028b4ba2 217862011-04-30 Anatoly Sokolov <aesok@post.ru>
21787
21788 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
21789 PRINT_OPERAND_PUNCT_VALID_P): Remove.
21790 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
21791 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
21792 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21793 (print_operand): Rename to...
21794 (sparc_print_operand): ...this. Make static. Adjust
21795 sparc_print_operand function call.
21796 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
21797 functions.
21798
9da15f94 217992011-04-30 Jan Hubicka <jh@suse.cz>
21800
6fe5844b 21801 PR middle-end/48752
9da15f94 21802 * ipa-inline.c (early_inliner): Disable when doing late
21803 addition of function.
21804
8853d378 218052011-04-30 Jakub Jelinek <jakub@redhat.com>
21806
e86bbaee 21807 * dwarf2out.c (get_address_mode): New inline.
21808 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
21809 if not dwarf_strict emit
21810 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
21811 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
21812 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
21813 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
21814 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
21815 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
21816 mem_loc_descriptor callers.
21817 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
21818 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
21819 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
21820 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
21821 (base_types): New variable.
21822 (get_base_type_offset, calc_base_type_die_sizes,
21823 base_type_for_mode, mark_base_types, base_type_cmp,
21824 move_marked_base_types): New functions.
21825 (calc_die_sizes): Assert that die_offset is 0 or equal to
21826 next_die_offset.
21827 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
21828 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
21829 callers. If not dwarf_strict, call mem_loc_descriptor even for
21830 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
21831 (gen_subprogram_die): Don't give up on call site parameters
21832 with non-integral or large integral modes. Adjust
21833 mem_loc_descriptor callers.
21834 (prune_unused_types): Call prune_unused_types_mark on base_types
21835 vector entries.
21836 (resolve_addr): Call mark_base_types.
21837 (dwarf2out_finish): Call move_marked_base_types.
21838
8853d378 21839 PR tree-optimization/48809
21840 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
21841 type.
21842 (gen_inbound_check): Don't compute index_expr - range_min in utype
21843 again, instead reuse SSA_NAME initialized in build_arrays.
21844 Remove two useless gsi_for_stmt calls.
21845
444e6845 218462011-04-29 Jeff Law <law@redhat.com>
21847
21848 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
21849
7771d558 218502011-04-29 Martin Jambor <mjambor@suse.cz>
21851
21852 * cgraph.h (cgraph_postorder): Remove declaration.
21853 * ipa-utils.h (ipa_free_postorder_info): Declare.
21854 (ipa_reverse_postorder): Likewise.
21855 * cgraphunit.c: Include ipa-utils.h.
21856 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
21857 * ipa-inline.c: Include ipa-utils.h.
21858 (ipa_inline): Update call to ipa_reverse_postorder.
21859 * ipa-pure-const.c (propagate_pure_const): Update call to
21860 ipa_reduced_postorder and ipa_print_order. Call
21861 ipa_free_postorder_info to clean up.
21862 (propagate_nothrow): Likewise.
21863 * ipa-reference.c (propagate): Removed a useless call to
21864 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
21865 and ipa_print_order. Call ipa_free_postorder_info to clean up.
21866 * ipa.c: Include ipa-utils.h.
21867 (ipa_profile): Update call to ipa_reverse_postorder.
21868 (cgraph_postorder): Moved to...
21869 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
21870 (ipa_utils_print_order): Renamed to ipa_print_order.
21871 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
21872 comments.
21873 (ipa_free_postorder_info): New function.
21874 * passes.c: Include ipa-utils.h.
21875 (do_per_function_toporder): Update call to ipa_reverse_postorder.
21876 (ipa_write_summaries): Likewise.
21877 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
21878 (cgraphunit.o): Likewise.
21879 (ipa.o): Likewise.
21880 (ipa-inline.o): Likewise.
21881
905aa3bd 218822011-04-29 Jan Hubicka <jh@suse.cz>
21883
905aa3bd 21884 * ipa-inline.h (clause_t): Turn into unsigned int.
21885 * ipa-inline-analysis.c (add_clause): Do more simplification.
21886 (and_predicates): Shortcut more cases.
21887 (predicates_equal_p): Move forward; check that clauses are properly
21888 ordered.
21889 (or_predicates): Shortcut more cases.
21890 (edge_execution_predicate): Rewrite as...
21891 (set_cond_stmt_execution_predicate): ... this function; handle
21892 __builtin_constant_p.
21893 (set_switch_stmt_execution_predicate): New .
21894 (compute_bb_predicates): New.
21895 (will_be_nonconstant_predicate): Update TODO.
21896 (estimate_function_body_sizes): Use compute_bb_predicates
21897 and free them later, always try to estimate if stmt is constant.
21898 (estimate_time_after_inlining, estimate_size_after_inlining):
21899 Gracefully handle optimized out edges.
21900 (read_predicate): Fix off by one error.
21901
141d02d1 219022011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
21903
21904 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
21905
109cfbe4 219062011-04-27 Xinliang David Li <davidxl@google.com>
21907
21908 * tree-profile.c (init_ic_make_global_vars): Set
21909 tls attribute on ic vars.
21910 * coverage.c (coverage_end_function): Initialize
21911 function_list with zero.
21912
7002a1c8 219132011-04-29 Richard Guenther <rguenther@suse.de>
21914
21915 * builtins.c (fold_builtin_classify_type): Use integer_type_node
21916 for the type of the result.
21917 (fold_builtin_isascii): Likewise.
21918 (fold_builtin_toascii): Use integer_type_node where appropriate.
21919 (fold_builtin_logb): Likewise.
21920 (fold_builtin_frexp): Likewise.
21921 (fold_builtin_strstr): Likewise.
21922 (fold_builtin_strpbrk): Likewise.
21923 (fold_builtin_fputs): Likewise.
21924 (fold_builtin_sprintf): Likewise.
21925 (fold_builtin_snprintf): Likewise.
21926 (fold_builtin_printf): Likewise.
21927 (do_mpfr_remquo): Use a proper type for the assigned constant.
21928 (do_mpfr_lgamma_r): Likewise.
21929 * dwarf2out.c (resolve_one_addr): Use size_int.
21930 * except.c (init_eh): Likewise.
21931 (assign_filter_values): Use integer_type_node for filter values.
21932 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
21933 indices.
21934 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
21935 for EH region numbers.
21936 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
21937 for the shift amount.
21938
f5ff0b21 219392011-04-29 Richard Guenther <rguenther@suse.de>
21940
21941 * expr.h (expand_shift): Rename to ...
21942 (expand_variable_shift): ... this.
21943 (expand_shift): Take a constant shift amount.
21944 * expmed.c (expand_shift): Rename to ...
21945 (expand_variable_shift): ... this.
21946 (expand_shift): New wrapper around expand_variable_shift.
21947 * expr.c (convert_move, emit_group_load_1, emit_group_store,
21948 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
21949 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
21950 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
21951 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
21952 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
21953 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
21954 emit_store_flag_1, emit_store_flag): Likewise.
21955 * builtins.c (expand_builtin_signbit): Likewise.
21956 * calls.c (load_register_parameters): Likewise.
21957 * function.c (assign_parm_setup_block): Likewise.
21958 * lower-subreg.c (resolve_shift_zext): Likewise.
21959 * optabs.c (widen_bswap, expand_abs_nojump,
21960 expand_one_cmpl_abs_nojump, expand_float): Likewise.
21961 * spu/spu.c (spu_expand_extv): Likewise.
21962 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
21963
b3d480fb 219642011-04-29 Richard Guenther <rguenther@suse.de>
21965
21966 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
21967 for the remapped region number.
21968 * predict.c (build_predict_expr): Use integer_type_node for the
21969 predict kind.
21970 * fold-const.c (fold_binary_loc): Use integer_type_node for
21971 the shift amount. Use a proper type for the PLUS_EXPR operand.
21972
d534cab0 219732011-04-29 Michael Matz <matz@suse.de>
21974
21975 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
21976 other trees that just builtins.
21977 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
21978
bad12c62 219792011-04-29 Richard Guenther <rguenther@suse.de>
21980
21981 * tree-nested.c (get_trampoline_type): Use size_int.
21982 (get_nl_goto_field): Likewise.
21983 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
21984 for all indexes.
21985 (lower_eh_constructs_2): Likewise.
21986 (lower_resx): Likewise.
21987 (lower_eh_dispatch): Likewise.
21988 * tree-mudflap.c (mf_build_string): Use size_int.
21989 (mudflap_register_call): Use integer_type_node for the flag.
21990 (mudflap_enqueue_constant): Use size_int.
21991 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
21992 instead of rebuilding it.
21993
cb755135 219942011-04-29 Richard Guenther <rguenther@suse.de>
21995
21996 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
21997 Handle OBJ_TYPE_REF.
21998 (find_func_aliases_for_call): Use it more consistently.
21999
d0aa45d0 220002011-04-29 Alexandre Oliva <aoliva@redhat.com>
22001
22002 * haifa-sched.c (last_nondebug_scheduled_insn): New.
22003 (rank_for_schedule): Use it.
22004 (schedule_block): Set it.
22005
06306fd3 220062011-04-28 David Li <davidxl@google.com>
22007
22008 * tree.c (crc32_string): Use crc32_byte.
22009 (crc32_byte): New function.
22010 * tree.h (crc32_byte): New function.
22011 * gcov.c (read_graph_file): Handle new cfg_cksum.
22012 (read_count_file): Ditto.
22013 * profile.c (instrument_values): Ditto.
22014 (get_exec_counts): Ditto.
22015 (read_profile_edge_counts): Ditto.
22016 (compute_branch_probabilities): Ditto.
22017 (compute_value_histograms): Ditto.
22018 (branch_prob): Ditto.
22019 (end_branch_prob): Ditto.
22020 * coverage.c (read_counts_file): Ditto.
22021 (get_coverage_counts): Ditto.
22022 (tree_coverage_counter_addr): Ditto.
22023 (coverage_checksum_string): Ditto.
22024 (coverage_begin_output): Ditto.
22025 (coverage_end_function): Ditto.
22026 (build_fn_info_type): Ditto.
22027 (build_fn_info_value): Ditto.
22028 * libgcov.c (gcov_exit): Ditto.
22029 * gcov-dump.c (tag_function): Ditto.
22030 (compute_checksum): Remove.
22031
bcfc04db 220322011-04-29 Alan Modra <amodra@gmail.com>
22033
22034 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
22035 unspec plus offset. Tidy macho code.
22036
cc91b414 220372011-04-29 Martin Jambor <mjambor@suse.cz>
22038
22039 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
22040 node instead of a decl. Update all callers.
22041 * cgraph.h: Update declaration.
22042
bc937a44 220432011-04-28 Ira Rosen <ira.rosen@linaro.org>
22044
22045 PR tree-optimization/48765
22046 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
22047 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
22048 to indicate if loop aware SLP is being used. Scan the statements
22049 and update the vectorization factor according to the type of
22050 vectorization before statement analysis.
22051 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
22052 pass it to vect_analyze_loop_operations.
22053 (vectorizable_reduction): Set number of copies to 1 in case of pure
22054 SLP statement.
22055 * tree-vect-stmts.c (vectorizable_conversion,
22056 vectorizable_assignment, vectorizable_shift,
22057 vectorizable_operation, vectorizable_type_demotion,
22058 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
22059 Likewise.
22060 (vectorizable_condition): Move the check that it is not SLP
22061 vectorization before the number of copies check.
22062 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
22063 to vectorize the loop using SLP.
22064
aefc445c 220652011-04-28 Jakub Jelinek <jakub@redhat.com>
22066
22067 PR middle-end/48597
22068 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
22069 inline asm.
22070
6ee152ce 220712011-04-28 Joseph Myers <joseph@codesourcery.com>
22072
22073 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
22074 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
22075 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
22076 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
22077 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
22078 linux*.h headers.
6fe5844b 22079 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6ee152ce 22080 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
22081 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
22082 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6fe5844b 22083 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6ee152ce 22084 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
22085 REG_NAME.
22086 * config/i386/linux.h (REG_NAME): Don't define.
22087 * config/i386/linux64.h (REG_NAME): Don't define.
22088 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
22089 Undefine before defining.
22090
0b50fa0e 220912011-04-28 Jan Hubicka <jh@suse.cz>
22092
6fe5844b 22093 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
22094 nonconstant_names array.
0b50fa0e 22095 (estimate_function_body_sizes): Build nonconstant_names array; handle
22096 BUILT_IN_CONSTANT_P.
22097
bd2bd89d 220982011-04-28 Richard Guenther <rguenther@suse.de>
22099
22100 PR bootstrap/48804
22101 Revert
22102 2011-04-28 Richard Guenther <rguenther@suse.de>
22103
22104 * tree-ssa-structalias.c (solve_constraints): Build succ graph
22105 as late as possible.
6fe5844b 22106
bbe0034f 221072011-04-28 Richard Guenther <rguenther@suse.de>
22108
22109 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
22110 (debug_constraint): Do it here.
22111 (dump_constraints): And here.
22112 (rewrite_constraints): And here.
22113 (dump_constraint_edge): Remove.
22114 (dump_constraint_graph): Rewrite to produce DOT output.
22115 (solve_constraints): Build succ graph as late as possible.
22116 Dump constraint graphs before and after solving.
22117
882f2f67 221182011-04-28 Richard Guenther <rguenther@suse.de>
22119
22120 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22121 New function split out from ...
22122 (find_func_aliases): ... here. Call it.
22123 (find_func_aliases_for_call): Likewise.
22124
8bf8131a 221252011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
22126
22127 * internal-fn.h (internal_fn_name_array): Declare.
22128 (internal_fn_flags_array): Likewise.
22129
63d5e521 221302011-04-27 Uros Bizjak <ubizjak@gmail.com>
22131
22132 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
22133 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
22134 Move from sse.md.
22135 (ssemodefsuffix): Remove.
22136 (ssevecmodesuffix): New mode attribute.
22137 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
22138 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
22139 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
22140 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
22141 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
22142 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
22143 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
22144 ssemodesuffix mode attribute.
22145 (float splitters): Use ssevecmodesuffix mode attribute.
22146 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
22147 (sseinsmode): Rename from avxvecmode.
22148 (avxsizesuffix): Rename from avxmodesuffix.
22149 (sseintvecmode): Rename from avxpermvecmode.
22150 (ssedoublevecmode): Rename from ssedoublesizemode.
22151 (ssehalfvecmode): Rename from avxhalfvecmode.
22152 (ssescalarmode): Rename from avxscalarmode.
22153 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
22154 templates for ssemodesuffix mode attribute.
22155 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
22156 mode attribute.
22157
22158 Adjust RTX patterns globally for renamed mode attributes.
22159
6a18c0be 221602011-04-27 Jan Hubcika <jh@suse.cz>
22161
22162 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
22163 * ipa-inline-analysis.c: Include alloc-pool.h.
22164 (edge_predicate_pool): New.
22165 (trye_predicate_p): New function
22166 (false_predicate_p): New function.
22167 (add_clause): Sanity check that false clauses are "optimized";
22168 never add clauses to predicate that is already known to be false.
22169 (and_predicate): Use flase_predicate_p.
22170 (evaulate_predicate): Rename to ...
22171 (evaluate_predicate): ... this one; update all callers; assert
22172 that false is not listed among possible truths.
22173 (dump_predicate): Use true_predicate_p.
22174 (account_size_time): Use false_predicate_p.
22175 (evaulate_conditions_for_edge): Rename to ...
22176 (evaluate_conditions_for_edge) ... this one.
22177 (edge_set_predicate): New function.
22178 (inline_edge_duplication_hook): Duplicate edge predicates.
22179 (inline_edge_removal_hook): Free edge predicates.
63d5e521 22180 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
6a18c0be 22181 (dump_inline_summary): Update.
22182 (estimate_function_body_sizes): Set edge predicates.
22183 (estimate_calls_size_and_time): Handle predicates.
22184 (estimate_callee_size_and_time): Update.
22185 (remap_predicate): Add toplev_predicate; update comment.
22186 (remap_edge_predicates): New function.
22187 (inline_merge_summary): Compute toplev predicate; update.
22188 (read_predicate): New function.
22189 (read_inline_edge_summary): Use it.
22190 (inline_read_section): Likewise.
22191 (write_predicate): New function.
22192 (write_inline_edge_summary): Use it.
22193 (inline_write_summary): Likewise.
22194 (inline_free_summary): Free alloc pool and edge summary vec.
22195
b392ee8b 221962011-04-27 Richard Guenther <rguenther@suse.de>
22197
22198 * tree-ssa-structalias.c (changed_count): Remove.
22199 (changed): Use a bitmap.
22200 (unify_nodes): Adjust.
22201 (do_sd_constraint): Likewise.
22202 (do_ds_constraint): Likewise.
22203 (do_complex_constraint): Likewise.
22204 (solve_graph): Likewise.
22205
4f7a1122 222062011-04-27 Jan Hubicka <jh@suse.cz>
22207
22208 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
22209
4581fd42 222102011-04-27 Uros Bizjak <ubizjak@gmail.com>
22211
22212 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
22213 (avx_vperm2f128_*_operand): Ditto.
22214 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
22215 Use avx_vpermilp_parallel in insn condition.
22216 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
22217 Use avx_vperm2f128_parallel in insn condition.
22218
e44576dd 222192011-04-27 Richard Guenther <rguenther@suse.de>
22220
22221 * Makefile.in (tree-ssa-structalias.o): Remove
22222 gt-tree-ssa-structalias.h dependency.
22223 (GTFILES): Remove tree-ssa-structalias.c.
22224 * tree.c (allocate_decl_uid): New function.
22225 (make_node_stat): Use it.
22226 (copy_node_stat): Likewise.
22227 * tree.h (allocate_decl_uid): Declare.
22228 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
22229 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
22230 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4581fd42 22231 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
e44576dd 22232 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
22233 (struct heapvar_map): Likewise.
22234 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
22235 heapvar_insert): Likewise.
22236 (make_heapvar_for): Rename to ...
22237 (make_heapvar): ... this. Simplify.
22238 (fake_var_decl_obstack): New global var.
22239 (build_fake_var_decl): New function.
22240 (make_constraint_from_heapvar): Adjust.
22241 (handle_lhs_call): Likewise.
22242 (create_function_info_for): Likewise.
22243 (intra_create_variable_infos): Likewise.
22244 (init_alias_vars): Allocate fake_var_decl_obstack.
22245 (init_alias_heapvars, delete_alias_heapvars): Remove.
22246 (compute_points_to_sets): Do not call init_alias_heapvars.
22247 (ipa_pta_execute): Likewise.
22248 (delete_points_to_sets): Free fake_var_decl_obstack.
22249
eca540eb 222502011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22251
22252 * config/spu/divmovti4.c (union qword_UTItype): New data type.
22253 (si_from_UTItype, si_to_UTItype): New functions.
22254 (__udivmodti4): Use them to implement type-punning.
22255 * config/spu/multi3.c (union qword_TItype): New data type.
22256 (si_from_TItype, si_to_TItype): New functions.
22257 (__multi3): Use them to implement type-punning.
22258
431ad7e0 222592011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22260
22261 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
22262
b1471ee0 222632011-04-27 Jan Hubicka <jh@suse.cz>
22264
22265 * ipa-prop.c (function_insertion_hook_holder): New holder.
22266 (ipa_add_new_function): New function.
4581fd42 22267 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
22268 Register/deregister holder.
b1471ee0 22269
c5321600 222702011-04-27 Richard Guenther <rguenther@suse.de>
22271
22272 PR tree-optimization/48772
4581fd42 22273 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
c5321600 22274
9c455d1e 222752011-04-27 Richard Guenther <rguenther@suse.de>
22276
22277 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
22278 TARGET_MEM_REF handling.
22279
127aa150 222802011-04-27 Nick Clifton <nickc@redhat.com>
22281
ca74bd85 22282 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
22283 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
22284 (REG_CLASS_NAMES): Likewise.
22285 (REG_CLASS_CONTENTS): Likewise.
22286 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
22287 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
22288 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
22289 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
22290 (EVEN_REGS): New macro. Alias for QUAD_REGS.
22291 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
22292 duplicate register classes.
51e83f48 22293 (frv_class_likely_spilled_p): Likewise.
ca74bd85 22294 (frv_register_move_cost): Likewise.
22295
127aa150 22296 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
22297 end of the regno_reg_class array.
22298
4095a8c8 222992011-04-27 Jakub Jelinek <jakub@redhat.com>
22300
22301 PR c/48742
22302 * c-typeck.c (build_binary_op): Don't wrap arguments if
22303 int_operands is true.
22304
90d67aec 223052011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
22306
22307 PR target/48767
22308 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
22309 targetm.calls.must_pass_in_stack for void type.
22310
0835ad03 223112011-04-26 Jan Hubicka <jh@suse.cz>
22312
22313 * cgraphbuild.c (build_cgraph_edges): Update call
22314 of cgraph_create_edge and cgraph_create_indirect_edge.
22315 * cgraph.c (cgraph_create_edge_including_clones,
22316 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
22317 cgraph_update_edges_for_call_stmt_node): Do not take nest
22318 argument; do not initialize call_stmt_size/time.
22319 (dump_cgraph_node): Do not dump nest.
22320 (cgraph_clone_edge): Do not take loop_nest argument;
22321 do not propagate it; do not clone call_stmt_size/time.
22322 (cgraph_clone_node): Likewise.
22323 (cgraph_create_virtual_clone): Update.
22324 * cgraph.h (struct cgraph_edge): Remove
22325 call_stmt_size/call_stmt_time/loop_nest.
22326 (cgraph_create_edge, cgraph_create_indirect_edge,
22327 cgraph_create_edge_including_clones, cgraph_clone_node): Update
22328 prototype.
22329 * tree-emutls.c (gen_emutls_addr): Update.
22330 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
22331 loop_nest; handle indirect calls, too.
22332 (clone_inlined_nodes): Do not care about updating inline summaries.
22333 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
22334 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
22335 stream call_stmt_size/call_stmt_time/loop_nest.
22336 * ipa-inline.c (edge_badness): Update.
22337 (ipa_inline): dump summaries after inlining.
22338 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4581fd42 22339 New.
0835ad03 22340 (inline_edge_summary): New function.
22341 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
22342 (inline_edge_removal_hook): Handle edge summaries.
22343 (inline_edge_duplication_hook): New hook.
22344 (inline_summary_alloc): Alloc hooks.
22345 (initialize_growth_caches): Do not register removal hooks.
22346 (free_growth_caches); Do not free removal hook.
22347 (dump_inline_edge_summary): New function.
22348 (dump_inline_summary): Use it.
22349 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
22350 (inline_update_callee_summaries): New function.
22351 (inline_merge_summary): Use it.
22352 (do_estimate_edge_time, do_estimate_edge_growth): Update.
22353 (read_inline_edge_summary): New function.
22354 (inline_read_section): Use it.
22355 (write_inline_edge_summary): New function.
22356 (inline_write_summary): Use it.
22357 (inline_free_summary): Free edge new holders.
22358 * tree-inline.c (copy_bb): Update.
22359
75a2cdc8 223602011-04-26 Jason Merrill <jason@redhat.com>
22361
22362 * tree-eh.c (lower_try_finally_switch): Create the label along with
22363 the CASE_LABEL_EXPR.
22364
d958c180 223652011-04-26 David S. Miller <davem@davemloft.net>
22366 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22367
22368 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
22369 * configure: Regenerate.
22370
9257db1b 223712011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
22372
22373 PR target/48258
22374 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
22375 reduction.
22376 (VEC_reduc): New code iterator and splitters for vector reduction.
22377 (VEC_reduc_name): Ditto.
22378 (VEC_reduc_rtx): Ditto.
22379 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
22380 (reduc_<VEC_reduc_name>_v4sf): Ditto.
22381
22382 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
22383 support for extracting SF on VSX.
22384
22385 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
22386 generating xscvspdp.
22387 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
22388 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
22389 double add, minimum, maximum vector reduction.
22390 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
22391 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
22392 optimize double vector reduction.
22393 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
22394
792fc735 223952011-04-26 Joseph Myers <joseph@codesourcery.com>
22396
22397 * config/fr30/fr30.h (inhibit_libc): Don't define.
22398 * config/m32r/m32r-protos.h: Correct comment.
22399 * config/v850/v850.h (GHS_default_section_names,
22400 GHS_current_section_names): Use tree, not union tree_node *.
22401
8c3e8d68 224022011-04-26 Xinliang David Li <davidxl@google.com>
22403
4581fd42 22404 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
8c3e8d68 22405 * c-family/c-opts.c (c_common_handle_option): Set
22406 warn_maybe_uninitialized.
22407 * opts.c (common_handle_option): Ditto.
22408 * common.opt: New option.
22409 * tree-ssa.c (warn_uninit): Add one more parameter.
22410 (warn_uninitialized_var): Pass warning code.
22411 * tree-flow.h: Interface change.
22412
4f823da5 224132011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22414
4581fd42 22415 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4f823da5 22416 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
22417 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
22418
35c73f70 224192011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22420
22421 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
22422 * config/mips/mips.opt (mmips-tfile): Remove.
22423
22424 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
22425 mips-tdump reference to ...
4581fd42 22426 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
35c73f70 22427 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
22428 reference by Tru64 UNIX.
22429
89c993b6 224302011-04-26 Jakub Jelinek <jakub@redhat.com>
22431
a05063ec 22432 PR debug/48768
22433 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
22434 is error_mark_node, set value to NULL.
22435
89c993b6 22436 PR tree-optimization/48734
22437 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
22438 if return value from maybe_fold_*_comparsions isn't something
22439 the code is prepared to handle.
22440
3c0bc3f2 224412011-04-26 Uros Bizjak <ubizjak@gmail.com>
22442
22443 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
22444 mode check.
22445 (ext_QIreg_nomode_operands): Remove.
22446 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
22447 (*andsi_1): Ditto.
22448 (*andhi_1): Ditto.
22449
db7e6009 224502011-04-26 Andrew Stubbs <ams@codesourcery.com>
22451
22452 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
22453
5da6a36e 224542011-04-26 Richard Guenther <rguenther@suse.de>
22455
22456 * c-typeck.c (build_unary_op): Do not expand array-refs via
22457 pointer arithmetic. Only adjust qualifiers for function types.
22458
224592011-04-26 Richard Guenther <rguenther@suse.de>
22460
22461 PR middle-end/48694
22462 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
22463 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3c0bc3f2 22464 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
22465 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
5da6a36e 22466
8de5c43e 224672011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
22468
6fe5844b 22469 * doc/extend.texi: Document __underlying_type.
8de5c43e 22470
844593f2 224712011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
22472
22473 * config/rs6000/titan.md (automata_option "progress"): Remove.
22474
50258e8d 224752011-04-25 Jeff Law <law@redhat.com>
22476
22477 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
22478
cdd0bb4b 224792011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
22480
22481 * system.h (ENUM_BITFIELD): Remove.
22482
8ebe31d6 224832011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
51d5dcac 22484 Eric Botcazou <ebotcazou@adacore.com>
8ebe31d6 22485
22486 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
22487 for STORE_FLAG_VALUE==-1 case.
22488
58ba8f5d 224892011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
22490
22491 PR target/43804
22492 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
22493 LEGITIMATE_PIC_OPERAND_P.
22494
5cb1b112 224952011-04-24 Jan Hubicka <jh@suse.cz>
22496
22497 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
22498 WPA hack.
3c0bc3f2 22499 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
22500 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
22501 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
5cb1b112 22502 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
22503 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
22504 Sanity check predicate length.
22505 (remap_predicate): Likewise; sanity check jump functions.
22506 (inline_read_section, inline_write_summary): Sanity check
22507 predicate length.
22508
a799da27 225092011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
22510
22511 PR other/48748
22512 * doc/extend.texi (Type Traits): Document __is_standard_layout,
22513 __is_literal_type, and __is_trivial; update throughout about
22514 possibly cv-qualified void types.
22515
832d4c31 225162011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
22517
22518 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
22519 testsuite and make it version agnostic.
22520
ca0564e6 225212011-04-22 Jan Hubicka <jh@suse.cz>
22522
22523 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
22524
6ba60c90 225252011-04-23 Jakub Jelinek <jakub@redhat.com>
22526
22527 PR c/48685
22528 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
22529 to VOID_TYPE even around MODIFY_EXPR.
22530
f9cc5f3e 225312011-04-22 Mike Stump <mikestump@comcast.net>
22532
f61e26f9 22533 * gensupport.c (read_md_rtx): Fix typo in comment.
f9cc5f3e 22534 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
22535 comment.
22536
a41f2a28 225372011-04-22 Jan Hubicka <jh@suse.cz>
22538
22539 * gengtype.c (open_base_files): Add ipa-inline.h include.
3c0bc3f2 22540 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
22541 ipa-prop.c; update all uses.
a41f2a28 22542 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3c0bc3f2 22543 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
22544 merge summary of inlined function into former caller.
a41f2a28 22545 * ipa-inline.c (max_benefit): Remove.
22546 (edge_badness): Compensate for removal of benefits.
3c0bc3f2 22547 (update_caller_keys): Use
22548 reset_node_growth_cache/reset_edge_growth_cache.
a41f2a28 22549 (update_callee_keys): Likewise.
22550 (update_all_callee_keys): Likewise.
3c0bc3f2 22551 (inline_small_functions): Do not collect max_benefit; do not reset
22552 estimated_growth; call free_growth_caches and initialize_growth_caches.
22553 * ipa-inline.h (struct condition, type clause_t, struct predicate,
22554 struct size_time_entry): New structures.
a41f2a28 22555 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3c0bc3f2 22556 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
22557 and estimated_growth.
a41f2a28 22558 (edge_growth_cache_entry): New structure.
22559 (node_growth_cache, edge_growth_cache): New global vars.
22560 (estimate_growth): Turn into inline.
22561 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
22562 initialize_growth_caches, free_growth_caches): Declare.
22563 (estimate_edge_growth): Rewrite.
22564 (estimate_edge_time): Implement as inline cache lookup.
3c0bc3f2 22565 (reset_node_growth_cache, reset_edge_growth_cache): New inline
22566 functions.
a41f2a28 22567 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
22568 (NUM_CONDITIONS): New constant.
22569 (predicate_conditions): New enum.
22570 (IS_NOT_CONSTANT): New constant.
22571 (edge_removal_hook_holder): New var.
22572 (node_growth_cache, edge_growth_cache): New global vars.
3c0bc3f2 22573 (true_predicate, single_cond_predicate, false_predicate,
22574 not_inlined_predicate, add_condition, add_clause, and_predicates,
22575 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
22576 dump_clause, dump_predicate, account_size_time,
a41f2a28 22577 evaulate_conditions_for_edge): New functions.
22578 (inline_summary_alloc): Move to heap.
22579 (inline_node_removal_hook): Clear condition and entry vectors.
22580 (inline_edge_removal_hook): New function.
22581 (initialize_growth_caches, free_growth_caches): New function.
22582 (dump_inline_summary): Update.
22583 (edge_execution_predicate): New function.
22584 (will_be_nonconstant_predicate): New function.
22585 (estimate_function_body_sizes): Compute BB and constantness predicates.
22586 (compute_inline_parameters): Do not clear estimated_growth.
22587 (estimate_edge_size_and_time): New function.
22588 (estimate_calls_size_and_time): New function.
22589 (estimate_callee_size_and_time): New function.
22590 (remap_predicate): New function.
22591 (inline_merge_summary): New function.
22592 (do_estimate_edge_time): New function based on...
22593 (estimate_edge_time): ... this one.
22594 (do_estimate_edge_growth): New function.
22595 (do_estimate_growth): New function based on....
22596 (estimate_growth): ... this one.
22597 (inline_analyze_function): Analyze after deciding on jump functions.
22598 (inline_read_section): New function.
22599 (inline_read_summary): Use it.
22600 (inline_write_summary): Write all the new data.
22601 * ipa-prop.c (ipa_get_param_decl_index): Export.
22602 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3c0bc3f2 22603 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
22604 Declare.
22605 (ipa_get_lattice): Move here from ipa-cp.c
a41f2a28 22606 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
22607 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
22608 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
22609 cgraph_edge_inlinable_p): Remove.
22610 * cgraphunit.c: Include ipainline.h
3c0bc3f2 22611 (cgraph_process_new_functions): Update call of
22612 compute_inline_parameters.
a41f2a28 22613
0ac7bb2f 226142011-04-22 Richard Guenther <rguenther@suse.de>
22615
22616 * tree.c (build_int_cst): Properly create canonicalized integer
22617 constants.
22618 (build_int_cst_type): Remove scary comments.
22619
68ebb06f 226202011-04-22 Xinliang David Li <davidxl@google.com>
22621
22622 * toplev.c (process_options): Enable -Werror=coverage-mismatch
22623 by default when -Wno-error is not specified.
22624 * opts-global.c (decode_options): Remove call to
22625 control_warning_options.
22626
19d861b9 226272011-04-22 Jakub Jelinek <jakub@redhat.com>
22628
22629 PR tree-optimization/48717
22630 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
22631 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
22632
e9da2473 226332011-04-22 Joseph Myers <joseph@codesourcery.com>
22634
22635 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
22636 definition where used.
22637
af06e5ef 226382011-04-22 Jakub Jelinek <jakub@redhat.com>
22639
22640 PR c/48716
22641 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
22642 TREE_STATIC variables declared inside of some OpenMP construct.
22643
a5c37976 226442011-04-22 Martin Jambor <mjambor@suse.cz>
22645
22646 PR middle-end/48585
19e1bfc7 22647 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
a5c37976 22648
ac4e675f 226492011-04-22 Alexander Monakov <amonakov@ispras.ru>
22650
22651 PR c/36750
22652 * c-typeck.c (pop_init_level): Do not warn about initializing
22653 with ` = {0}'.
22654
0645b79d 226552011-04-22 Alan Modra <amodra@gmail.com>
22656
22657 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
22658 when returning call_cookie.
22659 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
22660 pointers, to functions with no more vector args than the current
22661 function, and some non-local calls for ABI_V4.
22662 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
22663 sibcall_nonlocal_aix64): Combine to ..
22664 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
22665 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
22666 (sibcall_value_nonlocal_aix<mode>): ..likewise.
22667 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
22668 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
22669 operand.
22670 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
22671 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
22672 sibcall_value_symbolic_64): Delete.
22673
1ad3e14c 226742011-04-21 Xinliang David Li <davidxl@google.com>
22675
22676 * cgraph.h: Remove pid.
22677 * cgraph.c: Remove pid.
22678 * value-prof.c (init_node_map): New function.
22679 (del_node_map): New function.
22680 (find_func_by_funcdef_no): New function.
22681 (gimple_ic_transform): Call new function.
22682 * cgraphunit.c (cgraph_finalize_function): Remove pid.
22683 * function.c (get_last_funcdef_no): New function.
22684 * function.h (get_last_funcdef_no): New function.
22685 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
22686 to libgcov function.
22687 (tree-profiling): Call node map init and delete function.
22688
bcebc172 226892011-04-21 Ian Lance Taylor <iant@google.com>
22690
22691 * godump.c (go_format_type): Use exported Go name for anonymous
22692 field name.
22693
fc6bcbe2 226942011-04-21 Nathan Froyd <froydnj@codesourcery.com>
22695
22696 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
22697 Call builtin_function_type_list instead of builtin_function_type.
22698 (UNARY, BINARY, TRINARY, QUAD): Likewise.
22699
7bb58c4d 227002011-04-21 Nathan Froyd <froydnj@codesourcery.com>
22701
22702 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
22703 build_function_type_list instead of build_function_type.
22704 Delete variable `endlink'.
22705
61b4d1b5 227062011-04-21 Nathan Froyd <froydnj@codesourcery.com>
22707
22708 * config/s390/s390.c (s390_init_builtins): Call
22709 build_function_type_list instead of build_function_type.
22710
58711bd3 227112011-04-21 Nathan Froyd <froydnj@codesourcery.com>
22712
22713 * config/ia64/ia64.c (ia64_init_builtins): Call
22714 build_function_type_list instead of builtin_function_type.
22715
2a24c3a6 227162011-04-21 Easwaran Raman <eraman@google.com>
22717
9bbe51a2 22718 * cfgexpand.c (stack_var): Remove OFFSET...
2a24c3a6 22719 (add_stack_var): ...and its reference here...
22720 (expand_stack_vars): ...and here.
22721 (stack_var_cmp): Sort by descending order of size.
22722 (partition_stack_vars): Change heuristic.
19e1bfc7 22723 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2a24c3a6 22724 (dump_stack_var_partition): Add newline after each partition.
22725
f0a34d7c 227262011-04-21 Dimitrios Apostolou <jimis@gmx.net>
22727 Jeff Law <law@redhat.com>
22728
3c0bc3f2 22729 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
f0a34d7c 22730 * gengtype.c (matching_file_name_substitute): Likewise.
22731
81a847ed 227322011-04-21 Richard Guenther <rguenther@suse.de>
22733
22734 PR lto/48703
19e1bfc7 22735 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
81a847ed 22736
d5c50c6d 227372011-04-21 Eric Botcazou <ebotcazou@adacore.com>
22738
22739 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
22740
a49d1bae 227412011-04-21 Richard Guenther <rguenther@suse.de>
22742
22743 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
22744 file name.
22745
2622064f 227462011-04-21 Richard Guenther <rguenther@suse.de>
22747
22748 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
22749 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
22750 Use DECL_P, not SSA_VAR_P.
22751 (ptr_derefs_may_alias_p): Likewise.
22752 (ptr_deref_may_alias_ref_p_1): Likewise.
22753 (decl_refs_may_alias_p): Likewise.
22754 (refs_may_alias_p_1): Likewise.
22755 (ref_maybe_used_by_call_p_1): Likewise.
22756 (call_may_clobber_ref_p_1): Likewise.
22757 (indirect_ref_may_alias_decl_p): Assume indirect refrences
22758 are either MEM_REF or TARGET_MEM_REF.
22759 (indirect_refs_may_alias_p): Likewise.
22760 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
22761 for MEM_EXPR of indirect calls.
22762
235b5b0e 227632011-04-21 Tristan Gingold <gingold@adacore.com>
22764
22765 * vmsdbgout.c (write_srccorr): Compute file length from the string.
22766 (dst_file_info_struct): Remove flen field.
22767 (lookup_filename): Remove code that set flen field.
22768
72b989d8 227692011-04-21 Tristan Gingold <gingold@adacore.com>
22770
22771 * config/ia64/ia64.c (ia64_start_function): Add a guard.
22772
57026a70 227732011-04-21 Uros Bizjak <ubizjak@gmail.com>
22774
22775 PR target/48708
22776 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
22777 vec_extract and vec_concat for non-SSE4_1 targets.
22778
91234829 227792011-04-21 Richard Guenther <rguenther@suse.de>
22780
22781 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
22782 return statements.
22783
d503b516 227842011-04-21 Joseph Myers <joseph@codesourcery.com>
22785
22786 * config/i386/cygming.h (union tree_node, TREE): Don't define or
22787 undefine.
22788 (FILE): Don't undefine.
22789
842ae815 227902011-04-21 Joseph Myers <joseph@codesourcery.com>
22791
22792 * config/alpha/alpha.c (struct machine_function): Use rtx, not
22793 struct rtx_def *.
22794 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
22795 struct rtx_def *.
22796 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
57026a70 22797 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
842ae815 22798 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
22799 rtx_def *.
22800 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
22801 definitions where used.
22802 * config/microblaze/microblaze.h (struct microblaze_args): Use
22803 rtx, not struct rtx_def *.
22804 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
22805 rtx_def *.
57026a70 22806 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
22807 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
842ae815 22808 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
22809 not struct rtx_def *.
22810 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
22811 struct rtx_def *.
22812 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
22813 rtx_def *.
57026a70 22814 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
842ae815 22815
27b32feb 228162011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
22817
22818 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
22819 operand_equal_p to compare DR_BASE_ADDRESSes.
22820 (vect_check_interleaving): Likewise.
22821
dddb35a9 228222011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
22823
22824 PR target/46329
22825 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
22826 for all Neon struct constants.
22827
ca316360 228282011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
22829
22830 * target.def (legitimate_constant_p): New hook.
22831 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
22832 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
22833 * doc/tm.texi: Regenerate.
22834 * hooks.h (hook_bool_mode_rtx_true): Declare.
22835 * hooks.c (hook_bool_mode_rtx_true): Define.
22836 * system.h (LEGITIMATE_CONSTANT_P): Poison.
22837 * calls.c (precompute_register_parameters): Replace uses of
22838 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
22839 (emit_library_call_value_1): Likewise.
22840 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
22841 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
22842 * ira-costs.c (scan_one_insn): Likewise.
22843 * recog.c (general_operand, immediate_operand): Likewise.
22844 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
22845 * reload1.c (init_eliminable_invariants): Likewise.
22846
22847 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
22848 mode argument.
22849 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
22850 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
22851 argument.
22852 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22853 * config/alpha/predicates.md (input_operand): Update call to
22854 alpha_legitimate_constant_p.
22855
22856 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
22857 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
22858 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
22859 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22860 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
22861 (arm_legitimate_constant_p): New functions.
22862 (arm_cannot_force_const_mem): Make static.
22863
22864 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
22865
22866 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
22867 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
22868 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
22869 instead of bfin_legitimate_constant_p.
22870 (bfin_legitimate_constant_p): Make static. Add a mode argument.
22871 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22872
22873 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
22874
22875 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
22876
22877 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
22878 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
22879 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22880 (frv_legitimate_constant_p): Make static. Add a mode argument.
22881
22882 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
22883 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
22884 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
22885
22886 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
22887 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
22888 * config/i386/i386.c (legitimate_constant_p): Rename to...
22889 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
22890 argument.
22891 (ix86_cannot_force_const_mem): Update accordingly.
22892 (ix86_legitimate_address_p): Likewise.
22893 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22894 * config/i386/i386.md: Update commentary.
22895
22896 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
22897 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
22898 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22899 (ia64_legitimate_constant_p): Make static. Add a mode argument.
22900
22901 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
22902
22903 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
22904 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
22905 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22906 (lm32_legitimate_constant_p): Make static. Add a mode argument.
22907
22908 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
22909 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
22910 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
22911
22912 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
22913 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22914 (m32r_legitimate_constant_p): New function.
22915
22916 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
22917 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
22918 LEGITIMATE_CONSTANT_P.
22919 (LEGITIMATE_CONSTANT_P): Delete.
22920 * config/m68k/m68k.c (m68k_expand_prologue): Call
22921 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
22922 (m68k_legitimate_constant_p): New function.
22923 * config/m68k/m68k.md: Update comments.
22924
22925 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
22926 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22927 (mcore_legitimate_constant_p): New function.
22928
22929 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
22930 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
22931 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
22932 Add a mode argument.
22933 (mep_legitimate_address): Update accordingly.
22934 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22935
22936 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
22937 Delete.
22938 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
22939 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
22940 static. Check OP's mode for VOIDmode.
22941 (microblaze_legitimate_constant_p): New function.
22942 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22943
22944 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
22945 * config/mips/mips.c (mips_legitimate_constant_p): New function.
22946 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
22947 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22948 * config/mips/predicates.md: Update comments.
22949
22950 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
22951 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
22952 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22953 (mmix_legitimate_constant_p): Make static, return a bool, and take
22954 a mode argument.
22955 (mmix_print_operand_address): Update accordingly.
22956
22957 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
22958 Delete.
22959 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
57026a70 22960 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
22961 static. Add a mode argument.
ca316360 22962 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22963
22964 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
22965
22966 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
22967 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22968 (pa_legitimate_constant_p): New function.
22969
22970 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
22971
22972 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
22973 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22974 (pdp11_legitimate_constant_p): New function.
22975
22976 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
22977 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22978 (rs6000_legitimate_constant_p): New function.
22979
22980 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
22981 (rx_legitimate_constant_p): ...this.
22982 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
22983 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
22984 (rx_legitimate_constant_p): ...this.
22985 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22986 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
22987
22988 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
22989 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
22990 * config/s390/s390.c (legitimate_constant_p): Rename to...
22991 (s390_legitimate_constant_p): ...this. Make static, return a bool,
22992 and add a mode argument.
22993 (TARGET_LEGITIMATE_CONSTANT_P): Define.
22994
22995 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
22996
22997 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
22998 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
22999 (sh_legitimate_constant_p): New function.
23000
23001 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
23002 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
23003 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
23004 (legitimate_constant_p): Rename to...
23005 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
23006 argument.
23007 (constant_address_p): Update accordingly.
23008
23009 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
23010 argument and return a bool.
23011 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
23012 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
23013 (spu_legitimate_constant_p): Add a mode argument and return a bool.
23014 (spu_rtx_costs): Update accordingly.
23015 * config/spu/predicates.md (vec_imm_operand): Likewise.
23016
23017 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
23018
23019 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
23020 * config/v850/v850.c (v850_legitimate_constant_p): New function.
23021 (TARGET_LEGITIMATE_CONSTANT_P): Define.
23022
23023 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
23024 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
23025 * config/vax/vax.c (legitimate_constant_p): Likewise.
23026
23027 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
23028 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
23029 (xtensa_legitimate_constant_p): New function.
23030
7d7d7bd2 230312011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
23032
23033 * target.def (cannot_force_const_mem): Add a mode argument.
23034 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
23035 * doc/tm.texi: Regenerate.
23036 * hooks.h (hook_bool_mode_rtx_false): Declare.
23037 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
23038 (hook_bool_mode_const_rtx_true): Likewise.
23039 (hook_bool_mode_rtx_false): New function.
23040 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
23041 to be non-VOID. Update call to cannot_force_const_mem.
23042 (find_reloads): Update accordingly.
23043 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
23044 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
23045 argument.
23046 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
23047 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
23048 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
23049 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
23050 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
23051 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
23052 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
23053 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
23054 (m68k_cannot_force_const_mem): ...this new function.
23055 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
23056 argument.
23057 (mips_const_insns, mips_legitimize_const_move): Update calls.
23058 (mips_secondary_reload_class): Likewise.
23059 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
23060 (pa_cannot_force_const_mem): ...this new function.
57026a70 23061 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
7d7d7bd2 23062 (rs6000_cannot_force_const_mem): ...this new function.
23063 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
23064 argument.
23065 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
23066 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
23067 to...
23068 (xtensa_cannot_force_const_mem): ...this new function.
23069
a2a9d516 230702011-04-20 Nathan Froyd <froydnj@codesourcery.com>
23071
23072 * config/mips/mips.c (mips16_build_function_stub): Call
23073 build_function_type_list instead of build_function_type.
23074 (mips16_build_call_stub): Likewise.
23075
43a83738 230762011-04-20 Nathan Froyd <froydnj@codesourcery.com>
23077
23078 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
23079 instead of build_function_type.
23080
ab27801e 230812011-04-20 Nathan Froyd <froydnj@codesourcery.com>
23082
23083 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
23084 instead of build_function_type.
23085
bd4b3ce4 230862011-04-20 Uros Bizjak <ubizjak@gmail.com>
23087
23088 PR target/48678
23089 * config/i386/i386.md (insv): Change operand 0 constraint to
23090 "register_operand". Change operand 1 and 2 constraint to
23091 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
23092 * config/i386/sse.md (sse4_1_pinsrb): Export.
23093 (sse2_pinsrw): Ditto.
23094 (sse4_1_pinsrd): Ditto.
23095 (sse4_1_pinsrq): Ditto.
23096 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
23097 * config/i386/i386.c (ix86_expand_pinsr): New.
23098
6a818150 230992011-04-20 Easwaran Raman <eraman@google.com>
23100
23101 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
23102 containing union type only with -fstrict-aliasing.
23103
dd045aee 231042011-04-20 Jim Meyering <meyering@redhat.com>
23105
23106 Remove useless if-before-free tests.
23107 * calls.c (expand_call, save_area): Likewise.
23108 * cfgcleanup.c (try_forward_edges): Likewise.
23109 * collect2.c (collect_execute): Likewise.
23110 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
23111 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
23112 * coverage.c (coverage_checksum_string): Likewise.
23113 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
23114 * cselib.c (cselib_init): Likewise.
23115 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
23116 (df_set_clean_cfg): Likewise.
23117 * function.c (free_after_compilation): Likewise.
23118 * gcc.c (do_spec_1, main): Likewise.
23119 * gcov.c (create_file_names): Likewise.
23120 * gensupport.c (identify_predicable_attribute): Likewise.
23121 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
23122 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
23123 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
23124 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
23125 * ipa-pure-const.c (local_pure_const): Likewise.
23126 * ipa-reference.c (propagate): Likewise.
23127 * ira-costs.c (free_ira_costs): Likewise.
23128 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
23129 * matrix-reorg.c (mat_free): Likewise.
23130 * prefix.c (get_key_value): Likewise.
23131 * profile.c (compute_value_histograms): Likewise.
23132 * reload1.c (free_reg_equiv): Likewise.
23133 * sched-deps.c (free_deps): Likewise.
23134 * sel-sched-ir.c (fence_clear): Likewise.
23135 * sese.c (set_rename, if_region_set_false_region): Likewise.
23136 * tree-data-ref.c (free_rdg): Likewise.
23137 * tree-eh.c (lower_try_finally): Likewise.
23138 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
23139 * tree-ssa-live.c (delete_var_map): Likewise.
23140 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
23141 * tree-ssa-pre.c (phi_trans_add): Likewise.
23142
39efead8 231432011-04-20 Jakub Jelinek <jakub@redhat.com>
23144
23145 PR tree-optimization/48611
23146 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
23147 beyond ERT_MUST_NOT_THROW region.
23148
516cedbd 231492011-04-20 Catherine Moore <clm@codesourcery.com>
23150
23151 * config/mips/mips.opt (mfix-24k): New.
23152 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
23153 * config/mips/mips.md (length): Increase by 4 for stores if
23154 fixing 24K errata.
23155 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
23156 all noreorder if fixing 24K errata.
23157 * doc/invoke.texi: Document mfix-24k.
23158
efecc03c 231592011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
23160
23161 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
57026a70 23162 quad-word modes, reduce to 9-bit index range when above 1016 limit.
efecc03c 23163
72a26e19 231642011-04-20 Andrew Stubbs <ams@codesourcery.com>
23165
23166 * config/arm/arm.c (arm_gen_constant): Move movw support ....
23167 (const_ok_for_op): ... to here.
23168
6cfb1e41 231692011-04-20 Kai Tietz <ktietz@redhat.com>
23170
57026a70 23171 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
23172 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
6cfb1e41 23173
d48b5575 231742011-04-20 Andrew Stubbs <ams@codesourcery.com>
23175
23176 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
23177
2cac353d 231782011-04-20 Richard Guenther <rguenther@suse.de>
23179
23180 PR tree-optimization/47892
23181 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
23182 are if-convertible.
23183
f551006d 231842011-04-20 Eric Botcazou <ebotcazou@adacore.com>
23185
23186 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
23187
512b78c2 231882011-04-20 Tristan Gingold <gingold@adacore.com>
23189
23190 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
23191
7c2339f8 231922011-04-20 Georg-Johann Lay <avr@gjlay.de>
23193
23194 PR target/18145
23195
23196 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
23197 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
23198 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
23199 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
23200 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
23201
23202 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
23203 New prototype.
23204
23205 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
23206 (avr_asm_named_section, avr_asm_output_aligned_common,
23207 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
23208 New functions to update...
23209 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
23210 (avr_asm_init_sections): Overwrite section callbacks for
23211 data_section, bss_section.
23212 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
23213 from here to...
23214 (avr_file_end): ...here.
23215
0d2f7431 232162011-04-20 Richard Guenther <rguenther@suse.de>
23217
23218 PR middle-end/48695
23219 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
57026a70 23220 objects and types here. Adjust for their offset before comparing.
0d2f7431 23221
63fd99db 232222011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
23223
23224 * tree-vect-stmts.c (vectorizable_store): Only chain one related
23225 statement per copy.
23226
fb049fba 232272011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
23228
23229 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
23230 (GIMPLE_H): Include $(INTERNAL_FN_H).
23231 (OBJS-common): Add internal-fn.o.
23232 (internal-fn.o): New rule.
23233 * internal-fn.def: New file.
23234 * internal-fn.h: Likewise.
23235 * internal-fn.c: Likewise.
23236 * gimple.h: Include internal-fn.h.
23237 (GF_CALL_INTERNAL): New gf_mask.
23238 (gimple_statement_call): Put fntype into a union with a new
23239 internal_fn field.
23240 (gimple_build_call_internal): Declare.
23241 (gimple_build_call_internal_vec): Likewise.
23242 (gimple_call_same_target_p): Likewise.
23243 (gimple_call_internal_p): New function.
23244 (gimple_call_internal_fn): Likewise.
23245 (gimple_call_fntype): Return null for internal calls.
23246 (gimple_call_set_fntype): Assert that the function is not internal.
23247 (gimple_call_set_fn): Likewise.
23248 (gimple_call_set_fndecl): Likewise.
23249 (gimple_call_set_internal_fn): New function.
23250 (gimple_call_addr_fndecl): Handle null functions.
23251 (gimple_call_return_type): Likewise null types.
23252 * gimple.c (gimple_build_call_internal_1): New function.
23253 (gimple_build_call_internal): Likewise.
23254 (gimple_build_call_internal_vec): Likewise.
23255 (gimple_call_same_target_p): Likewise.
23256 (gimple_call_flags): Handle calls to internal functions.
23257 (gimple_call_fnspec): New function.
23258 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
23259 (gimple_has_side_effects): Handle null functions.
23260 (gimple_rhs_has_side_effects): Likewise.
23261 (gimple_call_copy_skip_args): Handle calls to internal functions.
23262 * cfgexpand.c (expand_call_stmt): Likewise.
23263 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
23264 * gimple-fold.c (gimple_fold_call): Handle null functions.
23265 (gimple_fold_stmt_to_constant_1): Don't fold
23266 calls to internal functions.
23267 * gimple-low.c (gimple_check_call_args): Handle calls to internal
23268 functions.
23269 * gimple-pretty-print.c (dump_gimple_call): Likewise.
23270 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
23271 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
23272 (do_warn_unused_result): Likewise.
23273 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
23274 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
23275 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
23276 the target of a call.
23277 (initialize_hash_element): Update accordingly.
23278 (hashable_expr_equal_p): Use gimple_call_same_target_p.
23279 (iterative_hash_hashable_expr): Handle calls to internal functions.
23280 (print_expr_hash_elt): Likewise.
23281 * tree-ssa-pre.c (can_value_number_call): Likewise.
23282 (eliminate): Handle null functions.
23283 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
23284 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
23285 (find_func_aliases): Likewise.
23286 * value-prof.c (gimple_ic_transform): Likewise.
23287 (gimple_indirect_call_to_profile): Likewise.
23288 * lto-streamer-in.c (input_gimple_stmt): Likewise.
23289 * lto-streamer-out.c (output_gimple_stmt): Likewise.
23290
d826e131 232912011-04-19 Jan Hubicka <jh@suse.cz>
23292
23293 * ipa-inline-transform.c (save_inline_function_body): Add comments.
0616321d 23294 * ipa-inline.c (inline_small_functions): Compute summaries first,
23295 populate heap later.
d826e131 23296
8cbc43ff 232972011-04-19 Jan Hubicka <jh@suse.cz>
23298
23299 * cgraph.h (save_inline_function_body): Remove.
23300 * ipa-inline-transform.c: New file, broke out of...
23301 * ipa-inline.c: ... this one; Update toplevel comment.
23302 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
23303 make global.
23304 (update_noncloned_frequencies): Move to ipa-inline-transform.c
23305 (cgraph_mark_inline_edge): Rename to inline_call; move to
23306 ipa-inline-transform.c.
23307 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
23308 move to ipa-inline-transform.c
23309 (recursive_inlining, inline_small_functions, flatten_function,
23310 ipa_inline, inline_always_inline_functions,
23311 early_inline_small_functions): Update.
23312 (inline_transform): Move to ipa-inline-transform.c.
23313 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
23314 Declare.
23315 * Makefile.in (ipa-inline-transform.o): New file.
23316 * cgraphunit.c (save_inline_function_body): Move to
23317 ipa-inline-transform.c
23318
5dfa0f5a 233192011-04-19 DJ Delorie <dj@redhat.com>
23320
23321 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
23322 registers if we already know there aren't any.
23323 (m32c_emit_epilogue): Don't emit a barrier here.
23324 (m32c_emit_eh_epilogue): Likewise.
23325 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
23326 operands at expand time.
23327 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
23328 int" wchar type.
23329 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
23330 duplicates. Provide aliases instead.
23331 * config/m32c/prologue.md (eh_return): Emit a barrier here.
23332 (eh_epilogue): Add a "(return)" here as a hint to other parts of
23333 the compiler.
23334
7fbdfd9f 233352011-04-19 Anatoly Sokolov <aesok@post.ru>
23336
23337 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
23338 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
23339 (general_or_i64_p, sparc_register_move_cost): New function.
23340
046f323e 233412011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23342
23343 * doc/install.texi (Configuration, --enable-threads): Remove mach.
bd4b3ce4 23344 Add lynx, mipssde. Sort table.
046f323e 23345
8154e1e3 233462011-04-19 Xinliang David Li <davidxl@google.com>
bd4b3ce4 23347
0616321d 23348 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
23349 not negative.
8154e1e3 23350
7a425ed6 233512011-04-19 Jakub Jelinek <jakub@redhat.com>
23352
23353 PR target/48678
23354 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
23355 is a SUBREG with non-MODE_INT mode inside of it.
23356
3658fd1d 233572011-04-19 Martin Jambor <mjambor@suse.cz>
23358
23359 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
23360 also according to actual contants.
23361 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
23362 (gimple_fold_call): Use it.
23363 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
23364
cf3b9c67 233652011-04-19 Martin Jambor <mjambor@suse.cz>
23366
23367 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
23368 non-pointer assignments.
23369
09a2b4db 233702011-04-19 Martin Jambor <mjambor@suse.cz>
23371
23372 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
23373 account anc_offset and otr_type from the indirect edge info.
23374 * ipa-prop.c (get_ancestor_addr_info): New function.
23375 (compute_complex_ancestor_jump_func): Assignment analysis moved to
23376 get_ancestor_addr_info, call it.
23377 (ipa_note_param_call): Do not initialize information about polymorphic
23378 calls, return the indirect call graph edge. Remove the last
23379 parameter, adjust all callers.
23380 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
23381 parameters. Initialize polymorphic information in the indirect edge.
23382
c693f407 233832011-04-19 Eric Botcazou <ebotcazou@adacore.com>
23384
23385 PR lto/48148
23386 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
23387 the types if they have different enumeration identifiers.
23388
cf262be9 233892011-04-19 Jan Hubicka <jh@suse.cz>
23390
23391 * cgraph.h (cgraph_optimize_for_size_p): Declare.
23392 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
23393 * predict.c (cgraph_optimize_for_size_p): Break out from ...
23394 (optimize_function_for_size_p) ... here.
23395
e400b89a 233962011-04-19 Richard Guenther <rguenther@suse.de>
23397
23398 PR lto/48207
23399 * tree.c (free_lang_data): Do not reset the decl-assembler-name
23400 langhook.
23401
59a52681 234022011-04-19 Eric Botcazou <ebotcazou@adacore.com>
23403
23404 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
23405 if DECL_NO_INLINE_WARNING_P is set on the function.
23406
06efbe8c 234072011-04-19 Bernd Schmidt <bernds@codesourcery.com>
23408
23409 PR fortran/47976
23410 * reload1.c (inc_for_reload): Return void. All callers changed.
23411 (emit_input_reload_insns): Don't try to delete previous output
23412 reloads to a register, or record spill_reg_store for autoincs.
c64b1f41 23413
234142011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
23415
23416 * gengtype.h: Updated copyright year.
23417 (struct input_file_st): Add inpisplugin field.
23418 (type_fileloc): New function.
23419 * gengtype.c
23420 (write_typed_struct_alloc_def): Add gcc_assert.
23421 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
23422 (write_typed_alloc_defns): Don't output for plugin files.
23423 (input_file_by_name): Clear inpisplugin field.
23424 (main): Set inpisplugin field for plugin files.
23425
465d0f82 234262011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
23427
23428 * gengtype-state.c (string_eq): New.
23429 (read_state): Use string_eq instead of strcmp when creating the
23430 state_ident_tab.
23431
a54e3e7b 234322011-04-19 Wei Guozhi <carrot@google.com>
23433
23434 PR target/47855
23435 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
23436 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
23437 linkage.
23438 * config/arm/constraints.md (Uu): New constraint.
23439 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
23440
b0a47c39 234412011-04-19 Tristan Gingold <gingold@adacore.com>
23442
23443 * config.gcc (-*-*-*vms): Added.
23444 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
23445 definitions moved.
23446 * config/vms/vms-ld.c: New file.
23447 * config/vms/vms-ar.c: New file.
23448 * config/vms/t-vmsnative: New file.
23449
e51c3f95 234502011-04-18 Xinliang David Li <davidxl@google.com>
23451
23452 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
23453
a00321c8 234542011-04-18 Jakub Jelinek <jakub@redhat.com>
23455
23456 PR middle-end/48661
23457 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
23458 if TREE_TYPE (v) is non-NULL.
23459
23460 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
23461 gimple_get_virt_mehtod_for_binfo.
23462 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
23463 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
23464 callers.
23465 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
23466
19410918 234672011-04-18 Michael Matz <matz@suse.de>
faa7e9d5 23468 Steve Ellcey <sje@cup.hp.com>
23469
19410918 23470 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
23471 use its mode as source mode if it isn't VOIDmode.
faa7e9d5 23472
6f836859 234732011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
23474
23475 * doc/passes.texi: Fill crossref nodes.
23476
e66d204f 234772011-04-18 Jim Meyering <meyering@redhat.com>
23478
19410918 23479 Fix doubled-word typos in comments and strings
e66d204f 23480 * config/alpha/vms-unwind.h: s/for for/for/
23481 * config/arm/unwind-arm.h: Likewise.
23482 * config/microblaze/microblaze.c: Likewise.
23483 * config/sh/constraints.md: s/in in/in/
23484 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
23485
dcab66ec 234862011-04-18 Uros Bizjak <ubizjak@gmail.com>
23487
23488 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
23489 (AVX_FLOAT_MODE_P): Ditto.
23490 (AVX128_VEC_FLOAT_MODE_P): Ditto.
23491 (AVX256_VEC_FLOAT_MODE_P): Ditto.
23492 (AVX_VEC_FLOAT_MODE_P): Ditto.
23493 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
23494 (UNSPEC_MASKSTORE): Ditto.
23495 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
23496 Merge from <sse>_movmsk<ssemodesuffix> and
23497 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
23498 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
23499 iterator.
23500 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
23501 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
23502 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
23503
4055a556 235042011-04-18 Jan Hubicka <jh@suse.cz>
23505
33b2724f 23506 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
23507
4055a556 23508 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
23509 (want_inline_function_called_once_p): Break out the logic from
23510 ipa_inline.
23511 (edge_badness): Ensure that profile is not misupdated.
23512 (lookup_recursive_calls): Prioritize by call frequencies.
23513 (inline_small_functions): Move program size estimates here;
23514 actually process whole queue even when unit growth has been
23515 met. (to properly compute inline_failed reasons and for the
dcab66ec 23516 case unit size decrease.) Revisit comments on recursive inlining.
4055a556 23517 (ipa_inline): Remove unit summary code; first inline hot calls
23518 of functions called once, cold calls next.
23519 (order, nnodes): Remove unused variables.
23520 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
23521 (GTFILES): Remove ipa-inline.c
23522 * sel-sched.c (fill_insns): Silence uninitialized var warning.
23523
f1a4e5a7 235242011-04-18 Eric Botcazou <ebotcazou@adacore.com>
23525
23526 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
23527
38afa546 235282011-04-18 Jie Zhang <jie@codesourcery.com>
f1a4e5a7 23529 Richard Earnshaw <rearnsha@arm.com>
38afa546 23530
23531 * arm.c (neon_builtin_type_bits): Remove.
23532 (typedef enum neon_builtin_mode): New.
23533 (T_MAX): Don't define.
23534 (typedef enum neon_builtin_datum): Remove bits, codes[],
23535 num_vars and base_fcode. Add mode, code and fcode.
23536 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
23537 VAR10): Change accordingly.
23538 (neon_builtin_data[]): Change accordingly
23539 (arm_init_neon_builtins): Change accordingly.
23540 (neon_builtin_compare): Remove.
23541 (locate_neon_builtin_icode): Remove.
23542 (arm_expand_neon_builtin): Change accordingly.
23543
23544 * arm.h (enum arm_builtins): Move to ...
23545 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
23546
23547 * arm.c (arm_builtin_decl): Declare.
23548 (TARGET_BUILTIN_DECL): Define.
23549 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
23550 (arm_builtin_decls[]): New.
23551 (arm_init_neon_builtins): Store builtin declarations in
23552 arm_builtin_decls[].
23553 (arm_init_tls_builtins): Likewise.
23554 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
23555 (arm_builtin_decl): New.
23556
419ae64a 235572011-04-18 Richard Guenther <rguenther@suse.de>
23558
23559 * tree.c (upper_bound_in_type): Build properly canonicalized
23560 INTEGER_CSTs.
23561 (lower_bound_in_type): Likewise.
23562
6fec5449 235632011-04-18 Richard Guenther <rguenther@suse.de>
23564
23565 * gimple.h (gimple_call_addr_fndecl): New function.
23566 (gimple_call_fndecl): Use it.
23567 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
23568 for direct calls.
23569 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
23570 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
23571
faa89065 235722011-04-18 Richard Guenther <rguenther@suse.de>
23573
23574 PR middle-end/48650
23575 * tree.c (build_string): STRING_CST is now derived from tree_typed.
23576
1cdbcae1 235772011-04-18 Eric Botcazou <ebotcazou@adacore.com>
23578
23579 PR lto/48492
23580 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
23581 DECL_IN_CONSTANT_POOL without RTL.
23582
fd4b5409 235832011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
23584 Ira Rosen <ira.rosen@linaro.org>
23585
23586 PR target/48252
23587 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
23588 to match neon_vzip/vuzp/vtrn_internal.
23589 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
23590 outputs explicitly dependent on both inputs.
23591 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
23592
c344bf60 235932011-04-18 Jakub Jelinek <jakub@redhat.com>
23594
23595 PR tree-optimization/48616
23596 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
23597 whether the shift is by scalar or vector based on whether all SLP
23598 scalar stmts have the same rhs.
23599
f120c9d7 236002011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
23601
23602 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
23603 memory operands.
23604
d57287ab 236052011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
23606
056b328f 23607 PR target/43700
d57287ab 23608 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
23609 registers.
23610
629c326d 236112011-04-17 Jan Hubicka <jh@suse.cz>
23612
23613 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1cdbcae1 23614 * cgrpahunit.c (cgraph_finalize_function): Do not set
23615 finalized_by_frontend.
629c326d 23616 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
23617 finalized_by_frontend.
23618
9742b4a1 236192011-04-17 Jan Hubicka <jh@suse.cz>
23620
23621 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
23622 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
23623 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1cdbcae1 23624 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
23625 method.
9742b4a1 23626 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
23627 gimple-fold.c
23628 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
23629
30f589a5 236302011-04-17 Eric Botcazou <ebotcazou@adacore.com>
23631
23632 PR lto/48538
23633 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
23634 is non-null before accessing it.
23635 (input_cgraph): Remove trailing spaces.
23636
4f7f77aa 236372011-04-17 Revital Eres <revital.eres@linaro.org>
23638
23639 * params.def (sms-min-sc): New param flag.
23640 * modulo-sched.c (sms_schedule): Use it.
23641 * doc/invoke.texi (sms-min-sc): Document it.
23642
4869c23f 236432011-04-17 Jan Hubicka <jh@suse.cz>
23644
23645 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
23646 present, also set gimple_call_set_cannot_inline.
23647 * ipa-inline.c: Update toplevel comment.
23648 (MAX_TIME): Remove.
23649 (cgraph_clone_inlined_nodes): Fix linebreaks.
23650 (cgraph_check_inline_limits): Restructure to ...
23651 (caller_growth_limits): ... this one; be more tolerant
23652 on growth in nested inline chains; add explanatory comment;
23653 fix stack accounting thinko introduced by previous patch.
23654 (cgraph_default_inline_p): Remove.
23655 (report_inline_failed_reason): New function.
23656 (can_inline_edge_p): New function.
23657 (can_early_inline_edge_p): New function.
23658 (leaf_node_p): Move upwards in file.
23659 (want_early_inline_function_p): New function.
23660 (want_inline_small_function_p): New function.
23661 (want_inline_self_recursive_call_p): New function.
23662 (cgraph_edge_badness): Rename to ...
23663 (edge_badness) ... this one; fix linebreaks.
23664 (update_edge_key): Update call of edge_baddness; add
23665 detailed dump about queue updates.
23666 (update_caller_keys): Use can_inline_edge_p and
23667 want_inline_small_function_p.
23668 (cgraph_decide_recursive_inlining): Rename to...
23669 (recursive_inlining): Use can_inline_edge_p and
dcab66ec 23670 want_inline_self_recursive_call_p; simplify and remove no longer
23671 valid FIXME.
4869c23f 23672 (cgraph_set_inline_failed): Remove.
23673 (add_new_edges_to_heap): Use can_inline_edge_p and
23674 want_inline_small_function_p.
23675 (cgraph_decide_inlining_of_small_functions): Rename to ...
23676 (inline_small_functions): ... this one; cleanup; use
dcab66ec 23677 can/want predicates; cleanup debug ouput; work edges till fibheap
23678 is exhausted and do not stop once unit growth is reached; remove
23679 later loop processing remaining edges.
4869c23f 23680 (cgraph_flatten): Rename to ...
23681 (flatten_function): ... this one; use can_inline_edge_p
23682 and can_early_inline_edge_p predicates.
23683 (cgraph_decide_inlining): Rename to ...
23684 (ipa_inline): ... this one; remove unreachable nodes before
23685 inlining functions called once; simplify the pass.
23686 (cgraph_perform_always_inlining): Rename to ...
23687 (inline_always_inline_functions): ... this one; use
dcab66ec 23688 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4869c23f 23689 (cgraph_decide_inlining_incrementally): Rename to ...
23690 (early_inline_small_functions): ... this one; simplify
23691 using new predicates; cleanup; make dumps prettier.
23692 (cgraph_early_inlining): Rename to ...
23693 (early_inliner): newer inline regular functions into always-inlines;
23694 fix updating of call stmt summaries.
23695 (pass_early_inline): Update for new names.
23696 (inline_transform): Fix formating.
23697 (gate_cgraph_decide_inlining): Rename to ...
23698 (pass_ipa_inline): ... this one.
23699 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
23700 * ipa-inline-analysis.c (dump_inline_summary): Update.
23701 (compute_inline_parameters): Do not compute disregard_inline_limits;
23702 look for mismatching arguments.
23703 (estimate_growth): Fix handlig of non-trivial self recursion.
23704 (inline_read_summary): Do not read info->disregard_inline_limits.
23705 (inline_write_summary): Do not write info->disregard_inline_limits.
30f589a5 23706 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
23707 and move all checks into can_inline_edge_p predicate; re-enable code
23708 comparing optimization levels.
4869c23f 23709 (expand_call_inline): Do not test inline_forbidden_into_p.
23710 * Makefile.in (ipa-inline.o): Update arguments.
23711
d1fdaace 237122011-04-17 Revital Eres <revital.eres@linaro.org>
23713
23714 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
23715
81653d3e 237162011-04-17 Revital Eres <revital.eres@linaro.org>
23717
23718 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
23719
94a9bddf 237202011-04-17 Michael Matz <matz@suse.de>
23721
23722 PR tree-optimization/48622
23723 PR lto/48645
23724 * ipa-inline-analysis.c (inline_read_summary): Read size/time
23725 in same order as they're written.
23726
c063d2da 237272011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23728
23729 * config/pa/predicates.md: Reorganize and simplify predicates.
23730 Eliminate duplicate code checks.
23731 (arith_operand): Rename to arith14_operand
23732 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
23733 * config/pa/pa.md: Use renamed operands.
23734 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
23735 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
23736 arith11_operand, adddi3_operand, indexed_memory_operand,
23737 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
23738 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
23739 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
23740 move_dest_operand, move_src_operand, prefetch_cc_operand,
23741 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
23742 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
23743 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
23744 div_operand, int5_operand, movb_comparison_operator,
23745 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
23746 arith_double_operand, ireg_operand, lhs_lshift_operand,
23747 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
23748 integer_store_memory_operand): Likewise.
23749 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
23750 (integer_store_memory_operand, read_only_operand,
23751 function_label_operand, borx_reg_operand,
23752 non_hard_reg_operand): Likewise.
23753 (eq_neq_comparison_operator): Delete unused operator.
23754 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
23755 function_label_operand.
23756 (emit_move_sequence): Likewise.
23757
b6fc7168 237582011-04-16 Uros Bizjak <ubizjak@gmail.com>
23759
23760 * config/i386/sse.md (sseunpackmode): New mode attribute.
23761 (ssepackmode): Ditto.
23762 (vec_pack_trunc_<mode>): Macroize expander from
23763 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
23764 (vec_unpacks_lo_<mode>): Macroize expander from
23765 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
23766 (vec_unpacks_hi_<mode>): Macroize expander from
23767 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
23768 (vec_unpacku_lo_<mode>): Macroize expander from
23769 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
23770 (vec_unpacku_hi_<mode>): Macroize expander from
23771 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
23772 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
23773 ix86_expand_sse4_unpack.
23774 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
23775
cbd7f5a0 237762011-04-16 Jan Hubicka <jh@suse.cz>
23777
23778 * cgraphbuild.c: Include ipa-inline.h.
23779 (reset_inline_failed): Use initialize_inline_failed.
23780 * cgraph.c: Include ipa-inline.h.
23781 (cgraph_create_node_1): Do not initialize estimated_growth.
23782 (initialize_inline_failed): More to ipa-inline-analysis.c
23783 (dump_cgraph_node): Do not dump inline flags.
23784 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
23785 and disregard_inline_limits flags.
23786 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
23787 time, size, estimated_growth.
b6fc7168 23788 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
23789 Update.
cbd7f5a0 23790 * cgraphunit.c (cgraph_decide_is_function_needed): Use
23791 DECL_DISREGARD_INLINE_LIMITS.
23792 (cgraph_analyze_function): Do not initialize
23793 node->local.disregard_inline_limits.
23794 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
23795 inlinable, versionable and disregard_inline_limits.
23796 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
b6fc7168 23797 cgraph_check_inline_limits, cgraph_default_inline_p,
23798 cgraph_edge_badness, update_caller_keys, update_callee_keys,
23799 add_new_edges_to_heap): Update.
23800 (cgraph_decide_inlining_of_small_function): Update; set
23801 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
cbd7f5a0 23802 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
23803 cgraph_decide_inlining_incrementally): Update.
b6fc7168 23804 * ipa-inline.h (inline_summary): Add inlinable, versionable,
23805 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
23806 time, size and estimated_growth parameters.
cbd7f5a0 23807 (estimate_edge_growth): Update.
23808 (initialize_inline_failed): Declare.
23809 * ipa-split.c: Include ipa-inline.h
23810 (execute_split_functions): Update.
23811 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
23812 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
23813 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
23814 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
23815 estimated_growth to INT_MIN.
23816 (inline_node_duplication_hook): Likewise.
23817 (dump_inline_summary): Dump new fields.
23818 (compute_inline_parameters): Update.
23819 (estimate_edge_time, estimate_time_after_inlining,
23820 estimate_size_after_inlining, estimate_growth, inline_read_summary,
23821 inline_write_summary):
23822 (initialize_inline_failed): Move here from cgraph.c.
23823 * tree-sra.c: Include ipa-inline.h.
23824 (ipa_sra_preliminary_function_checks): Update.
dcab66ec 23825 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
23826 ipa-inline.h.
cbd7f5a0 23827
e5f53f2a 238282011-04-16 Uros Bizjak <ubizjak@gmail.com>
23829
23830 * config/i386/sse.md (V16): New mode iterator.
23831 (VI1, VI8): Ditto.
23832 (AVXMODEQI, AVXMODEDI): Remove.
23833 (sse2, sse3): New mode attribute.
23834 (mov<mode>): Use V16 mode iterator.
23835 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
23836 (push<mode>1): Use V16 mode iterator.
23837 (movmisalign<mode>): Ditto.
23838 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
23839 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
23840 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
23841 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
23842 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
23843 avx_movdqu<avxmodesuffix>.
23844 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
23845 *avx_movdqu<avxmodesuffix>.
23846 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
23847 avx_lddqu<avxmodesuffix>.
23848 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
23849 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
23850 avx_movnt<AVXMODEDI:mode>.
23851 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
23852 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
23853
45892a65 238542011-04-16 Bernd Schmidt <bernds@codesourcery.com>
23855
23856 PR target/48629
23857 * haifa-sched.c (prune_ready_list, schedule_block): Use
23858 sched_pressure_p rather than flag_sched_pressure.
23859
6a0cacf9 238602011-04-15 Pat Haugen <pthaugen@us.ibm.com>
46052a74 23861
23862 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
23863 cgraph_get_node instead of cgraph_get_create_node.
23864
9ecadf14 238652011-04-15 Jakub Jelinek <jakub@redhat.com>
23866
23867 * cfgexpand.c (expand_debug_expr): Use
23868 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
23869
a882d754 238702011-04-15 Michael Matz <matz@suse.de>
23871
23872 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
23873 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
23874 * function.c (gimplify_parameters): Ditto.
23875 * gimplify.c (gimplify_vla_decl): Ditto.
23876
23877 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
23878 (gimple_call_set_alloca_for_var): New inline function.
23879 (gimple_call_alloca_for_var_p): Ditto.
e5f53f2a 23880 * gimple.c (gimple_build_call_from_tree): Remember
23881 CALL_ALLOCA_FOR_VAR_P state.
a882d754 23882 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
23883
23884 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
23885 calls if they were for VLA objects.
23886
b3b1665e 238872011-04-15 Martin Jambor <mjambor@suse.cz>
23888
23889 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
23890 of ADR_EXPRs.
23891
4559c6fc 238922011-04-15 Martin Jambor <mjambor@suse.cz>
23893
23894 PR middle-end/48601
23895 * tree-emutls.c (lower_emutls_function_body): Call
23896 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
23897 result is non-NULL.
23898
394dd737 238992011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
23900
23901 * c-decl.c (detect_field_duplicates): Call
23902 objc_detect_field_duplicates instead of objc_get_interface_ivars.
23903
97cf41ec 239042011-04-15 Nathan Froyd <froydnj@codesourcery.com>
23905
23906 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
23907 * gimple.c (gimple_asm_clobbers_memory_p): Define.
23908 * ipa-pure-const.c (check_stmt): Call it.
23909 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
23910
abb08aa8 239112011-04-15 Richard Guenther <rguenther@suse.de>
23912
23913 PR tree-optimization/48290
23914 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
23915 Properly decide inhibiting propagation based on the valueized
23916 operand. Do loop-closed SSA form preserving here ...
23917 (init_copy_prop): ... not here.
23918
8ba20934 239192011-04-15 H.J. Lu <hongjiu.lu@intel.com>
23920
23921 PR target/48612
23922 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
23923 (*ieee_smax<mode>3): Likewise.
23924
79dab3a2 239252011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23926
23927 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
23928 Replace match_operand with match_dup for the third operand in
23929 these expanders.
23930
34dd021c 239312011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
23932
23933 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
23934 to track processing of conditionals. Update all callers.
23935 (try_combine, simplify_if_then_else): Update.
23936
3dd7d6a7 239372011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
23938
23939 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
23940 -fsched-pressure.
23941
83456a4b 239422011-04-15 Georg-Johann Lay <avr@gjlay.de>
e5f53f2a 23943
83456a4b 23944 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
23945 instead of match_operand for operand 3.
23946
48eb616d 239472011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
23948
23949 * recog.h (insn_operand_data): Add an "allows_mem" field.
23950 * genoutput.c (output_operand_data): Initialize it.
23951 * optabs.c (maybe_legitimize_operand_same_code): New function.
23952 (maybe_legitimize_operand): Use it when matching the original
23953 op->value.
23954
57859735 239552011-04-15 Eric Botcazou <ebotcazou@adacore.com>
23956
23957 * gimplify.c: Fix issues in comments throughout.
23958 (voidify_wrapper_expr): Fix long line.
23959 (build_stack_save_restore): Likewise.
23960 (gimplify_loop_expr): Likewise.
23961 (gimplify_compound_lval): Likewise.
23962 (gimplify_init_ctor_eval): Likewise.
23963 (gimplify_modify_expr_rhs): Likewise.
23964 (omp_notice_threadprivate_variable): Likewise.
23965
317bd3b6 239662011-04-15 Eric Botcazou <ebotcazou@adacore.com>
a967d5e5 23967
317bd3b6 23968 * cfgexpand.c (expand_call_stmt): Convert the function type to the
23969 original one if this is not a builtin function.
a967d5e5 23970
908f63e8 239712011-04-14 Jakub Jelinek <jakub@redhat.com>
23972
23973 PR target/48605
23974 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
23975 offset it as needed based on top 2 bits in operands[3], change
23976 MEM mode to SFmode and mask those 2 bits away from operands[3].
23977
a758bf7d 239782011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
23979
23980 * c-parser.c (c_parser_objc_protocol_definition): Updated for
23981 change from objc_declare_protocols() to objc_declare_protocol().
23982
f6c74054 239832011-04-14 Uros Bizjak <ubizjak@gmail.com>
23984
23985 * config/i386/sse.md (sse4_1): New mode attribute.
23986 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
23987 avx_blend<ssemodesuffix><avxmodesuffix> and
23988 sse4_1_blend<ssemodesuffix> using VF mode iterator.
23989 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
23990 avx_blendv<ssemodesuffix><avxmodesuffix> and
23991 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
23992 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
23993 avx_dp<ssemodesuffix><avxmodesuffix> and
23994 sse4_1_dp<ssemodesuffix> using VF mode iterator.
23995 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
23996 (sse4_1_packusdw): Merge with *avx_packusdw.
23997 (sse4_1_pblendvb): Merge with *avx_pblendvb.
23998 (sse4_1_pblendw): Merge with *avx_pblendw.
23999 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
24000 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
24001 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
24002 VF mode iterator.
24003 (sse4_1_round<ssescalarmodesuffix>): Merge with
24004 *avx_round<ssescalarmodesuffix>.
24005 (aesenc): Merge with *avx_aesenc.
24006 (aesenclast): Merge with *avx_aesenclast.
24007 (aesdec): Merge with *avx_aesdec.
24008 (aesdeclast): Merge with *avx_aesdeclast.
24009 (pclmulqdq): Merge with *pclmulqdq.
24010 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
24011 New predicate.
24012 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
24013
25c513b9 240142011-04-14 H.J. Lu <hongjiu.lu@intel.com>
24015
24016 PR middle-end/48608
24017 * cfgexpand.c (get_decl_align_unit): Renamed to ...
24018 (align_local_variable): This. Update DECL_ALIGN.
24019 (add_stack_var): Updated.
24020 (expand_one_stack_var): Likewise.
24021
07ff6a65 240222011-04-14 Richard Guenther <rguenther@suse.de>
24023
24024 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
24025 Remove.
24026 (dse_initialize_block_local_data, dse_leave_block,
24027 record_voperand_set, get_stmt_uid): Likewise.
24028 (dse_possible_dead_store_p): Allow any kind of killing stmt.
24029 (dse_optimize_stmt): Remove voperand set handling code.
24030 Simplify and improve to handle any kind of killing stmt.
24031 (dse_record_phi): Remove.
24032 (dse_enter_block): Simplify.
24033 (tree_ssa_dse): Likewise.
24034 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
24035
c7b2cc59 240362011-04-14 Jan Hubicka <jh@suse.cz>
24037
24038 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
24039 * cgraph.h (struct inline_summary): Move to ipa-inline.h
24040 (cgraph_local_info): Remove inline_summary.
24041 * ipa-cp.c: Include ipa-inline.h.
24042 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
24043 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
24044 accesor.
24045 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
24046 (input_overwrite_node): Do not set inline summary.
24047 (input_node): Do not stream inline summary.
24048 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
24049 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
24050 growth; we do not have inline parameters computed for that anyway.
24051 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
24052 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
24053 (inline_summary_t): New type and VECtor.
24054 (debug_inline_summary, dump_inline_summaries): Declare.
24055 (inline_summary): Use VOCtor.
24056 (estimate_edge_growth): Kill hack computing call stmt size directly.
24057 * lto-section-in.c (lto_section_name): Add inline section.
24058 * ipa-inline-analysis.c: Include lto-streamer.h
24059 (node_removal_hook_holder, node_duplication_hook_holder): New holders
24060 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
24061 (inline_summary_vec): Define.
24062 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
24063 dump_inline_summaries): New functions.
f6c74054 24064 (estimate_function_body_sizes): Properly compute size/time of outgoing
24065 calls.
24066 (compute_inline_parameters): Alloc inline_summary; do not compute
24067 size/time of incomming calls.
c7b2cc59 24068 (estimate_edge_time): Avoid missing time summary hack.
24069 (inline_read_summary): Read inline summary info.
24070 (inline_write_summary): Write inline summary info.
24071 (inline_free_summary): Free all hooks and inline summary vector.
24072 * lto-streamer.h: Add LTO_section_inline_summary section.
24073 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
24074 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
24075
481fc474 240762011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
24077
24078 * tree-vectorizer.h (vect_strided_store_supported): Add a
24079 HOST_WIDE_INT argument.
24080 (vect_strided_load_supported): Likewise.
24081 (vect_permute_store_chain): Return void.
24082 (vect_transform_strided_load): Likewise.
24083 (vect_permute_load_chain): Delete.
24084 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
24085 count argument. Check that the count is a power of two.
24086 (vect_strided_load_supported): Likewise.
24087 (vect_permute_store_chain): Return void. Update after above changes.
24088 Assert that the access is supported.
24089 (vect_permute_load_chain): Likewise.
24090 (vect_transform_strided_load): Return void.
24091 * tree-vect-stmts.c (vectorizable_store): Update calls after
24092 above interface changes.
24093 (vectorizable_load): Likewise.
24094 (vect_analyze_stmt): Don't check for strided powers of two here.
24095
ca793672 240962011-04-14 Richard Guenther <rguenther@suse.de>
24097
24098 PR tree-optimization/48590
24099 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24100 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
24101 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
24102 BUILT_IN_STACK_SAVE.
24103 * tree-ssa-dce.c (propagate_necessity): Handle
24104 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
24105
29d7200d 241062011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
24107
24108 * c-parser.c (c_parser_objc_class_declaration): Updated call to
24109 objc_declare_class.
24110
0c883ef3 241112011-04-14 Richard Guenther <rguenther@suse.de>
24112
24113 * tree.h (get_object_alignment_1): Declare.
24114 * builtins.c (get_object_alignment_1): Split out worker from ...
24115 (get_object_alignment): ... here.
24116 * fold-const.c (get_pointer_modulus_and_residue): Use
24117 get_object_alignment_1.
24118
bd5ba09f 241192011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
24120
24121 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
24122 type parameter.
24123 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
24124 parameter. Generalise code to handle arrays as well as vectors.
24125 (vect_setup_realignment): Update accordingly.
24126 * tree-vect-stmts.c (vectorizable_store): Likewise.
24127 (vectorizable_load): Likewise.
24128
362eeee7 241292011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
24130
24131 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
24132 within the per-copy loop.
24133
0ffb7cb0 241342011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
ca4943f5 24135
24136 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
24137 in the dump file.
24138
0ffb7cb0 241392011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
d98c9552 24140
24141 * doc/options.texi (Negative): Explicitly mention that the
24142 Negative chain must be circular.
24143
2149d019 241442011-04-14 Nathan Froyd <froydnj@codesourcery.com>
24145
24146 * function.h (block_chainon): Declare.
24147 * function.c (block_chainon): Define.
24148
c5be380e 241492011-04-14 Anatoly Sokolov <aesok@post.ru>
f6c74054 24150 Eric Weddington <eric.weddington@atmel.com>
6a0cacf9 24151 Georg-Johann Lay <avr@gjlay.de>
f6c74054 24152
dcab66ec 24153 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
c5be380e 24154 New Includes
24155 (avr_init_builtins, avr_expand_builtin,
24156 avr_expand_delay_cycles, avr_expand_unop_builtin,
24157 avr_expand_binop_builtin ): New functions.
24158 (avr_builtin_id): New enum
24159 (struct avr_builtin_description): New struct
24160 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
24161 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
f6c74054 24162
c5be380e 24163 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
f6c74054 24164 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
c5be380e 24165 UNSPECV_DELAY_CYCLES): new enumeration values
24166 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
24167 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
24168 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
24169 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
24170 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
24171 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
24172 "fmulsu"): New insns
f6c74054 24173
c5be380e 24174 * config/avr/avr-c.c: fix line endings
24175 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
24176 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
24177 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
24178 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
24179 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
f6c74054 24180
c5be380e 24181 * doc/extend.texi (AVR Built-in Functions): New node
24182 (Target Builtins): Add documentation of AVR
24183 built-in functions.
24184
cb7c66a8 241852011-04-14 Georg-Johann Lay <avr@gjlay.de>
24186
24187 PR target/44643
24188 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
24189 alone. Error if non-const data has attribute progmem.
24190
d39db554 241912011-04-13 Nathan Froyd <froydnj@codesourcery.com>
24192
24193 * tree.h (struct tree_constructor): Include tree_typed instead of
24194 tree_common.
24195 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
24196 TS_TYPED instead of TS_COMMON.
24197
f6c74054 241982011-04-13 Uros Bizjak <ubizjak@gmail.com>
908dc1fc 24199
24200 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
24201 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
24202 (sse2_psadbw): Merge with *avx_psadbw.
24203 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
24204 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
24205 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
24206 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
24207 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
24208 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
24209 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
24210 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
24211 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
24212 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
24213 (ssse3_palignrti): Merge with *avx_palignrti.
24214
acb5ba8c 242152011-04-13 Nathan Froyd <froydnj@codesourcery.com>
24216
24217 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
24218 * tree-ssanames.c (fini_ssanames): VEC_free it.
24219 (make_ssa_name_fn): Update for VECness of free_ssanames.
24220 (release_ssa_name, release_dead_ssa_names): Likewise.
24221 * tree.h (struct tree_ssa_name): Include tree_typed instead of
24222 tree_common.
24223 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
24224 TS_TYPED instead of TS_COMMON.
24225
30c4e60d 242262011-04-13 Nathan Froyd <froydnj@codesourcery.com>
24227
24228 * postreload-gcse.c (gcse_after_reload_main): Add calls to
24229 statistics_counter_event.
24230 * tree-ssa-copyrename.c (stats): Define.
24231 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
24232 statistics_counter_event.
24233 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
24234 (bswap_stats, widen_mul_stats): Define.
24235 (insert_reciprocals): Increment rdivs_inserted.
24236 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
24237 rfuncs_inserted. Add calls to statistics_counter_event.
24238 (execute_cse_sincos_1): Increment inserted.
24239 (execute_cse_sincos): Zeroize sincos_stats. Add call to
24240 statistics_counter_event.
24241 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
24242 of bswap_stats. Add calls to statistics_counter_event.
24243 (convert_mult_to_widen): Increment widen_mults_inserted.
24244 (convert_plusminus_to_widen): Increment maccs_inserted.
24245 (convert_mult_to_fma): Increment fmas_inserted.
24246 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
24247 calls to statistics_counter_event.
24248
ca8cd143 242492011-04-13 Vladimir Makarov <vmakarov@redhat.com>
24250
24251 PR rtl-optimization/48455
24252 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
24253 `temp_costs->mem_cost'.
24254
99c67f24 242552011-04-13 Jan Hubicka <jh@suse.cz>
24256
24257 * ipa-inline.h: New file.
24258 * ipa-inline-analysis.c: New file. Broken out of ...
24259 * ipa-inline.c: ... this file; update toplevel comment;
24260 include ipa-inline.h
24261 (inline_summary): Move to ipa-inline.h
24262 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
24263 ipa-inline-analysis.c.
19410918 24264 (cgraph_estimate_time_after_inlining): Rename to
24265 estiamte_time_after_inlining; move to ipa-inline-analysis.c
99c67f24 24266 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
24267 to estimate_edge_growth.
24268 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
24269 rename to estimate_size_after_inlining.
24270 (cgraph_mark_inline_edge): Update for new naming convention.
24271 (cgraph_check_inline_limits): Likewise.
24272 (cgraph_edge_badness): Likewise.
24273 (cgraph_decide_recursive_inlining): Likewise.
24274 (cgraph_decide_inlining_of_small_functions): Likewise.
24275 (cgraph_decide_inlining_incrementally): Likewise.
19410918 24276 (cgraph_estimate_growth): Rename to estimate_growth; move to
24277 ipa-inline-analysis.c.
99c67f24 24278 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
24279 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
24280 (compute_inline_parameters): Likewise.
24281 (compute_inline_parameters_for_current): Likewise.
24282 (pass_inline_parameters): Likewise.
24283 (inline_indirect_intraprocedural_analysis): Likewise.
24284 (analyze_function): Rename to inline_analyze_function; likewise.
24285 (add_new_function): Move to ipa-inline-analysis.c.
24286 (inline_generate_summary): Likewise.
24287 (inline_read_summary): Likewise.
24288 (inline_write_summary): Likewise.
24289 * Makefile.in (ipa-inline-analysis.c): New file.
24290
dc360156 242912011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24292
24293 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
24294 * configure: Regenerate.
24295
189737d2 242962011-04-13 Nathan Froyd <froydnj@codesourcery.com>
24297
24298 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
24299 instead of tree_common.
24300 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
24301 Likewise.
24302 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
24303 TS_TYPED rather than TS_COMMON.
24304 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
24305
b76e3d4f 243062011-04-01 Georg-Johann Lay <avr@gjlay.de>
24307
24308 PR target/45263
8a59320f 24309 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
24310 r20 around calls of __tablejump_elpm__
b76e3d4f 24311
0f94f46b 243122011-04-13 Jakub Jelinek <jakub@redhat.com>
24313
24314 PR middle-end/48591
24315 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
24316 NULL.
24317 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
24318
8c72aae9 243192011-04-13 Bernd Schmidt <bernds@codesourcery.com>
24320
24321 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
24322 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
24323 (cfi_vec): New typedef.
24324 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
24325 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
24326 (cie_cfi_vec): New static variable.
24327 (cie_cfi_head): Delete.
24328 (add_cfi): Accept a cfi_vec * as first argument. All callers and
24329 declaration changed. Use vector rather than list operations.
24330 (new_cfi): Don't initialize the dw_cfi_next field.
24331 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
24332 rather than list operations.
24333 (lookup_cfa): Use vector rather than list operations.
24334 (output_cfis): New argument upto. Accept a cfi_vec rather than
24335 a dw_cfi_ref list head as argument. All callers changed.
24336 Iterate over the vector using upto as a maximum index.
24337 (output_all_cfis): New static function.
24338 (output_fde): Use vector rather than list operations. Use the
24339 new upto argument for output_cfis rather than manipulating a
24340 list.
24341 (dwarf2out_begin_prologue): Change initializations to match
24342 new struct members.
24343 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
24344 from the vector length rather than searching for the end of a list.
24345 Use output_all_cfis.
24346 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
24347
4d58347f 243482011-04-13 Nick Clifton <nickc@redhat.com>
24349
24350 * config/rx/rx.md (movmemsi): Do not use this pattern when
24351 volatile pointers are involved.
24352
b11a97b3 243532011-04-13 Uros Bizjak <ubizjak@gmail.com>
24354
24355 * config/i386/sse.md (pinsrbits): Remove.
24356 (sse2_packsswb): Merge with *avx_packsswb.
24357 (sse2_packssdw): Merge with *avx_packssdw.
24358 (sse2_packuswb): Merge with *avx_packuswb.
24359 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
24360 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
24361 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
24362 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
24363 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
24364 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
24365 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
24366 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
24367 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
24368 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
24369 (sse2_loadld): Merge with *avx_loadld.
24370 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
24371 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
24372 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
24373 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
24374 (vec_concatv2di): Merge with *vec_concatv2di_avx.
24375
9b88d08d 243762011-04-12 Nathan Froyd <froydnj@codesourcery.com>
24377
24378 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
24379 calling TREE_CHAIN.
24380 * print-tree.c (print_node): Likewise.
24381 * tree-inline.c (copy_tree_r): Likewise.
24382 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
24383 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
24384 instead of TS_COMMON.
24385 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
24386 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
24387 (copy_node_stat): Zero TREE_CHAIN only if necessary.
24388 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
24389 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
24390 ...and these...
24391 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
24392 * tree.h: ...here.
24393 (TREE_CHAIN): Check for a TS_COMMON structure.
24394 (TREE_TYPE): Check for a TS_TYPED structure.
24395
6a0cacf9 243962011-04-12 Pat Haugen <pthaugen@us.ibm.com>
190add86 24397
24398 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
24399 cgraph_get_create_node instead of cgraph_node.
24400
4185cf58 244012011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
24402
24403 * c-parser.c (c_parser_initelt): Updated call to
24404 objc_build_message_expr.
24405 (c_parser_postfix_expression): Likewise.
24406
99e7ad2e 244072011-04-12 Kai Tietz <ktietz@redhat.com>
24408
24409 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
24410 MASK_MS_BITFIELD_LAYOUT bit.
24411
41b4f8f9 244122011-04-12 Jakub Jelinek <jakub@redhat.com>
24413
24414 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
24415 assert it is always true.
24416 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
24417 moves.
24418
05ca272f 244192011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
24420
24421 * c-parser.c (c_lex_one_token): Rewritten conditional used when
24422 compiling Objective-C to be more efficient.
24423
6c6c6ebd 244242011-04-12 Axel Freyn <axel-freyn@gmx.de>
24425
24426 * opts-common.c (decode_cmdline_options_to_array): Remove variable
24427 argv_copied.
24428
50c0c258 244292011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
24430
24431 * recog.h, genoutput.c, optabs.c: Revert last patch.
24432
458a8706 244332011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
24434
908dc1fc 24435 PR target/48090
24436 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
458a8706 24437
9ee2b2ff 244382011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
24439
24440 * recog.h (insn_operand_data): Add an "allows_mem" field.
24441 * genoutput.c (output_operand_data): Initialize it.
24442 * optabs.c (maybe_legitimize_operand_same_code): New function.
24443 (maybe_legitimize_operand): Use it when matching the original
24444 op->value.
24445
5d592141 244462011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
24447
24448 * genpreds.c (process_define_predicate): Move most processing
24449 to gensupport.c. Continue to validate the expression.
24450 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
24451 (process_define_predicate): Move processing to gensupport.c.
24452 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
24453 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
24454 (compute_predicate_codes): Moved from genrecog.c. Add lineno
24455 argument.
24456 (valid_predicate_name_p): New function, split out from old
24457 genpreds.c:process_define_predicate.
24458 (process_define_predicate): New function, combining code from
24459 old genpreds.c and genrecog.c functions.
24460 (process_rtx): Call it for DEFINE_PREDICATE and
24461 DEFINE_SPECIAL_PREDICATE.
24462
e5bf7a7a 244632011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
24464
24465 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
24466 size of a '%A' memory reference.
24467 (T_DREG, T_QREG): New neon_builtin_type_bits.
24468 (arm_init_neon_builtins): Assert that the load and store operands
24469 are neon_struct_operands.
24470 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
24471 (NEON_ARG_MEMORY): New builtin_arg.
24472 (neon_dereference_pointer): New function.
24473 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
24474 Handle NEON_ARG_MEMORY.
24475 (arm_expand_neon_builtin): Update after above interface changes.
24476 Use NEON_ARG_MEMORY for loads and stores.
24477 * config/arm/predicates.md (neon_struct_operand): New predicate.
24478 * config/arm/iterators.md (V_two_elem): Tweak formatting.
24479 (V_three_elem): Use BLKmode for accesses that have no associated mode.
24480 (V_four_elem): Tweak formatting.
24481 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
24482 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
24483 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
24484 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
24485 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
24486 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
24487 (neon_vst4<mode>): Replace pointer operand with a memory operand.
24488 Use %A in the output template.
24489 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
24490 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
24491 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
24492 the width of the memory access. Remove post-increment.
24493 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
24494
f213ed3d 244952011-04-12 Nick Clifton <nickc@redhat.com>
24496
24497 * config/v850/v850.c (expand_prologue): Do not use the CALLT
24498 instruction for interrupt handlers if the target is the basic V850
24499 architecture.
24500 (expand_epilogue): Likewise.
24501
618d6675 245022011-04-12 Jakub Jelinek <jakub@redhat.com>
24503
24504 PR rtl-optimization/48549
24505 * combine.c (propagate_for_debug): Also stop after BB_END of
24506 this_basic_block. Process LAST and just stop processing after it.
24507 (combine_instructions): If last_combined_insn has been deleted,
24508 set last_combined_insn to its PREV_INSN.
24509
39f59e65 245102011-04-12 Richard Guenther <rguenther@suse.de>
24511
24512 PR tree-optimization/46076
24513 * gimple.h (struct gimple_statement_call): Add fntype field.
24514 (gimple_call_fntype): Adjust.
24515 (gimple_call_set_fntype): New function.
24516 * gimple.c (gimple_build_call_1): Set the call function type.
24517 * gimplify.c (gimplify_call_expr): Preserve the function
24518 type the frontend used for the call.
24519 (gimplify_modify_expr): Likewise.
24520 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
24521 function type.
24522 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
24523 function type.
24524 * tree-ssa.c (useless_type_conversion_p): Function pointer
24525 conversions are useless.
24526
5a90471f 245272011-04-12 Martin Jambor <mjambor@suse.cz>
24528
24529 * cgraph.h (cgraph_node): Remove function declaration.
24530 (cgraph_create_node): Declare.
24531 (cgraph_get_create_node): Likewise.
24532 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
24533 Updated all callers.
24534 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
24535 the decl does not already exist. Call cgraph_get_create_node instead
24536 of cgraph_node.
24537 (cgraph_get_create_node): New function.
24538 (cgraph_same_body_alias): Update comment.
24539 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
24540 assert it does not return NULL.
24541 (cgraph_update_edges_for_call_stmt): Likewise.
24542 (cgraph_clone_edge): Likewise.
24543 (cgraph_create_virtual_clone): Likewise.
24544 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
24545 instead of cgraph_node.
24546 (cgraph_add_new_function): Call cgraph_create_node or
24547 cgraph_get_create_node instead of cgraph_node.
24548 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
24549 instead of cgraph_node.
24550 (record_eh_tables): Likewise.
24551 (mark_address): Likewise.
24552 (mark_load): Likewise.
24553 (build_cgraph_edges): Call cgraph_get_create_node instead
24554 of cgraph_node.
24555 (rebuild_cgraph_edges): Likewise.
24556 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
24557 instead of cgraph_node.
24558 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
24559 cgraph_node.
24560 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
24561 cgraph_create_node instead of cgraph_node.
24562 * c-decl.c (finish_function): Call cgraph_get_create_node instead
24563 of cgraph_node.
24564 * lto-cgraph.c (input_node): Likewise.
24565 * lto-streamer-in.c (input_function): Likewise.
24566 * varasm.c (mark_decl_referenced): Likewise.
24567 (assemble_alias): Likewise.
24568
53f79206 245692011-04-12 Martin Jambor <mjambor@suse.cz>
24570
24571 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
24572 instead of cgraph_node and assert it does not return NULL.
24573 * lto-streamer-in.c (lto_read_body): Likewise.
24574 * omp-low.c (new_omp_context): Likewise.
24575 (create_task_copyfn): Likewise.
24576 * tree-emutls.c (lower_emutls_function_body): Likewise.
24577 * matrix-reorg.c (transform_allocation_sites): Likewise.
24578
ef31075b 245792011-04-12 Jakub Jelinek <jakub@redhat.com>
24580
24581 PR c/48552
24582 * c-typeck.c (build_asm_expr): Error out on attempts to use
24583 void type outputs or inputs for constraints that allow reg or
24584 don't allow memory.
24585
06adefdc 245862011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
24587 Richard Earnshaw <rearnsha@arm.com>
24588
24589 PR target/48250
24590 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
24591 to use sign-magnitude offsets. Reject unsupported unaligned
24592 cases. Add detailed description in comments.
24593 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
24594 condition from TARGET_32BIT to TARGET_ARM.
24595
1646aa85 245962011-04-11 Nathan Froyd <froydnj@codesourcery.com>
24597
24598 * tree.h (struct typed_tree): New.
24599 (struct tree_common): Include it instead of tree_base.
24600 (TREE_TYPE): Update for new location of type field.
24601 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
24602 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
24603 (union tree_node): Add typed field.
24604 * treestruct.def (TS_TYPED): New.
24605 * lto-streamer.c (check_handled_ts_structures): Handle it.
24606 * tree.c (MARK_TS_TYPED): New macro.
24607 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
24608
895fb8da 246092011-04-11 Eric Botcazou <ebotcazou@adacore.com>
24610
24611 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
24612 (force_nonfallthru): Do not alter the loop nest if no basic block
24613 was created.
24614
246152011-04-11 Uros Bizjak <ubizjak@gmail.com>
ba2558f8 24616
24617 * config/i386/sse.md (VI): New mode iterator.
24618 (SSEMODEI): Remove.
24619 (AVX256MODEI): Ditto.
24620 (AVXMODEF4P): Ditto.
24621 (avxvecpsmode): Ditto.
24622 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
24623 (sse2_andnot<mode>3): New expander.
24624 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
24625 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
24626 (<any_logic:code><mode>3): Use VI mode iterator.
24627 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
24628 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
24629 (*andnottf3): Handle AVX three-operand constraints.
24630 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
24631
153d662d 246322011-04-11 Joseph Myers <joseph@codesourcery.com>
ba2558f8 24633 Robert Millan <rmh@gnu.org>
153d662d 24634
24635 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
24636 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
24637 GNU_USER_DYNAMIC_LINKER64): Define.
24638 (REG_NAME): Don't undefine.
24639 (MD_UNWIND_SUPPORT): Undefine.
24640 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
24641 (REG_NAME): Don't undefine.
24642 (MD_UNWIND_SUPPORT): Undefine.
ba2558f8 24643 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
153d662d 24644
00049821 246452011-04-11 Joseph Myers <joseph@codesourcery.com>
24646
24647 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
24648 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
24649
850ff64c 246502011-04-11 Xinliang David Li <davidxl@google.com>
24651
24652 * value-profile.c (check_ic_target): New function.
24653 (gimple_ic_transform): Sanity check indirect call target.
24654 * gimple-low.c (gimple_check_call_args): Interface change.
24655 (gimple_check_call_matching_types): New function.
24656 * tree-inline.c (tree_can_inline_p): Call new function.
6e9b96ec 24657
246582011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
24659
24660 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
24661 tree-pretty-print.h & realmpfr.h.
24662
bc9b5bdf 246632011-04-11 Vladimir Makarov <vmakarov@redhat.com>
24664
24665 PR middle-end/48464
24666 * ira.c (setup_pressure_classes): Fix typo in loop condition.
24667 (setup_allocno_and_important_classes): Ditto.
24668
493a87fa 246692011-04-11 Joseph Myers <joseph@codesourcery.com>
24670
24671 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
24672 GNU_USER_DYNAMIC_LINKER.
24673 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
24674 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24675 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
24676 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
24677 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
24678 GNU_USER_TARGET_OS_CPP_BUILTINS.
24679 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
24680 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24681 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
24682 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24683 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
24684 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
24685 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
24686 GNU_USER_TARGET_OS_CPP_BUILTINS.
24687 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24688 GNU_USER_DYNAMIC_LINKER.
24689 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
24690 GNU_USER_TARGET_OS_CPP_BUILTINS.
24691 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
24692 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24693 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
24694 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24695 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
24696 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
24697 GNU_USER_DYNAMIC_LINKER64): Remove.
24698 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
24699 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24700 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24701 GNU_USER_DYNAMIC_LINKER.
24702 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
24703 GNU_USER_TARGET_OS_CPP_BUILTINS.
24704 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
24705 GNU_USER_TARGET_OS_CPP_BUILTINS.
24706 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
24707 to GNU_USER_TARGET_OS_CPP_BUILTINS.
24708 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
24709 GNU_USER_TARGET_OS_CPP_BUILTINS.
24710 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
24711 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
24712 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
24713 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
24714 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24715 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24716 GNU_USER_DYNAMIC_LINKER.
24717 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
24718 GNU_USER_TARGET_OS_CPP_BUILTINS.
24719 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
24720 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24721 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24722 GNU_USER_DYNAMIC_LINKER.
24723 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
24724 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24725 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
24726 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24727 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24728 GNU_USER_DYNAMIC_LINKER.
24729 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
24730 GNU_USER_DYNAMIC_LINKERN32.
24731 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
24732 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
24733 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
24734 GNU_USER_DYNAMIC_LINKER32.
24735 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
24736 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24737 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24738 GNU_USER_DYNAMIC_LINKER.
24739 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
24740 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24741 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
24742 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
ba2558f8 24743 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
493a87fa 24744 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
24745 GNU_USER_DYNAMIC_LINKER32.
24746 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
24747 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
24748 GNU_USER_DYNAMIC_LINKER.
24749 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
24750 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24751 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
24752 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
24753 GNU_USER_DYNAMIC_LINKER64.
24754 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
24755 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24756 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24757 GNU_USER_DYNAMIC_LINKER.
24758 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
24759 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24760 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
24761 GNU_USER_DYNAMIC_LINKER.
24762 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
24763 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24764 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
24765 GNU_USER_DYNAMIC_LINKER32.
24766 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
24767 GNU_USER_DYNAMIC_LINKER64.
24768 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
24769 GNU_USER_DYNAMIC_LINKER64.
24770 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
24771 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
24772 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
24773 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
ba2558f8 24774 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
493a87fa 24775
059631af 247762011-04-11 Joseph Myers <joseph@codesourcery.com>
24777
24778 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
24779 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
24780 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
24781 GNU_USER_DYNAMIC_LINKER.
24782 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
24783 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
24784 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
24785 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
24786 GNU_USER_DYNAMIC_LINKER64.
24787 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
24788 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
24789 GNU_USER_LINK_EMULATION.
24790 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
24791 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
24792 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
24793 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
24794 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
24795 CPP_SPEC, CC1_SPEC): Remove.
24796 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
24797 (GNU_USER_DYNAMIC_LINKER): Define.
24798 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
24799 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
24800 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
24801 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
24802 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
24803 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
24804 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
24805 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
24806 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
24807 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
24808 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
24809 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
24810 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
24811 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
24812 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
24813 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
24814 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
24815 GNU_USER_DYNAMIC_LINKER.
24816 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
24817 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
24818 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
24819 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
24820 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
24821 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
24822 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
24823 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
24824 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
ba2558f8 24825 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
059631af 24826
31db4638 248272011-04-11 Kai Tietz <ktietz@redhat.com>
24828
24829 PR target/9601
24830 PR target/11772
24831 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
24832 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
24833 comment.
24834 (ix86_is_msabi_thiscall): Removed.
24835 (ix86_is_type_thiscall): Likewise.
24836 (ix86_get_callcvt): New function.
24837 (ix86_comp_type_attributes): Simplify check.
24838 (ix86_function_regparm): Use ix86_get_callcvt for calling
24839 convention attribute checks.
24840 (ix86_return_pops_args): Likewise.
24841 (ix86_static_chain): Likewise.
24842 (x86_this_parameter): Likewise.
24843 (x86_output_mi_thunk): Likewise.
24844 (ix86_function_type_abi): Optimize check for types without attributes.
24845 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
24846 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
24847 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
24848 by flag-values.
24849 (IX86_BASE_CALLCVT): Helper macro.
24850 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
24851 Use ix86_get_callcvt for calling convention attribute checks and avoid
24852 symbol-decoration for stdcall in TARGET_RTD case.
24853 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
24854 Likewise.
24855 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
24856 for declaration.
24857
d8f82f6b 248582011-04-11 Uros Bizjak <ubizjak@gmail.com>
24859
24860 * config/i386/sse.md (VI_128): New mode iterator.
24861 (VI12_128): Rename from SSEMODE12.
24862 (VI14_128): Rename from SSEMODE14.
24863 (VI124_128): New mode iterator.
24864 (VI24_128): Rename from SSEMODE248.
24865 (VI248_128): Rename from SSEMODE248.
24866 (SSEMODE124C8): Remove.
24867 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
24868 (*sse2_<plusminus_insn><mode>3): Merge with
24869 *avx_<plusminus_insn><mode>3.
24870 (*mulv8hi3): Merge with *avx_mulv8hi3.
24871 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
24872 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
24873 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
24874 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
24875 (ashr<mode>3): Merge with *avx_ashr<mode>3.
24876 (lshr<mode>3): Merge with *avx_lshr<mode>3.
24877 (ashl<mode>3): Merge with *avx_ashl<mode>3.
24878 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
24879 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
24880 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
24881 (*<smaxmin:code>v8hi3): Ditto.
24882 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
24883 (*<smaxmin:code>v16qi3): Ditto.
24884 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
24885 (*sse2_eq<mode>3): Ditto.
24886 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
24887 (*sse2_gt<mode>3): Ditto.
24888 (vcondv2di): Split out of vcond<mode>.
24889 (vconduv2di): Split out of vcondu<mode>.
24890
22eb3302 248912011-04-11 Richard Guenther <rguenther@suse.de>
24892
24893 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
24894 before calling tree_low_cst.
24895
783bb57e 248962011-04-11 Richard Guenther <rguenther@suse.de>
24897
24898 * stor-layout.c (layout_type): Compute all array index size operations
24899 in the original type.
24900 (initialize_sizetypes): Add comment.
24901 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
24902
69304750 249032011-04-11 Joseph Myers <joseph@codesourcery.com>
24904
24905 * common.opt (Tbss=, Tdata=, Ttext=): New options.
24906
924de091 249072011-04-11 Martin Jambor <mjambor@suse.cz>
24908
24909 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
24910 of cgraph_node, handle NULL return value.
24911 (cgraph_global_info): Likewise.
24912 (cgraph_rtl_info): Likewise.
24913 * tree-inline.c (estimate_num_insns): Likewise.
24914 * gimplify.c (unshare_body): Likewise.
24915 (unvisit_body): Likewise.
24916 (gimplify_body): Likewise.
24917 * predict.c (optimize_function_for_size_p): Likewise.
24918 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
24919 (call_may_clobber_ref_p_1): Likewise.
24920 * varasm.c (function_section_1): Likewise.
24921 (assemble_start_function): Likewise.
24922
fd6a3c41 249232011-04-11 Martin Jambor <mjambor@suse.cz>
24924
24925 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
24926 of cgraph_node.
24927 * final.c (rest_of_clean_state): Likewise.
24928 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
24929 * passes.c (pass_init_dump_file): Likewise.
24930 (execute_all_ipa_transforms): Likewise.
24931 (function_called_by_processed_nodes_p): Likewise.
24932 * predict.c (maybe_hot_frequency_p): Likewise.
24933 (probably_never_executed_bb_p): Likewise.
24934 (compute_function_frequency): Likewise.
24935 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
24936 (unnest_nesting_tree_1): Likewise.
24937 (lower_nested_functions): Likewise.
24938 * tree-optimize.c (execute_fixup_cfg): Likewise.
24939 (tree_rest_of_compilation): Likewise.
24940 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
24941 * tree-sra.c (ipa_early_sra): Likewise.
24942 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
24943 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
24944 * ipa.c (record_cdtor_fn): Likewise.
24945 * ipa-inline.c (cgraph_early_inlining): Likewise.
24946 (compute_inline_parameters_for_current): Likewise.
24947 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
24948 * ipa-pure-const.c (local_pure_const): Likewise.
24949 * ipa-split.c (split_function): Likewise.
24950 (execute_split_functions): Likewise.
24951 * cgraphbuild.c (build_cgraph_edges): Likewise.
24952 (rebuild_cgraph_edges): Likewise.
24953 (cgraph_rebuild_references): Likewise.
24954 (remove_cgraph_callee_edges): Likewise.
24955 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
24956 (verify_cgraph_node): Likewise.
24957 (cgraph_analyze_functions): Likewise.
24958 (cgraph_preserve_function_body_p): Likewise.
24959 (save_inline_function_body): Likewise.
24960 (save_inline_function_body): Likewise.
24961 * tree-inline.c (copy_bb): Likewise.
24962 (optimize_inline_calls): Likewise.
24963
6416d4a5 249642011-04-11 Martin Jambor <mjambor@suse.cz>
24965
24966 PR tree-optimization/48195
24967 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
24968 ipa_check_create_edge_args.
24969 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
24970 ipa_check_create_edge_args.
24971 * ipa-inline.c (inline_generate_summary): Do not call
24972 ipa_check_create_node_params and ipa_check_create_edge_args.
24973 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
24974 ipa_check_create_edge_args.
24975
d82cf2b2 249762011-04-09 Anatoly Sokolov <aesok@post.ru>
24977
24978 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
24979 instead of loop.
24980 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
24981 * function.c (record_hard_reg_sets): Likewise.
24982 * ira.c (compute_regs_asm_clobbered): Likewise.
24983 * sched-deps.c (sched_analyze_1): Likewise.
24984 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
24985
69c7c3a1 249862011-04-09 Xinliang David Li <davidxl@google.com>
24987
24988 PR tree-optimization/PR48484
24989 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
24990 has_valid_pred lazily
24991
33672307 249922011-04-09 Duncan Sands <baldrick@free.fr>
24993
24994 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
24995
1aaffeb7 249962011-04-08 Eric Botcazou <ebotcazou@adacore.com>
24997
24998 * combine.c (combine_validate_cost): Adjust comments. Set registered
24999 cost of I0 to zero at the end, if any.
25000
71320908 250012011-04-08 Xinliang David Li <davidxl@google.com>
25002
1aaffeb7 25003 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
25004 to insane profile data.
71320908 25005
8154e1e3 250062011-04-08 Xinliang David Li <davidxl@google.com>
25007
25008 * ipa-cp.c (ipcp_update_profiling): Correct
25009 negative scale factor due to insane profile data.
25010
33e4567d 250112011-04-08 Xinliang David Li <davidxl@google.com>
25012
25013 * final.c (dump_basic_block_info): New function.
25014 (final): Dump basic block.
25015 (final_scan_insn): Remove old dump.
25016
8ea84229 250172011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
25018
1aaffeb7 25019 PR target/47829
25020 * config.gcc (i386-*-freebsd): Disable unwind table generation for
25021 crtbegin/crtend.
8ea84229 25022
409e049a 250232011-04-08 Michael Matz <matz@suse.de>
25024
25025 PR middle-end/48389
25026 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
25027 functions.
25028 (rebuild_jump_labels): Call rebuild_jump_labels_1.
25029 * rtl.h (rebuild_jump_labels_chain): Declare.
25030 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
25031 insns inserted on edges.
25032
9a4818f1 250332011-04-08 Joseph Myers <joseph@codesourcery.com>
25034
25035 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
25036 * config/arm/arm-arches.def: New.
25037 * config/arm/arm-opts.h: New.
25038 * config/arm/genopt.sh: New.
25039 * config/arm/arm-tables.opt: New (generated).
25040 * config/arm/arm.c (arm_handle_option, arm_target_help,
25041 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
25042 (all_architectures): Get most table contents from arm-arches.def.
25043 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
25044 arm_selected_tune here.
25045 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
25046 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
25047 (march=, mcpu=, mtune=): Use Enum and Var.
25048 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
25049 (arm.o): Update dependencies.
db012761 25050
409e049a 250512011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
db012761 25052
25053 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
25054 of header_file.
25055 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
25056 (write_typed_alloc_defns): Likewise.
25057 (main): Calls write_typed_alloc_defns with output_header.
25058
1dceb3f2 250592011-04-08 Vladimir Makarov <vmakarov@redhat.com>
25060
1aaffeb7 25061 PR inline-asm/48435
1dceb3f2 25062 * ira-color.c (setup_profitable_hard_regs): Add comments.
25063 Don't take prohibited hard regs into account.
25064 (setup_conflict_profitable_regs): Rename to
25065 get_conflict_profitable_regs.
25066 (check_hard_reg_p): Check prohibited hard regs.
25067
f2606961 250682011-04-08 Nathan Froyd <froydnj@codesourcery.com>
25069
25070 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
25071 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
25072 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
25073
5ddb2975 250742011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25075
25076 PR target/48366
25077 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
c063d2da 25078 move from floating point to shift amount register.
5ddb2975 25079 (emit_move_sequence): Remove secondary reload support for floating
25080 point to shift amount amount register copies.
25081 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
25082 amount register copies.
25083 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
25084 register, return false if mode isn't a scalar integer mode.
25085 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
25086
d71dc717 250872011-04-08 Richard Guenther <rguenther@suse.de>
25088
25089 * gimple.c (gimple_call_flags): Remove kludge.
25090
a060ed03 250912011-04-08 Alexander Monakov <amonakov@ispras.ru>
25092
25093 * sel-sched.c (sel_region_init): Move call to
25094 sel_setup_region_sched_flags after setup_current_loop_nest.
25095
c15d7785 250962011-04-08 Andrey Belevantsev <abel@ispras.ru>
25097
25098 PR rtl-optimization/48272
c15d7785 25099 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
25100 init_insn_reg_pressure_info. Adjust a caller.
25101 * sched-int.h (init_insn_reg_pressure_info): Declare.
25102 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
25103 when sched-pressure is enabled.
25104
e1f47fd3 251052011-04-08 Richard Guenther <rguenther@suse.de>
25106
25107 * gimple.c (gimple_set_modified): Do not queue calls to
25108 MODIFIED_NORETURN_CALLS here ...
25109 * tree-ssa-operands.c (update_stmt_operands): ... but here.
25110
f463da94 251112011-04-08 Richard Guenther <rguenther@suse.de>
25112
25113 PR lto/48467
25114 * toplev.c (lang_dependent_init): Do not open asm_out_file
25115 in WPA mode, nor perform debug machinery initialization.
25116 (finalize): Do not unlink asm_out_file in WPA mode.
25117
2de00a2d 251182011-04-08 Richard Guenther <rguenther@suse.de>
25119
25120 * gimple.h (gimple_call_fntype): New function.
25121 (gimple_call_return_type): Use it.
25122 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
25123 * gimple-low.c (gimple_check_call_args): Likewise.
25124 * gimple.c (gimple_call_flags): Likewise.
25125 (gimple_call_arg_flags): Likewise.
25126 (gimple_call_return_flags): Likewise.
25127 * tree-cfg.c (verify_gimple_call): Likewise.
25128 (do_warn_unused_result): Likewise.
25129 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
25130 * value-prof.c (gimple_ic_transform): Fix fndecl check.
25131
8ff642e9 251322011-04-08 Dmitry Melnik <dm@ispras.ru>
25133
25134 PR rtl-optimization/48235
25135 * sel-sched.c (code_motion_process_successors): Recompute the last
25136 insn in basic block if control flow changed.
25137 (code_motion_path_driver): Ditto. Recompute the first insn as well.
25138 Update condition for ilist_remove.
25139
b73edd22 251402011-04-08 Alexander Monakov <amonakov@ispras.ru>
25141
25142 PR rtl-optimization/48302
25143 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
25144 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
25145 it to record added preheader blocks.
25146 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
25147 on to sel_add_loop_preheaders.
25148 (sel_region_init): Move call to setup_current_loop_nest after
25149 sel_init_bbs.
25150
a8d6ade3 251512011-04-08 Alexander Monakov <amonakov@ispras.ru>
25152
25153 PR target/48273
25154 * cfgloop.h (loop_has_exit_edges): New helper.
25155 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
25156 non-clonable.
25157 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
25158 that have no exit edges.
25159
def66588 251602011-04-08 Alexander Monakov <amonakov@ispras.ru>
25161
25162 PR rtl-optimization/48442
25163 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
25164 all callers. Adjust assert.
25165
570e2049 251662011-04-08 Jakub Jelinek <jakub@redhat.com>
25167
25168 PR tree-optimization/48377
25169 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
25170 is_packed to true even for types with smaller TYPE_ALIGN than
25171 TYPE_SIZE.
25172
707b84a3 251732011-04-08 Richard Guenther <rguenther@suse.de>
25174
25175 PR bootstrap/48513
25176 * doc/tm.texi: Re-generate.
25177
08508cbf 251782011-04-08 Wei Guozhi <carrot@google.com>
25179
25180 PR target/47855
25181 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
25182 * config/arm/arm.c (arm_attr_length_push_multi): New function.
25183 * config/arm/arm.md (*push_multi): Change the length computation to
25184 call a C function.
25185
fa8d6f0f 251862011-04-08 Anatoly Sokolov <aesok@post.ru>
25187
25188 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
25189 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
25190 * doc/tm.texi: Regenerate.
25191 * system.h (ASM_OUTPUT_BSS): Poison.
25192 * varasm.c (asm_output_bss): Remove function.
25193 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
d8f82f6b 25194
fa8d6f0f 25195 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
25196 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
25197 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
25198 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25199 Likewise.
25200 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25201 Likewise.
25202 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
25203 Likewise.
25204 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
25205
8f139ed9 252062011-04-07 Joseph Myers <joseph@codesourcery.com>
25207
25208 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
25209 EnumValue lines.
25210
17e4f171 252112011-04-07 Joseph Myers <joseph@codesourcery.com>
25212
25213 * config/m68k/m68k.c (m68k_handle_option): Don't handle
25214 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
25215 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
25216 OPT_mcpu32.
25217 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
25218 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
25219 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
25220 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
25221 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
25222 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
25223 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
25224 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
25225 options. Don't map other m68k options manually. Don't handle
25226 old-style options as canonical.
25227 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
d8f82f6b 25228 * doc/install.texi (m68k-*-*): Document binutils version requirement.
17e4f171 25229
202bbc06 252302011-04-07 Eric Botcazou <ebotcazou@adacore.com>
25231
25232 * basic-block.h (force_nonfallthru): Move to...
25233 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
25234 (force_nonfallthru): ...here.
25235 * cfghooks.c (force_nonfallthru): New function.
25236 * cfgrtl.c (force_nonfallthru): Rename into...
25237 (rtl_force_nonfallthru): ...this.
25238 (commit_one_edge_insertion): Do not set AUX field.
25239 (commit_edge_insertions): Do not discover new basic blocks.
25240 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
25241 (cfg_layout_rtl_cfg_hooks): Likewise.
25242 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
25243 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
25244 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
25245
91d92c6c 252462011-04-07 Anatoly Sokolov <aesok@post.ru>
25247
25248 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
25249 Remove macros.
25250
45c0368c 252512011-04-07 Uros Bizjak <ubizjak@gmail.com>
25252
25253 * config/i386/sse.md: Update copyright year.
25254 (avxcvtvecmode): Remove.
25255 (sse_movhlps): Merge with *avx_movhlps.
25256 (sse_movlhps): Merge with *avx_movlhps.
25257 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
25258 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
25259 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
25260 (sse_loadhps): Merge with *avx_loadhps.
25261 (sse_storelps): Merge with *avx_storelps.
25262 (sse_loadlps): Merge with *avx_loadlps.
25263 (sse_movss): Merge with *avx_movss.
25264 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
25265 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
25266 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
25267 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
25268 (vec_set<mode>_0): Ditto.
25269 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
25270 (sse4_1_insertps): Merge with *avx_insertps.
25271 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
25272 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
25273 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
25274 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
25275 (sse2_storehpd): Merge with *avx_storehpd.
25276 (sse2_loadhpd): Merge with *avx_loadhpd.
25277 (sse2_loadlpd): Merge with *avx_loadlpd.
25278 (sse2_movsd): Merge with *avx_movsd.
25279 (*vec_concatv2df): Merge with *vec_concatv2df.
25280
0444b5eb 252812011-04-07 Jakub Jelinek <jakub@redhat.com>
25282
25283 PR debug/48343
25284 * combine.c (combine_instructions): Add last_combined_insn,
45c0368c 25285 update it if insn is after it, pass it to all try_combine calls.
0444b5eb 25286 (try_combine): Add last_combined_insn parameter, pass it instead of
25287 i3 to propagate_for_debug.
25288
45c0368c 252892011-04-07 Nick Clifton <nickc@redhat.com>
23add660 25290
25291 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
25292 to handle MDR <-> data register transfers.
25293 (movhi_internal): Likewise.
25294
1994bf18 252952011-04-07 Alan Modra <amodra@gmail.com>
25296
25297 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
25298 previous stack info.
25299
0f38cfdd 253002011-04-07 Tom de Vries <tom@codesourcery.com>
25301
25302 PR target/43920
25303 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
25304 flow_find_cross_jump. Swap variables to implement backward replacement.
25305 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
25306
4ef44dfa 253072011-04-07 Tom de Vries <tom@codesourcery.com>
25308
25309 PR target/43920
25310 * cfgcleanup.c (walk_to_nondebug_insn): New function.
45c0368c 25311 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
25312 and bb2.
25313 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
25314 src1 or src2. Redirect edges to the last basic block. Update
25315 frequency and count on multiple basic blocks in case of fallthru.
4ef44dfa 25316
764aef11 253172011-04-07 Tom de Vries <tom@codesourcery.com>
25318
25319 PR target/43920
25320 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
25321 function.
45c0368c 25322 (old_insns_match_p): Change return type. Replace return false/true
25323 with return dir_none/dir_both. Use can_replace_by.
25324 (flow_find_cross_jump): Add dir_p parameter. Init replacement
25325 direction from dir_p. Register replacement direction in dir, last_dir
25326 and afterlast_dir. Handle new return type of old_insns_match_p using
764aef11 25327 merge_dir. Return replacement direction in dir_p.
25328 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
25329 return type of old_insns_match_p.
25330 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
25331 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
25332 flow_find_cross_jump.
25333 * basic-block.h (enum replace_direction): New type.
25334 (flow_find_cross_jump): Add parameter to declaration.
25335
887423c0 253362011-04-06 Uros Bizjak <ubizjak@gmail.com>
25337
25338 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
25339 (AVXMODEDCVTPS2DQ): Ditto.
25340 (VEC_FLOAT_MODE): Ditto.
25341 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
25342 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
25343 (<any_logic:code><mode>3): Use VF mode iterator.
25344 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
25345 Use VF mode iterator.
25346 (copysign<mode>3): Use VF mode iterator.
25347 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
25348 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
25349 (*<any_logic:code><MODEF:mode>3): Merge with
25350 *avx_<any_logic:code><MODEF:mode>3.
25351 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
25352 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
25353 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
25354 (avx_cvtdq2ps<avxmodesuffix>): Remove.
25355 (sse2_cvtdq2ps): Use %v modifier.
25356 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
25357 (avx_cvtps2dq<avxmodesuffix>): Remove.
25358 (sse2_cvtps2dq): Use %v modifier.
25359 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
25360 (avx_cvttps2dq<avxmodesuffix>): Remove.
25361 (sse2_cvttps2dq): Use %v modifier.
25362 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
25363 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
25364 (sse2_cvtsd2siq): Fix insn template.
25365 (sse2_cvtsd2siq_2): Ditto.
25366 (sse2_cvttsd2siq): Ditto.
25367 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
25368 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
25369
cf09cacb 253702011-04-06 Joseph Myers <joseph@codesourcery.com>
25371
25372 * gcov-io.c: Use GCC Runtime Library Exception.
25373
9410ca1e 253742011-04-06 Jakub Jelinek <jakub@redhat.com>
25375
25376 PR debug/48466
25377 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
25378 as base_reg whatever register reg has been eliminated to, instead
25379 of hardcoding STACK_POINTER_REGNUM.
25380
c94b1d0e 253812011-04-06 Joseph Myers <joseph@codesourcery.com>
25382
25383 * doc/tm.texi.in: Document C target hooks as separate from general
25384 target hooks.
25385 * doc/tm.texi: Regenerate.
25386 * genhooks.c (struct hook_desc): Add docname field.
25387 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
25388 docname field.
25389 (hook_array): Include c-target.def.
25390 (emit_documentation): Use docname field in output.
25391 (emit_init_macros): Take docname argument. Only emit definitions
25392 for hooks matching docname.
25393 (main): Expect additional arguments in all cases. Pass argument
25394 to emit_init_macros.
25395 * target.def: Move initial macro definitions and comments to
25396 target-hooks-macros.h.
25397 (gcc_targetcm): Move to c-family/c-target.def.
25398 * target.h (targetcm): Move declaration to c-family/c-target.h.
25399 * targhooks.c (default_handle_c_option): Move to
25400 c-family/c-opts.c.
25401 * targhooks.h (default_handle_c_option): Move declaration to
25402 c-family/c-common.h.
25403 * target-hooks-macros.h: New file.
25404 * config.gcc (target_has_targetcm): Define and use to add to
25405 c_target_objs and cxx_target_objs.
25406 * config/default-c.c: New file.
25407 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
25408 of target.h and target-def.h.
25409 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
25410 (darwin_objc_construct_string, darwin_cfstring_ref_p,
25411 darwin_check_cfstring_format_arg): Make static.
25412 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
25413 TARGET_STRING_OBJECT_REF_TYPE_P,
25414 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
25415 * config/darwin-protos.h (darwin_objc_construct_string,
25416 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
25417 declare.
25418 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
25419 TARGET_STRING_OBJECT_REF_TYPE_P,
887423c0 25420 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
c94b1d0e 25421 * config/t-darwin (darwin-c.o): Update dependencies.
25422 * system.h (TARGET_HAS_TARGETCM): Poison.
25423 * Makefile.in (TARGET_H): Update.
25424 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
25425 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
25426 (default-c.o): New target.
25427 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
887423c0 25428 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
c94b1d0e 25429 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
25430 c-target.def.
25431 (build/genhooks.o): Update dependencies.
25432
cd800728 254332011-04-06 Richard Guenther <rguenther@suse.de>
887423c0 25434
cd800728 25435 * ipa-inline.c (enum inlining_mode): Remove.
25436 (cgraph_flatten): Use some other token.
25437 (cgraph_edge_early_inlinable_p): New function, split out from ...
25438 (cgraph_perform_always_inlining): New function, split out from ...
25439 (cgraph_decide_inlining_incrementally): ... here.
25440 (cgraph_mark_inline_edge): Adjust.
25441 (cgraph_early_inlining): Re-structure.
25442 (pass_early_inline): Require SSA form.
25443
c6bc553f 254442011-04-06 Andrew Stubbs <ams@codesourcery.com>
d91bf430 25445 Julian Brown <julian@codesourcery.com>
25446 Mark Shinwell <shinwell@codesourcery.com>
25447
25448 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
25449 LO_REGS only for Thumb-1.
25450 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
25451 be used in short instructions when optimising for size on Thumb-2.
25452
28f9c1a1 254532011-04-06 Eric Botcazou <ebotcazou@adacore.com>
25454
25455 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
25456 associated with user returns to be preserved.
25457
96df1423 254582011-04-06 Tristan Gingold <gingold@adacore.com>
25459
c6bc553f 25460 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
25461 symbol_queue_size, DBXOUT_DECR_NESTING,
96df1423 25462 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
25463 if XCOFF_DEBUGGING_INFO.
25464
27e5502d 254652011-04-06 Uros Bizjak <ubizjak@gmail.com>
25466
25467 * config/i386/i386.md (attribute isa): New.
25468 (attribute enabled): New.
25469 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
25470 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
25471 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
25472 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
25473 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
25474 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
25475 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
25476 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
25477
25478 * config/i386/sse.md (VF): New mode iterator.
25479 (VF1): Ditto.
25480 (VF2): Ditto.
25481 (VF_128): Ditto.
25482 (SSEMODEF4): Remove.
25483 (attribute sse): Handle V8SF and V4DF modes.
25484 (<absneg:code><mode>2): Use VF mode iterator.
25485 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
25486 mode iterator.
25487 (<plusminus_insn><mode>3): Use VF mode iterator.
25488 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
25489 Use VF mode iterator.
25490 (<sse>_vm<plusminus_insn><mode>3): Merge with
25491 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
25492 (mul<mode>3): Use VF mode iterator.
25493 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
25494 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
25495 mode iterator.
25496 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
25497 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
25498 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
25499 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
25500 mode iterator.
25501 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
25502 Use VF1 mode iterator.
25503 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
25504 (sqrt<VF2:mode>2): New expander.
25505 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
25506 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
25507 and sqrtv2df2. Use VF mode iterator.
25508 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
25509 mode iterator.
25510 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
25511 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
25512 Use VF1 mode iterator.
25513 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
25514 (<smaxmin:code><mode>3): Use VF mode iterator.
25515 (*<smaxmin:code><mode>3_finite): Merge with
25516 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
25517 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
25518 (<sse>_vm<smaxmin:code><mode>2): Merge with
25519 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
25520 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
25521 mode iterator.
25522 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
25523 mode iterator.
25524 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
25525 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
25526 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
25527 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
25528 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
25529 VF mode iterator.
25530 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
25531 Use VF_128 mode iterator.
25532 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
25533 mode iterator.
25534 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
25535 VF_128 mode iterator.
25536 (vcond<mode>): Use VF mode iterator.
25537 * config/i386/predicates.md (sse_comparison_operator): Merge with
25538 avx_comparison_float_operator. Do not declare as special_predicate.
25539 * config/i386/i386.c (struct builtin_description): Update for renamed
25540 compare patterns.
25541 (ix86_expand_args_builtin): Ditto.
25542 (ix86_expand_sse_compare_mask): Ditto.
25543
5ed92cc9 255442011-04-06 Richard Guenther <rguenther@suse.de>
25545
25546 * tree-inline.c (estimate_num_insns): For calls simply account
25547 for all passed arguments and a used return value.
25548
17c205c9 255492011-04-06 Richard Guenther <rguenther@suse.de>
27e5502d 25550
17c205c9 25551 PR tree-optimization/47663
25552 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
25553 call_stmt_time fields.
25554 (cgraph_edge_inlinable_p): Declare.
25555 (cgraph_edge_recursive_p): New inline function.
25556 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
25557 (cgraph_clone_edge): Copy it.
25558 * ipa-inline.c (cgraph_estimate_edge_time): New function.
25559 Account for call stmt time.
25560 (cgraph_estimate_time_after_inlining): Take edge argument.
25561 (cgraph_estimate_edge_growth): Account call stmt size.
25562 (cgraph_estimate_size_after_inlining): Take edge argument.
25563 (cgraph_mark_inline_edge): Adjust.
25564 (cgraph_check_inline_limits): Likewise.
25565 (cgraph_recursive_inlining_p): Remove.
25566 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
25567 (cgraph_decide_recursive_inlining): Take edge argument and
25568 adjust.
25569 (cgraph_decide_inlining_of_small_functions): Do not avoid
25570 diags for recursive inlining here.
25571 (cgraph_flatten): Adjust.
25572 (cgraph_decide_inlining_incrementally): Likewise.
25573 (estimate_function_body_sizes): Remove call cost handling.
25574 (compute_inline_parameters): Initialize caller edge call costs.
25575 (cgraph_estimate_edge_growth): New function.
25576 (cgraph_estimate_growth): Use it.
25577 (cgraph_edge_badness): Likewise.
25578 (cgraph_check_inline_limits): Take an edge argument.
25579 (cgraph_decide_inlining_of_small_functions): Adjust.
25580 (cgraph_decide_inlining): Likewise.
25581 * tree-inline.c (estimate_num_insns): Only account for call
25582 return value if it is used.
25583 (expand_call_inline): Avoid diagnostics on recursive inline
25584 functions here.
25585 * lto-cgraph.c (lto_output_edge): Output edge call costs.
25586 (input_edge): Input edge call costs.
25587
85a30355 255882011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25589
25590 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
25591
3df28f22 255922011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
25593
25594 * doc/invoke.texi (Spec Files): Fix typo.
25595
b39a37c3 255962011-04-06 Eric Botcazou <ebotcazou@adacore.com>
25597
25598 * profile.c (branch_prob): Move declaration of local variable. Remove
25599 obsolete ??? comment. Expand the location explicitly instead of using
25600 the LOCATION_FILE and LOCATION_LINE macros.
25601
a6864a24 256022011-04-06 Wei Guozhi <carrot@google.com>
25603
25604 PR target/47855
25605 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
25606 (arm_cond_branch): Likewise.
25607 (arm_cond_branch_reversed): Likewise.
25608 (arm_jump): Likewise.
25609 (push_multi): Likewise.
25610 * config/arm/constraints.md (Py): New constraint.
25611
7f146d20 256122011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25613
25614 PR bootstrap/48471
25615 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
25616 Move these...
25617 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
25618 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
25619 #ifdef DBX_DEBUGGING_INFO.
25620
2cd04cca 256212011-04-05 Bernd Schmidt <bernds@codesourcery.com>
25622
25623 PR bootstrap/48403
25624 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
25625 if old and new states differ.
25626
a6452d58 256272011-04-05 Joseph Myers <joseph@codesourcery.com>
25628
25629 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
25630 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
25631 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
25632 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
25633 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
25634 mcfv4e): Use Alias.
25635 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
25636 ColdFire options to -mcpu= options.
25637
895cf925 256382011-04-05 Jeff Law <law@redhat.com>
25639
25640 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
25641 check if BB is a successor of LOOP->header and return
25642 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
25643
748fd717 256442011-04-05 Steven Bosscher <steven@gcc.gnu.org>
25645
25646 * cprop.c (struct reg_use): Remove.
25647 (reg_use_table): Make an array of RTX.
25648 (find_used_regs, constprop_register, local_cprop_pass,
25649 bypass_block): Simplify users of reg_use_table.
25650 (cprop_insn): Likewise. Iterate if copy propagation succeeded
25651 on one of the uses found by find_used_regs.
25652
cebe9a67 256532011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25654
25655 PR bootstrap/48469
25656 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
25657 declaration.
25658
2415b8ff 256592011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25660
25661 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
25662 as an rtx.
25663 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
25664
72269ab0 256652011-04-05 Steven Bosscher <steven@gcc.gnu.org>
25666
25667 PR middle-end/48441
25668 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
25669
2a0877d8 256702011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25671
25672 * combine.c: Include obstack.h.
25673 (struct insn_link): Define.
25674 (uid_log_links): Adjust type.
25675 (FOR_EACH_LOG_LINK): New macro.
25676 (insn_link_obstack): Declare.
25677 (alloc_insn_link): Define.
25678 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
25679 type of link variables.
25680 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
25681 (try_combine, record_promoted_values, distribute_notes): Likewise.
25682 (distribute_links): Likewise. Tweak prototype.
25683 (clear_log_links): Delete.
25684 (adjust_for_new_dest): Call alloc_insn_link.
25685 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
25686
577cca34 256872011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25688
25689 * gcse.c (modify_mem_list): Convert to an array of VECs.
25690 (canon_modify_mem_list, compute_transp): Tweak formatting.
25691 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
25692 (load_killed_in_block_p): Likewise.
25693 (record_last_mem_set_info): Likewise.
25694 (clear_modify_mem_tables): Likewise.
25695
bcf58f16 256962011-04-05 Tom de Vries <tom@codesourcery.com>
25697
25698 PR middle-end/48461
25699 * function.c (emit_use_return_register_into_block): Only define if
25700 HAVE_return.
25701
5cca4f1d 257022011-04-05 Eric Botcazou <ebotcazou@adacore.com>
25703
25704 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
25705
8cb00d70 257062011-04-05 Joseph Myers <joseph@codesourcery.com>
25707
25708 * config/rx/rx-opts.h: New.
25709 * config/rx/rx.c (rx_cpu_type): Remove.
25710 (rx_handle_option): Don't assert that global structures are in
25711 use. Access variables via opts pointer. Defer most handling of
25712 OPT_mint_register_. Use error_at.
25713 (rx_option_override): Handle deferred OPT_mint_register_ here.
25714 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
25715 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
25716 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
25717 (rx_cpu_types): New Enum and EnumValue entries.
25718 (mint-register=): Use Defer and use Var accordingly.
25719
00e3fe44 257202011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25721
25722 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
25723 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
25724 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
25725 Move these...
25726 (debug_free_queue, debug_nesting, symbol_queue_index):
25727 ...and these...
25728 * dbxout.c: ...to here. Make static.
25729
57c8e46c 257302011-04-05 Nathan Froyd <froydnj@codesourcery.com>
25731
25732 * gcse.c (modify_pair): Define. Define a VEC of it.
25733 (canon_modify_mem_list): Convert to an array of VECs.
25734 (free_insn_expr_list_list): Delete.
25735 (clear_modify_mem_tables): Call VEC_free instead.
25736 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
25737 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
25738 (canon_list_insert, compute_transp): Likewise.
25739
ea5709fb 257402011-04-05 Tom de Vries <tom@codesourcery.com>
25741
25742 PR target/43920
25743 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
25744 for size.
25745
f2c8a251 257462011-04-05 Tom de Vries <tom@codesourcery.com>
25747
25748 PR target/43920
25749 * function.c (emit_use_return_register_into_block): New function.
25750 (thread_prologue_and_epilogue_insns): Use
25751 emit_use_return_register_into_block.
25752
e1ebb662 257532011-04-05 Tom de Vries <tom@codesourcery.com>
25754
25755 PR target/43920
25756 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
25757 insn.
25758
e8911909 257592011-04-05 Tom de Vries <tom@codesourcery.com>
25760
25761 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
25762
e7d6d136 257632011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
25764
d8f82f6b 25765 * config/arm/arm.md (define_constants for unspec): Replace with
25766 define_c_enum.
25767 (define_constants for unspecv): Replace with define_c_enum.
25768 * config/arm/neon.md (define_constants for unspec): Replace with
25769 define_c_enum.
e7d6d136 25770
f773da64 257712011-04-04 Richard Henderson <rth@redhat.com>
25772
62741f83 25773 PR bootstrap/48400
f773da64 25774 * dwarf2out.c (output_line_info): Always emit line info from
25775 at least one section.
25776 (dwarf2out_init): Create text_section_line_info here ...
25777 (set_cur_line_info_table): ... not here.
25778
62741f83 257792011-04-04 Vladimir Makarov <vmakarov@redhat.com>
212e5c4f 25780
25781 PR target/48380
25782 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
62741f83 25783 not called.
212e5c4f 25784
62741f83 25785 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
212e5c4f 25786
c8a32de3 257872011-04-04 Steven Bosscher <steven@gcc.gnu.org>
25788
202325b0 25789 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
25790 (expr_equiv_p): Remove.
25791 (insert_set_in_table): Look at <dest, src> pair instead of expr.
25792 (hash_scan_set): Update call to insert_set_in_table.
25793 (dump_hash_table): Dump <dest, src> pair.
25794 (lookup_set): Simplify. Lookup <dest, src> pair.
25795 (compute_transp): Remove, fold heavily simplified code into...
25796 (compute_local_properties): ...here. Expect COMP and TRANSP
25797 unconditionally.
25798 (find_avail_set): Take set directly from struct expr.
25799 (find_bypass-set): Likewise.
25800 (bypass_block): Likewise.
25801 (cprop_insn): Likewise. Remove redundant INSN_P test.
25802
971ce6d5 25803 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
25804 checks on form of COND from find_implicit_sets to here.
25805 (find_implicit_sets): Cleanup control flow. Split critical edges
25806 if it exposes implicit sets. Allocate/resize implicit_sets as
25807 necessary.
25808 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
25809 changed something. Run df_analyze after find_implicit_sets if any
25810 edges were split. Do not allocate implicit_sets here.
25811
540960d1 25812 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
25813 (gcse_obstack): Renamed to cprop_obstack.
25814 (GNEW, GNEWVEC, GNEWVAR): Remove.
25815 (gmalloc): Remove.
25816 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
25817 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
25818 (gcse_alloc): Likewise, and rename to cprop_alloc.
25819 (alloc_gcse_men, free_gcse_mem): Remove.
25820 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
25821 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
25822 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
25823
c8a32de3 25824 * cprop.c (oprs_not_set_p): Remove.
25825 (mark_set, mark_clobber): Remove.
25826 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
25827 (reg_not_set_p): New function.
25828 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
25829 (cprop_insn): Likewise.
25830 (cprop_jump): Use FOR_EACH_EDGE.
25831
b5f4bfde 258322011-04-04 Bernd Schmidt <bernds@codesourcery.com>
25833
25834 PR bootstrap/48403
25835 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
25836 (rank_for_schedule): Use scheduled_insns vector instead of
25837 last_scheduled_insn.
25838 (ok_for_early_queue_removal): Likewise.
25839 (queue_to_ready): Search forward in nonscheduled_insns_begin if
25840 we have a dbg_cnt.
25841 (choose_ready): Likewise.
25842 (commit_schedule): Use VEC_iterate.
25843 (schedule_block): Initialize nonscheduled_insns_begin. If we have
25844 a dbg_cnt, use it and ensure the first insn is in the ready list.
25845 (haifa_sched_init): Allocate scheduled_insns.
25846 (sched_extend_ready_list): Don't allocate it; reserve space.
25847 (haifa_sched_finish): Free it.
25848
c3be4b75 258492011-04-04 Joseph Myers <joseph@codesourcery.com>
25850
25851 * optc-gen.awk: Always remove type from Variable entry before
25852 recording in var_seen.
25853
8ea8dad9 258542011-04-04 Eric Botcazou <ebotcazou@adacore.com>
25855
25856 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
25857 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
25858 call to tidy_fallthru_edges.
25859
cb14e058 258602011-04-04 Joseph Myers <joseph@codesourcery.com>
25861
25862 * doc/options.texi (ToLower): Document.
45c0368c 25863 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
cb14e058 25864 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
25865 * opts.h (cl_option): Add cl_tolower field.
25866 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
25867 arguments with lowercase strings.
25868 * config/rx/rx.opt (mcpu=): Add ToLower.
25869 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
25870 argument.
25871
f47cf939 258722011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
25873
25874 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
25875
ef0fd182 258762011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
25877
25878 * config/vax/vax.c: Include reload.h.
25879
10829e0b 258802011-04-04 Anatoly Sokolov <aesok@post.ru>
25881
25882 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
25883 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
25884 (sparc_preferred_reload_class): New function.
25885
3e549002 258862011-04-04 Jakub Jelinek <jakub@redhat.com>
25887
517579e0 25888 PR debug/48401
3e549002 25889 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
25890 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
25891
544d4f58 258922011-04-03 Nathan Froyd <froydnj@codesourcery.com>
25893
25894 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
25895 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
25896
b47778c4 258972011-04-03 Anatoly Sokolov <aesok@post.ru>
25898
25899 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
25900 (ASM_OUTPUT_ALIGNED_BSS): Define.
25901
5cd33168 259022011-04-03 Michael Matz <matz@suse.de>
25903
25904 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
25905 and next_slot members.
25906 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
25907 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
25908 (lto_streamer_cache_append): Declare.
25909 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
25910 unsigned index, remove offset parameter, ensure that we append
25911 or update existing entries.
25912 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
25913 parameter, update next_slot for append.
25914 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
25915 parameter.
25916 (lto_streamer_cache_insert_at): Likewise.
25917 (lto_streamer_cache_append): New function.
25918 (lto_streamer_cache_lookup): Use unsigned index.
25919 (lto_streamer_cache_get): Likewise.
25920 (lto_record_common_node): Don't test tree_node_can_be_shared.
25921 (preload_common_node): Adjust call to lto_streamer_cache_insert.
25922 (lto_streamer_cache_delete): Don't free offsets member.
25923 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
25924 (lto_output_string_with_length): Use lto_output_data_stream.
25925 (lto_output_tree_header): Remove ix parameter, don't write it.
25926 (lto_output_builtin_tree): Likewise.
25927 (lto_write_tree): Adjust callers to above, don't track and write
25928 offset, write unsigned index.
25929 (output_unreferenced_globals): Don't emit all global vars.
25930 (write_global_references): Use unsigned indices.
25931 (lto_output_decl_state_refs): Likewise.
25932 (write_symbol): Likewise.
25933 * lto-streamer-in.c (lto_input_chain): Move earlier.
25934 (input_function): Use unsigned index.
25935 (input_alias_pairs): Don't read and then ignore all global vars.
25936 (lto_materialize_tree): Remove ix_p parameter, don't read index,
25937 don't pass it back, use lto_streamer_cache_append.
25938 (lto_register_var_decl_in_symtab): Use unsigned index.
25939 (lto_register_function_decl_in_symtab): Likewise.
25940 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
25941 index.
25942 (lto_get_builtin_tree): Don't read index, use
25943 lto_streamer_cache_append.
25944 (lto_read_tree): Adjust call to lto_materialize_tree.
25945
25946 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
25947 don't use function calls in arguments to MIN.
25948
25949 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
25950 twice.
25951
25952 * gimple.c (gimple_type_leader_entry): Mark deletable.
25953
a4649884 259542011-04-03 Alan Modra <amodra@gmail.com>
25955
25956 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
25957
9ccd0eb4 259582011-04-03 Michael Matz <matz@suse.de>
25959
25960 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
25961 an integer.
25962 * tree.h (tree_decl_non_common.vindex): Adjust comment.
25963
bb903e9c 259642011-04-03 Michael Matz <matz@suse.de>
25965
e8b2c048 25966 * cgraphbuild.c (record_reference): Canonicalize constructor values.
bb903e9c 25967 * gimple-fold.c (canonicalize_constructor_val): Accept being called
25968 without function context.
25969 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
25970 current_function_decl and cfun.
25971
e7e718d0 259722011-04-03 Michael Matz <matz@suse.de>
25973
25974 * tree.c (decl_init_priority_insert): Don't create entry for
25975 default priority.
25976 (decl_fini_priority_insert): Ditto.
25977 (fields_compatible_p, find_compatible_field): Remove.
25978 * tree.h (fields_compatible_p, find_compatible_field): Remove.
25979 * gimple.c (gimple_compare_field_offset): Adjust block comment.
25980
e73ba0a7 259812011-04-03 Eric Botcazou <ebotcazou@adacore.com>
25982
25983 * combine.c (try_combine): Remove useless local variable.
25984
e257cde2 259852011-04-03 Richard Guenther <rguenther@suse.de>
e7e718d0 25986 Ira Rosen <ira.rosen@linaro.org>
e257cde2 25987
25988 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
25989 non-variable offsets and compare the remaining bases of the two
25990 accesses instead of looking for exact same data-ref.
25991
2255eb8d 259922011-04-02 Kai Tietz <ktietz@redhat.com>
25993
6b9414b9 25994 PR target/48416
25995 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
25996
2255eb8d 25997 * i386.c (ix86_is_msabi_thiscall): New helper function.
25998 (ix86_is_type_thiscall): New helper function.
25999 (ix86_comp_type_attributes): Handle thiscall for method-functions
26000 special.
26001 (init_cumulative_args): Likewise.
26002 (find_drap_reg): Likewise.
26003 (ix86_static_chain): Likewise.
26004 (x86_this_parameter): Likewise.
26005 (x86_output_mi_thunk): Likewise.
26006
818dee1b 260072011-04-01 Olivier Hainque <hainque@adacore.com>
e7e718d0 26008 Nicolas Setton <setton@adacore.com>
26009 Eric Botcazou <ebotcazou@adacore.com>
818dee1b 26010
26011 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
26012 (add_gnat_descriptive_type_attribute): New function.
26013 (gen_array_type_die): Call it.
26014 (gen_enumeration_type_die): Likewise.
26015 (gen_struct_or_union_type_die): Likewise.
26016 (modified_type_die): Likewise.
26017 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
26018 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
26019 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
26020
b6a800c7 260212011-04-01 Jakub Jelinek <jakub@redhat.com>
26022
26023 PR bootstrap/48148
26024 * dwarf2out.c (resolve_addr): Don't call force_decl_die
26025 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
26026
26027 Revert:
26028 2011-03-17 Richard Guenther <rguenther@suse.de>
26029
26030 PR bootstrap/48148
26031 * lto-cgraph.c (input_overwrite_node): Clear the abstract
26032 origin for decls in other ltrans units.
26033 (input_varpool_node): Likewise.
26034
3a175160 260352011-04-01 Jakub Jelinek <jakub@redhat.com>
26036
26037 PR middle-end/48335
26038 * expr.c (expand_assignment): Handle all possibilities
26039 if TO_RTX is CONCAT.
e8b2c048 26040 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
3a175160 26041 (store_split_bit_field): If SUBREG_REG (op0) or
26042 op0 itself has smaller mode than word, return it
26043 for offset 0 and const0_rtx for out-of-bounds stores.
26044 If word is const0_rtx, skip it.
26045
87ad9aff 260462011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
26047
26048 * config/h8300/h8300.c (print_operand_address): Rename to...
26049 (h8300_print_operand_address): ...this. Make static. Adjust comments.
26050 Call h8300_print_operand and h8300_print_operand_address instead of
26051 print_operand and print_operand_address. Declare.
26052 (print_operand): Renake to...
26053 (h8300_print_operand): ...this. Make static. Adjust comments.
26054 Call h8300_print_operand instead of print_operand. Declare.
26055 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
26056 (h8300_register_move_cost): Likewise.
26057 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
26058 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
26059 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
26060 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
26061 * config/h8300/h8300-protos.h (print_operand): Delete.
26062 (print_operand_address): Delete.
26063
8d141c17 260642011-04-01 Richard Henderson <rth@redhat.com>
26065
26066 PR 48400
26067 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
26068 in strict mode before dwarf4. Re-order tests to early out
26069 before switching sections.
26070
424f5954 260712011-04-01 Nathan Froyd <froydnj@codesourcery.com>
26072
26073 * config/h8300/constraints.md: New file.
26074 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
26075 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
26076 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
26077 * config/h8300/predicates.md (bit_operand): Likewise.
26078 (incdec_operand): Use satisfies_constraint_M and
26079 satisfies_constraint_O. Don't use C code block.
26080 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
26081 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
26082 (compute_mov_length): Use satisfies_constraint_G.
26083 (fix_bit_operand): Use satisfies_constraint_U.
26084 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
26085 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
26086 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
26087 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
26088 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
26089 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
26090 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
26091 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
26092 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
26093 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
26094 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
26095 (EXTRA_MEMORY_CONSTRAINT): Delete.
26096
7d9e1f9b 260972011-04-01 Andrew Pinski <pinskia@gmail.com>
26098 Michael Meissner <meissner@linux.vnet.ibm.com>
26099
26100 PR target/48262
26101 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
26102 operands, as per the specifications.
26103
26104 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
26105 (vec_extract_evenv4sf): Ditto.
26106 (vec_extract_evenv8hi): Ditto.
26107 (vec_extract_evenv16qi): Ditto.
26108 (vec_extract_oddv4si): Ditto.
26109
cb18bd3c 261102011-03-31 Mark Wielaard <mjw@redhat.com>
26111
26112 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
26113 high_pc attribute if the CU has no associated code. Only output
26114 DW_AT_entry_pc for CU if not generating strict dwarf and
26115 dwarf_version < 4.
26116
0a9bd7c9 261172011-04-01 Bernd Schmidt <bernds@codesourcery.com>
26118
26119 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
26120 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
26121 out of ...
26122 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
26123 * final.c (final_start_function): Call the new function rather
26124 than using a NULL argument for dwarf2out_frame_debug.
26125
79d8d931 26126 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
26127 that contains the prologue.
26128
b49b2e5c 26129 * haifa-sched.c (queue_insn): New arg REASON. All callers
26130 changed. Print it in debugging output.
26131
f193badd 26132 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
26133
d2412f57 26134 * sched-ebb.c (begin_schedule_ready): Remove second argument.
26135 Split most of the code into...
26136 (begin_move_insn): ... here. New function.
26137 (ebb_sched_info): Add a pointer to it.
26138 * haifa-sched.c (scheduled_insns): New static variable.
26139 (sched_extend_ready_list): Allocate it.
26140 (schedule_block): Use it to record the order of scheduled insns.
26141 Perform RTL changes to move insns only after all scheduling
26142 decisions have been made.
26143 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
26144 begin_move_insn field.
26145 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
26146 * sched-int.h (struct haifa_sched_info): Remove second argument
26147 from begin_schedule_ready hook. Add new member begin_move_insn.
26148 * sched-rgn.c (begin_schedule_ready): Remove second argument.
26149 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
26150
a0fc5ef1 26151 * haifa-sched.c (prune_ready_list): New function, broken out of
26152 schedule_block.
26153 (schedule_block): Use it.
26154
2ee49f28 261552011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26156
26157 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
26158
440fcad1 261592011-04-01 Kai Tietz <ktietz@redhat.com>
26160
26161 * config.gcc (*-*-mingw*): Allow as option the
26162 posix threading model.
27e5502d 26163 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
440fcad1 26164 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
26165 definition.
26166 (CPP_SPEC): Add pthread/no-pthread handling.
26167 (LIB_SPEC): Likewise.
26168 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
26169 (LIB_SPEC): Likewise.
26170 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
26171 flag to pass -pthread option for shared libgcc build.
26172 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
26173 for shared libgcc build.
26174 * config/i386/t-mingw-pthread: New file.
26175 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
26176 New define to enable use of library pthread by default.
26177 * config/i386/mingw.opt (pthread): New driver option.
26178 (no-pthread): New driver option.
e8b2c048 26179 * config/i386/cygming.opt: Make sure trailing empty line is retained.
440fcad1 26180 * config/i386/mingw-w64.opt: Likewise.
26181
6a0cacf9 261822011-04-01 Gary Funck <gary@intrepid.com>
5568b3c6 26183
26184 * c-decl.c (grokdeclarator): Fix formatting.
26185
32f79657 261862011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
26187
26188 * expr.c (emit_block_move_via_movmem): Use n_generator_args
26189 instead of n_operands.
26190 (set_storage_via_setmem): Likewise.
26191 * optabs.c (maybe_gen_insn): Likewise.
26192 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
26193 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
26194 (mips_expand_builtin_direct): Likewise.
26195 * config/spu/spu.c (expand_builtin_args): Likewise.
26196
cf85f835 261972011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
26198
26199 * recog.h (insn_data_d): Add n_generator_args.
26200 * genoutput.c (data): Likewise.
26201 (output_insn_data): Print it.
26202 (max_opno, num_dups): Delete.
26203 (scan_operands): Just fill in "d->operand[...]".
26204 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
26205
22add764 262062011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
26207
26208 * gensupport.h (pattern_stats): New structure.
26209 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
26210 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
26211 (max_operand_1, max_operand_vec): Delete.
26212 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
26213
ede4ebcb 262142011-03-31 Nathan Froyd <froydnj@codesourcery.com>
26215
26216 * emit-rtl.c (emit_pattern_after_setloc): New function.
26217 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
26218 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
26219 (emit_pattern_after): New function.
26220 (emit_insn_after, emit_jump_insn_after): Call it.
26221 (emit_call_insn_after, emit_debug_insn_after): Likewise.
26222 (emit_pattern_before_setloc): New function.
26223 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
26224 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
26225 Likewise.
26226 (emit_pattern_before): New function.
26227 (emit_insn_before, emit_jump_insn_before): Call it.
26228 (emit_call_insn_before, emit_debug_insn_before): Likewise.
26229
1bc6c106 262302011-03-31 Richard Henderson <rth@redhat.com>
26231
26232 * dwarf2out.c (dw_separate_line_info_ref): Remove.
26233 (dw_separate_line_info_entry): Remove.
26234 (enum dw_line_info_opcode): New.
26235 (dw_line_info_entry): Use it.
26236 (dw_line_info_table, dw_line_info_table_p): New.
26237 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
26238 (line_info_table, line_info_label_num): Remove.
26239 (line_info_table_in_use): Remove.
26240 (separate_line_info_table): Remove.
26241 (separate_line_info_table_allocated): Remove.
26242 (separate_line_info_table_in_use): Remove.
26243 (LINE_INFO_TABLE_INCREMENT): Remove.
26244 (line_info_label_num): New.
26245 (cur_line_info_table): New.
26246 (text_section_line_info, cold_text_section_line_info): New.
26247 (separate_line_info): New.
26248 (SEPARATE_LINE_CODE_LABEL): Remove.
26249 (print_dwarf_line_table): Remove.
26250 (debug_dwarf): Don't dump it.
26251 (output_one_line_info_table): New.
26252 (output_line_info): Use it.
26253 (new_line_info_table): New.
26254 (set_cur_line_info_table): New.
26255 (dwarf2out_switch_text_section): Use it.
26256 (dwarf2out_begin_function): Likewise.
26257 (push_dw_line_info_entry): New.
26258 (dwarf2out_source_line): Rewrite for new line info tables.
26259 (dwarf2out_init): Remove dead initailizations.
26260
ec840af4 262612011-03-31 Joseph Myers <joseph@codesourcery.com>
26262
26263 * opts.h (cl_option): Add comments to fields. Add bit-fields for
26264 various flags.
26265 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
26266 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
26267 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
26268 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
26269 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
26270 * opt-functions.awk (flag_init, switch_bit_fields): New.
26271 (switch_flags): Don't handle flags moved to bit-fields. Don't
26272 generate CL_MISSING_OK or CL_SAVE.
26273 * optc-gen.awk: Update to generate bit-field output as well as
26274 flags field.
26275 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
26276 bit-field instead of CL_REJECT_DRIVER flag.
26277 * opts-common.c (generate_canonical_option,
26278 decode_cmdline_option): Use bit-fields instead of CL_* flags.
26279 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
26280 instead of CL_REJECT_NEGATIVE flag.
26281 * toplev.c (print_switch_values): Use cl_report bit-field instead
26282 of CL_REPORT flag.
26283
e4d0ac02 262842011-03-31 Eric Botcazou <ebotcazou@adacore.com>
26285
26286 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
26287 a zero minimum index only if it is redundant.
26288
3c5273ff 262892011-03-31 Vladimir Makarov <vmakarov@redhat.com>
26290
26291 PR rtl-optimization/48381
26292 * ira-color.c (assign_hard_reg): Use hard reg set intersection
26293 instead of ira_class_hard_reg_index for calculating conflicting
26294 hard registers.
26295
45a41a6c 262962011-03-31 Steven Bosscher <steven@gcc.gnu.org>
26297
26298 * cprop.c: Clean up hash table building.
26299 (reg_avail_info): Remove.
26300 (oprs_available_p): Remove.
26301 (record_last_reg_set_info): Remove.
26302 (record_last_set_info): Remove.
26303 (reg_available_p): New function.
26304 (gcse_constant_p): Do not treat unfolded conditions as constants.
26305 (make_set_regs_unavailable): New function.
26306 (hash_scan_set): Simplify with new reg_available_p.
26307 (compute_hash_table_work): Traverse insns stream only once.
26308 Do not compute reg_avail_info. Traverse insns in reverse order.
26309 Record implicit sets after recording explicit sets from the block.
26310
5c9d7b33 263112011-03-31 Michael Matz <matz@suse.de>
26312
e8b2c048 26313 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
5c9d7b33 26314
958f5301 263152011-03-31 Anatoly Sokolov <aesok@post.ru>
26316
26317 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
26318 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
26319 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26320 (h8300_mode_dependent_address_p): New function.
26321 (h8300_get_index): Make static.
26322
1084097d 263232011-03-31 Jeff Law <law@redhat.com>
26324
413f000a 26325 * reload1.c (elimination_effects): Fix typo in recent change.
26326
e8b2c048 26327 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
1084097d 26328 typo potentially leading to null pointer dereference.
26329
26330 * caller-save.c (new_saved_hard_reg): Eliminate return value.
26331 (setup_save_areas): Corresponding changes to avoid useless
26332 assignments.
26333
26334 * jump.c (reversed_comparison_code_parts): Avoid successive return
26335 statements when REVERSE_CONDITION is defined.
26336
26337 * expr.c (expand_assignment): Avoid useless assignments.
26338 (expand_expr_real_1): Likewise.
26339 (expand_expr_real_2): Avoid useless statements.
26340
26341 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
26342
26343 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
26344
26345 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
26346 statements.
26347
26348 * stmt.c (expand_expr_stmt): Avoid useless assignment.
26349
a19f368c 263502011-03-31 Joseph Myers <joseph@codesourcery.com>
26351
26352 PR target/47109
26353 * doc/tm.texi.in (TARGET_VERSION): Remove.
26354 * doc/tm.texi: Regenerate.
26355 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
26356 * collect2.c (main): Don't use TARGET_VERSION.
26357 * mips-tdump.c (main): Don't use TARGET_VERSION.
26358 * mips-tfile.c (main): Don't use TARGET_VERSION.
e8b2c048 26359 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
a19f368c 26360 * config/rs6000/vxworksae.h: Remove.
26361 * config/alpha/alpha.h (TARGET_VERSION): Remove.
26362 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
26363 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
26364 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
26365 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
26366 * config/arm/arm.h (TARGET_VERSION): Remove.
26367 * config/arm/coff.h (TARGET_VERSION): Remove.
26368 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
26369 * config/arm/elf.h (TARGET_VERSION): Remove.
26370 * config/arm/freebsd.h (TARGET_VERSION): Remove.
26371 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
26372 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
26373 * config/arm/pe.h (TARGET_VERSION): Remove.
26374 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
26375 * config/arm/semi.h (TARGET_VERSION): Remove.
26376 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
26377 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
26378 * config/arm/vxworks.h (TARGET_VERSION): Remove.
26379 * config/avr/avr.h (TARGET_VERSION): Remove.
26380 * config/bfin/bfin.h (TARGET_VERSION): Remove.
26381 * config/fr30/fr30.h (TARGET_VERSION): Remove.
26382 * config/frv/frv.h (TARGET_VERSION): Remove.
26383 * config/h8300/h8300.h (TARGET_VERSION): Remove.
26384 * config/i386/cygwin.h (TARGET_VERSION): Remove.
26385 * config/i386/darwin.h (TARGET_VERSION): Remove.
26386 * config/i386/darwin64.h (TARGET_VERSION): Remove.
26387 * config/i386/djgpp.h (TARGET_VERSION): Remove.
26388 * config/i386/freebsd.h (TARGET_VERSION): Remove.
26389 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
26390 * config/i386/gnu.h (TARGET_VERSION): Remove.
26391 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
26392 * config/i386/i386elf.h (TARGET_VERSION): Remove.
26393 * config/i386/linux.h (TARGET_VERSION): Remove.
26394 * config/i386/linux64.h (TARGET_VERSION): Remove.
26395 * config/i386/lynx.h (TARGET_VERSION): Remove.
26396 * config/i386/mingw32.h (TARGET_VERSION): Remove.
26397 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
26398 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
26399 * config/i386/netware.h (TARGET_VERSION): Remove.
26400 * config/i386/nto.h (TARGET_VERSION): Remove.
26401 * config/i386/openbsd.h (TARGET_VERSION): Remove.
26402 * config/i386/vxworks.h (TARGET_VERSION): Remove.
26403 * config/ia64/elf.h (TARGET_VERSION): Remove.
26404 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
26405 * config/ia64/hpux.h (TARGET_VERSION): Remove.
26406 * config/ia64/linux.h (TARGET_VERSION): Remove.
26407 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
26408 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
26409 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
26410 * config/lm32/lm32.h (TARGET_VERSION): Remove.
26411 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
26412 * config/m32c/m32c.h (TARGET_VERSION): Remove.
26413 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
26414 * config/m32r/m32r.h (TARGET_VERSION): Remove.
26415 * config/m68k/linux.h (TARGET_VERSION): Remove.
26416 * config/m68k/m68k.h (TARGET_VERSION): Remove.
26417 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
26418 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
26419 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
26420 * config/mep/mep.h (TARGET_VERSION): Remove.
26421 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
26422 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
26423 * config/mips/iris6.h (MACHINE_TYPE): Remove.
26424 * config/mips/linux.h (TARGET_VERSION): Remove.
26425 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
26426 * config/mips/vxworks.h (TARGET_VERSION): Remove.
26427 * config/mmix/mmix.h (TARGET_VERSION): Remove.
26428 * config/mn10300/linux.h (TARGET_VERSION): Remove.
26429 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
26430 * config/pa/pa.h (TARGET_VERSION): Remove.
26431 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
26432 * config/picochip/picochip.h (TARGET_VERSION): Remove.
26433 * config/rs6000/aix.h (TARGET_VERSION): Remove.
26434 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
26435 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
26436 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
26437 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
26438 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
26439 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
26440 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
26441 * config/rs6000/linux.h (TARGET_VERSION): Remove.
26442 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
26443 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
26444 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
26445 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
26446 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
26447 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
26448 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
26449 * config/s390/linux.h (TARGET_VERSION): Remove.
26450 * config/s390/s390.h (TARGET_VERSION): Remove.
26451 * config/s390/tpf.h (TARGET_VERSION): Remove.
26452 * config/score/score.h (TARGET_VERSION): Remove.
26453 * config/sh/linux.h (TARGET_VERSION): Remove.
26454 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
26455 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
26456 * config/sh/sh.h (TARGET_VERSION): Remove.
26457 * config/sh/sh64.h (TARGET_VERSION): Remove.
26458 * config/sh/superh.h (TARGET_VERSION): Remove.
26459 * config/sh/vxworks.h (TARGET_VERSION): Remove.
26460 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
26461 * config/sparc/linux.h (TARGET_VERSION): Remove.
26462 * config/sparc/linux64.h (TARGET_VERSION): Remove.
26463 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
26464 TARGET_NAME32, TARGET_NAME): Remove.
26465 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
26466 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
26467 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
26468 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
26469 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
26470 * config/spu/spu.h (TARGET_VERSION): Remove.
26471 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
26472 * config/v850/v850.h (TARGET_VERSION): Remove.
26473 * config/vax/linux.h (TARGET_VERSION): Remove.
26474 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
26475 * config/xtensa/elf.h (TARGET_VERSION): Remove.
26476 * config/xtensa/linux.h (TARGET_VERSION): Remove.
26477
d34dbd5a 264782011-03-31 Eric Botcazou <ebotcazou@adacore.com>
26479
26480 PR target/48142
26481 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
26482 frame-related from frame-unrelated adjustments to the stack pointer.
26483
240a87ff 264842011-03-31 Jakub Jelinek <jakub@redhat.com>
26485
26486 * common.opt (fdebug-types-section): Move earlier.
26487 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
26488
6e715a90 264892011-03-31 Andreas Tobler <andreast@fgznet.ch>
26490
26491 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
26492 var.
26493
edb0f60d 264942011-03-30 Nathan Froyd <froydnj@codesourcery.com>
26495
26496 * tree.h (CASE_CHAIN): Define.
26497 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
26498 (gimple_redirect_edge_and_branch): Likewise.
26499
13cf233a 265002011-03-30 Vladimir Makarov <vmakarov@redhat.com>
26501
26502 PR middle-end/48367
26503 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
26504 calculation.
26505
d3ea8518 265062011-03-30 Jeff Law <law@redhat.com>
26507
41a11049 26508 * PR bootstrap/48371
d3ea8518 26509 * reload1.c (reload): Fix botch in last change.
26510
26511 * reload.h (struct reload): Fix typo introduced in last change.
26512
0670b683 265132011-03-30 Joseph Myers <joseph@codesourcery.com>
26514
26515 * config/arm/arm.opt (mhard-float, msoft-float): Mark
26516 Undocumented. Remove help text.
26517 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
26518 -mhard-float.
26519
4e775b8e 265202011-03-30 Joseph Myers <joseph@codesourcery.com>
26521
26522 * doc/options.texi (NegativeAlias): Document.
26523 (Alias): Mention NegativeAlias.
26524 * opt-functions.awk: Handle NegativeAlias.
e8b2c048 26525 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
4e775b8e 26526 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
26527 * opts.h (CL_NEGATIVE_ALIAS): Define.
26528 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
26529 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
26530 OPT_mspe_.
26531 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
26532 Alias entries.
26533 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
26534 mno-spe and mno-isel instead of mspe=no and -misel=no.
26535
f6a02c02 265362011-03-29 Mark Wielaard <mjw@redhat.com>
26537
26538 * common.opt (fdebug-types-section): New flag.
26539 * doc/invoke.texi: Document new -fno-debug-types-section flag.
26540 * dwarf2out.c (use_debug_types): New define.
26541 (struct die_struct): Mark die_id with GTY desc use_debug_types.
26542 (print_die): Guard output of type unit signatures using
26543 use_debug_types.
26544 (build_abbrev_table): Replace assert of dwarf_version >= 4
26545 with assert on use_debug_types.
26546 (size_of_die): Likewise.
26547 (unmark_dies): Likewise.
26548 (value_format): Decide AT_ref_external form on use_debug_types.
26549 (output_die): Replace dwarf_version version check guard with
26550 use_debug_types where appropriate.
26551 (modified_type_die): Likewise.
26552 (gen_reference_type_die): Likewise.
26553 (dwarf2out_start_source_file): Likewise.
26554 (dwarf2out_end_source_file): Likewise.
26555 (prune_unused_types_walk_attribs): Likewise.
26556 (dwarf2out_finish): Likewise.
26557
04fd8b89 265582011-03-30 Vladimir Makarov <vmakarov@redhat.com>
26559
26560 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
26561
8b794819 265622011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
26563
26564 PR rtl-optimization/48332
26565 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
26566 mode of input operand N and modeN to its actual mode.
26567
1c654ff1 265682011-03-30 Jeff Law <law@redhat.com>
26569
26570 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
26571 define accessor macro.
26572 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
26573 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
26574 (reg_equiv_init): Likewise.
26575 (reg_equivs_size): New variable.
26576 (reg_equiv_init_size): Remove.
26577 (allocate_initial_values): Move prototype to here from....
26578 * integrate.h (allocate_initial_values): Remove prototype.
26579 * integrate.c: Include reload.h.
26580 (allocate_initial_values): Corresponding changes.
26581 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
26582 (fix_reg_equiv_init, no_equiv): Corresponding changes.
26583 (update_equiv_regs): Corresponding changes.
26584 (ira): Corresponding changes.
26585 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
26586 (push_secondary_reload): Corresponding changes.
26587 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
26588 (make_memloc, find_reloads_address): Corresponding changes.
26589 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
26590 (find_reloads_address_1): Corresponding changes.
26591 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
26592 (refers_to_regno_for_reload_p): Corresponding changes.
26593 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
26594 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
26595 * reload1.c: Include ggc.h.
26596 (grow_reg_equivs): New function.
26597 (replace_pseudos_in, reload): Corresponding changes.
26598 (calculate_needs_all_insns, alter_regs): Corresponding changes.
26599 (eliminate_regs_1, elimination_effects): Corresponding changes.
26600 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
26601 (delete_output_reload): Likewise.
26602 * caller-save.c (mark_referenced_regs): Corresponding changes.
26603 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
26604 * frv/predicates.md (frv_load_operand): Corresponding changes.
26605 * microblaze/microblaze.c (double_memory_operand): Corresponding
26606 changes.
26607 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
26608 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e8b2c048 26609 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
1c654ff1 26610 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
26611 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
26612 changes.
26613 * pa/pa.c (emit_move_sequence): Corresponding changes.
26614 * vax/vax.c (nonindexed_address_p): Corresponding changes.
26615
a6c8b951 266162011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
26617
26618 PR target/47551
26619 * config/arm/arm.c (coproc_secondary_reload_class): Handle
26620 structure modes. Don't check neon_vector_mem_operand for
26621 vector or structure modes.
26622
92d6c32b 266232011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
26624 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
26625
26626 PR target/43590
26627 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
26628 operand 1 and reshuffle the operands to match.
26629 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
26630
22db0e0c 266312011-03-30 Christian Schüler <cschueler@gmx.de>
26632
16973751 26633 PR driver/48208
22db0e0c 26634 * config/c.opt (F): Added 'Driver' to -F option.
e8b2c048 26635
16973751 26636 PR driver/48260
22db0e0c 26637 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
26638 handler function.
26639 * config/darwin.opt: Added '-arch' option.
26640
776f1390 266412011-03-30 Nick Clifton <nickc@redhat.com>
26642
26643 * config/rx/rx.md: Add peepholes and patterns to combine
26644 extending loads and simple arithmetic instructions.
26645 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e8b2c048 26646 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
26647 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
776f1390 26648 modes to use pre-decrement and post-increment addressing.
e8b2c048 26649 (rx_is_restricted_memory_address): Add range checking of REG+INT
776f1390 26650 addresses.
e8b2c048 26651 (rx_print_operand): Add support for %Q. Fix handling of %Q.
26652 (rx_memory_move_cost): Adjust cost of stores.
26653 (rx_adjust_insn_length): New function.
776f1390 26654
51f5794e 266552011-03-30 Jakub Jelinek <jakub@redhat.com>
26656
26657 PR c/48305
26658 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
26659 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
26660 matching arg00/arg01 types.
26661
1513fa88 266622011-03-30 Eric Botcazou <ebotcazou@adacore.com>
26663
26664 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
26665 last_location to UNKNOWN_LOCATION.
26666
29111057 266672011-03-30 H.J. Lu <hongjiu.lu@intel.com>
26668
26669 PR target/48349
26670 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
26671 FLOAT_SSE_REGS.
26672
477d403f 266732011-03-30 Joseph Myers <joseph@codesourcery.com>
26674 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26675
26676 PR bootstrap/48337
26677 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
26678 Init(PROCESSOR_V7).
26679 (sparc_cpu): Likewise.
26680 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
26681 PROCESSOR_V7.
26682
c7b32822 266832011-03-29 Vladimir Makarov <vmakarov@redhat.com>
26684
26685 PR target/48336
26686 PR middle-end/48342
26687 PR rtl-optimization/48345
26688 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
26689 hard regs for given mode from profitable regs when doing secondary
26690 allocation.
26691
255a8494 266922011-03-29 Jeff Law <law@redhat.com>
26693
26694 PR bootstrap/48327
26695 * tree-ssa-threadupdate.c (struct redirection_data): Remove
26696 do_not_duplicate field.
26697 (lookup_redirection_data): Corresponding changes.
26698 (create_duplicates): Always create a template block.
26699 (redirect_edges): Remove code which reused the original block
26700 when it was going to become unreachable code.
26701 (thread_block): Don't set do_not_duplicate field.
26702
607eb2c8 267032011-03-29 Joseph Myers <joseph@codesourcery.com>
26704
26705 * lto-opts.c (register_user_option_p, lto_register_user_option):
26706 Make type argument unsigned.
26707 * lto-streamer.h (lto_register_user_option): Make type argument
26708 unsigned.
26709 * opth-gen.awk: Make CL_* macros unsigned.
26710 * opts-common.c (find_opt): Make lang_mask argument unsigned.
26711 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
26712 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
26713 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
26714 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
26715 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
26716 (find_opt): Make lang_mask argument unsigned.
26717
f6c60bdb 267182011-03-29 Vladimir Makarov <vmakarov@redhat.com>
26719
26720 PR rtl-optimization/48331
26721 PR rtl-optimization/48334
26722 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
26723 for any used algorithm.
26724
71a39acf 267252011-03-29 Vladimir Makarov <vmakarov@redhat.com>
26726
26727 * ira-conflicts.c (build_object_conflicts): Add unused attribute
26728 to parent_max.
26729
656e2b9d 267302011-03-29 Uros Bizjak <ubizjak@gmail.com>
26731
26732 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
26733 (alpha_option_override): Don't set alpha_sr_alias_set.
26734 (emit_frame_store_1): Use gen_frame_mem rather than calling
26735 set_mem_alias_set.
26736 (alpha_expand_epilogue): Ditto.
26737
8bdf488e 267382011-03-29 Ira Rosen <ira.rosen@linaro.org>
26739
26740 PR tree-optimization/48290
26741 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
26742 vectorization, check that relevant phis in the basic block after
26743 the inner loop are really inner loop's exit phis.
26744
4031f63d 267452011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
26746
49bc82f1 26747 PR debug/48190
4031f63d 26748 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
26749 (cached_dw_loc_list_def): New structure.
26750 (cached_dw_loc_list): New typedef.
26751 (cached_dw_loc_list_table): New variable.
26752 (cached_dw_loc_list_table_hash): New function.
26753 (cached_dw_loc_list_table_eq): Likewise.
26754 (add_location_or_const_value_attribute): Take a bool cache_p.
26755 Cache the list when the parameter is true.
26756 (gen_formal_parameter_die): Update caller.
26757 (gen_variable_die): Likewise.
26758 (dwarf2out_finish): Likewise.
26759 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
26760 while generating debug info for the decl.
26761 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
26762 (dwarf2out_init): Initialize cached_dw_loc_list_table.
26763 (resolve_addr): Cache the result of resolving a chain of
26764 location lists.
26765
66d9a7b9 267662011-03-28 Vladimir Makarov <vmakarov@redhat.com>
26767
26768 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
26769 conflict object hard regset nodes have intersecting hard reg sets.
656e2b9d 26770
66d9a7b9 26771 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
26772 after regstat_init_n_sets_and_refs.
26773
26774 * ira.c: Add more comments at the top.
26775 (setup_stack_reg_pressure_class, setup_pressure_classes):
26776 Add comments how we compute the register pressure classes.
26777 (setup_allocno_and_important_classes): Add more comments.
26778 (setup_class_translate_array, reorder_important_classes)
26779 (setup_reg_class_relations): Add comments.
26780
26781 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
26782 start of the file.
26783
26784 * ira-color.c: Add 2011 to the Copyright line.
26785 (assign_hard_reg): Add more comments.
26786 (improve_allocation): Ditto.
26787
26788 * ira-costs.c: Add 2011 to the Copyright line.
26789 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
26790 comments.
26791 (setup_regno_cost_classes_by_mode): Ditto.
26792
26793 Initial patches from ira-improv branch:
26794
26795 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
26796
dcab66ec 26797 * ira-build.c (ira_create_object): Remove initialization of
66d9a7b9 26798 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
26799 (ira_create_allocno): Remove initialization of
26800 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
26801 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
26802 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
26803 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
26804 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
26805 Initialize ALLOCNO_ADD_DATA.
26806 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
26807 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
26808 ALLOCNO_REG.
26809 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
26810 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
26811
26812 * ira.c (ira_reallocate): Remove.
26813 (setup_pressure_classes): Call
26814 ira_init_register_move_cost_if_necessary. Use
26815 ira_register_move_cost instead of ira_get_register_move_cost.
26816 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
26817 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
26818
26819 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
26820 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
26821 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
26822 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
26823 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
26824 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
26825 Fix formatting.
656e2b9d 26826 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
66d9a7b9 26827 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
26828 (struct allocno_color_data): New.
26829 (allocno_color_data_t): New typedef.
26830 (allocno_color_data): New definition.
26831 (ALLOCNO_COLOR_DATA): New macro.
26832 (struct object_color_data): New.
26833 (object_color_data_t): New typedef.
26834 (object_color_data): New definition.
26835 (OBJECT_COLOR_DATA): New macro.
26836 (update_copy_costs, calculate_allocno_spill_cost): Call
26837 ira_init_register_move_cost_if_necessary. Use
26838 ira_register_move_cost instead of ira_get_register_move_cost.
26839 (move_spill_restore, update_curr_costs): Ditto.
26840 (allocno_spill_priority): Make it inline.
656e2b9d 26841 (color_pass): Allocate and free allocno_color_dat and object_color_data.
66d9a7b9 26842 (struct coalesce_data, coalesce_data_t): New.
26843 (allocno_coalesce_data): New definition.
26844 (ALLOCNO_COALESCE_DATA): New macro.
26845 (merge_allocnos, coalesced_allocno_conflict_p): Use
26846 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
26847 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
26848 (coalesce_allocnos): Ditto.
26849 (setup_coalesced_allocno_costs_and_nums): Ditto.
26850 (collect_spilled_coalesced_allocnos): Ditto.
26851 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
26852 (setup_slot_coalesced_allocno_live_ranges): Ditto.
26853 (coalesce_spill_slots): Ditto.
26854 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
26855 free allocno_coalesce_data.
26856
26857 * ira-conflicts.c: Fix formatting.
26858 (process_regs_for_copy): Call
26859 ira_init_register_move_cost_if_necessary. Use
26860 ira_register_move_cost instead of ira_get_register_move_cost.
26861 (build_object_conflicts): Optimize.
26862
26863 * ira-costs.c (record_reg_classes): Optimize. Call
26864 ira_init_register_move_cost_if_necessary. Use
26865 ira_register_move_cost, ira_may_move_in_cost, and
26866 ira_may_move_out_cost instead of ira_get_register_move_cost and
26867 ira_get_may_move_cost.
26868 (record_address_regs): Ditto.
26869 (scan_one_insn): Optimize.
26870 (find_costs_and_classes): Optimize.
26871 (process_bb_node_for_hard_reg_moves): Call
26872 ira_init_register_move_cost_if_necessary. Use
26873 ira_register_move_cost instead of ira_get_register_move_cost.
26874
26875 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
26876 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
26877 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
26878 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
26879 definitions.
26880 (ira_initiate_emit_data, ira_finish_emit_data)
26881 (create_new_allocno): New functions.
656e2b9d 26882 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
66d9a7b9 26883 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
26884 Use ira_register_move_cost instead of ira_get_register_move_cost.
26885
26886 * ira-int.h: Fix some comments.
656e2b9d 26887 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
26888 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
66d9a7b9 26889 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
26890 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
26891 add_data.
26892 (struct ira_allocno): Make mode and aclass a bitfield. Move other
26893 bitfield after mode. Make hard_regno a short int. Make
26894 hard_regno short. Remove first_coalesced_allocno and
26895 next_coalesced_allocno. Move mem_optimized_dest_p,
26896 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
26897 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
26898 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
26899 temp, colorable_p. Add new member add_data.
26900 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
26901 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
26902 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
26903 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
26904 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
26905 (ALLOCNO_ADD_DATA): New macro.
26906 (ira_emit_data_t): New typedef.
26907 (struct ira_emit_data): New. Move mem_optimized_dest_p,
26908 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
26909 from struct ira_allocno.
26910 (ALLOCNO_EMIT_DATA): New macro.
26911 (ira_allocno_emit_data, allocno_emit_reg): New.
26912 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
656e2b9d 26913 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
66d9a7b9 26914 (OBJECT_ADD_DATA): New macro.
26915 (ira_reallocate): Remove.
26916 (ira_initiate_emit_data, ira_finish_emit_data): New.
26917 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
26918 (ira_init_register_move_cost_if_necessary): New.
26919 (ira_object_conflict_iter_next): Merge into
26920 ira_object_conflict_iter_cond.
656e2b9d 26921 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
66d9a7b9 26922
dcab66ec 26923 * ira-live.c (process_single_reg_class_operands): Call
66d9a7b9 26924 ira_init_register_move_cost_if_necessary. Use
26925 ira_register_move_cost instead of ira_get_register_move_cost.
26926
26927 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
26928
26929 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
26930
26931 * ira-costs.c: Fix formatting.
26932 (cost_classes, cost_classes_num): Remove.
26933 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
26934 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
26935 (cost_classes_del, cost_classes_htab): New.
26936 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
26937 (initiate_regno_cost_classes, setup_cost_classes): New.
26938 (setup_regno_cost_classes_by_aclass): New.
656e2b9d 26939 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
66d9a7b9 26940 (record_reg_classes): Use regno_cost_classes instead of
26941 cost_classes. Move checking opposite operand up.
26942 (record_address_regs): Use regno_cost_classes
26943 instead of cost_classes.
26944 (scan_one_insn): Ditto. Use always general register.
26945 (print_allocno_costs): Use regno_cost_classes instead of
26946 cost_classes.
26947 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
26948 (find_costs_and_classes): Set up cost classes for each registers.
26949 Use also their mode for this. Use regno_cost_classes instead of
26950 cost_classes.
26951 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
26952 cost_classes.
26953 (free_ira_costs, ira_init_costs): Don't use cost_classes.
26954 (ira_costs, ira_set_pseudo_classes): Call
26955 initiate_regno_cost_classes and finish_regno_cost_classes.
26956
26957 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
26958
26959 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
26960
26961 * target.def (ira_cover_classes): Remove.
26962
656e2b9d 26963 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
66d9a7b9 26964
26965 * doc/tm.texi.in: Ditto.
26966
26967 * ira-conflicts.c: Remove mentioning cover classes from the file.
26968 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
656e2b9d 26969 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
66d9a7b9 26970
26971 * targhooks.c (default_ira_cover_classes): Remove.
26972
26973 * targhooks.h (default_ira_cover_classes): Ditto.
26974
26975 * haifa-sched.c: Remove mentioning cover classes from the file.
26976 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
26977 ira_pressure_classes and ira_pressure_classes_num instead of
26978 ira_reg_class_cover_size and ira_reg_class_cover. Use
26979 sched_regno_pressure_class instead of sched_regno_cover_class.
26980 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
26981 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
26982
26983 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
26984 classes from the file.
26985 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
26986 (struct object_hard_regs, struct object_hard_regs_node): New.
26987 (struct ira_object): New members profitable_hard_regs,
26988 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
26989 (struct ira_allocno): Rename cover_class to aclass. Rename
26990 cover_class_cost and updated_cover_class_cost to class_cost and
26991 updated_class_cost. Remove splay_removed_p and
26992 left_conflict_size. Add new members colorable_p.
26993 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
26994 (ALLOCNO_COLORABLE_P): New macro.
26995 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
26996 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
26997 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
26998 (OBJECT_...): Rename parameter C to O.
26999 (OBJECT_PROFITABLE_HARD_REGS): New macro.
27000 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
27001 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
27002 (struct target_ira_int): New members x_ira_max_memory_move_cost,
27003 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
27004 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
27005 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
27006 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
27007 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
27008 x_ira_reg_class_subunion.
27009 (ira_max_memory_move_cost, ira_max_register_move_cost)
27010 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
27011 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
27012 (ira_important_class_nums, ira_reg_class_superunion): New macros.
656e2b9d 27013 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
66d9a7b9 27014 (ira_reg_class_union): Rename to ira_reg_class_subunion.
27015 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
27016 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
27017 (ira_tune_allocno_costs_and_cover_classes): Rename to
27018 ira_tune_allocno_costs.
27019 (ira_debug_hard_regs_forest): New.
27020 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
27021 (ira_object_conflict_iter_next): Fix comments.
656e2b9d 27022 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
66d9a7b9 27023 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
27024 cover_class to aclass.
27025 (ira_allocate_and_accumulate_costs): Ditto.
27026 (ira_allocate_and_set_or_copy_costs): Ditto.
27027
27028 * opts.c (decode_options): Remove ira_cover_class check.
27029
27030 * ira-color.c: Remove mentioning cover classes from the file. Use
27031 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
27032 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
27033 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
27034 (splay-tree.h): Remove include.
27035 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
27036 before copy_freq_compare_func.
27037 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
27038 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
27039 New definitions.
27040 (hard_regs_roots, hard_regs_node_vec): Ditto.
27041 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
27042 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
27043 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
27044 (create_new_object_hard_regs_node): Ditto.
27045 (add_new_object_hard_regs_node_to_forest): Ditto.
656e2b9d 27046 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
66d9a7b9 27047 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
27048 Ditto.
27049 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
27050 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
27051 (remove_unused_object_hard_regs_nodes): Ditto.
27052 (enumerate_object_hard_regs_nodes): Ditto.
27053 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
27054 (object_hard_regs_subnode_t): Ditto.
27055 (struct object_hard_regs_subnode): Ditto.
27056 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
27057 (setup_object_hard_regs_subnode_index): Ditto.
27058 (get_object_hard_regs_subnodes_num): Ditto.
27059 (form_object_hard_regs_nodes_forest): Ditto.
27060 (finish_object_hard_regs_nodes_tree): Ditto.
27061 (finish_object_hard_regs_nodes_forest): Ditto.
27062 (allocnos_have_intersected_live_ranges_p): Rename to
656e2b9d 27063 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
66d9a7b9 27064 (pseudos_have_intersected_live_ranges_p): Rename to
27065 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
27066 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
27067 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
27068 (update_copy_costs): Remove assert. Skip cost update if the hard
27069 reg does not belong the class.
27070 (assign_hard_reg): Process only profitable hard regs.
27071 (uncolorable_allocnos_num): Make it scalar.
27072 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
27073 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
27074 and ira_reg_class_max_nregs.
27075 (bucket_allocno_compare_func): Check frequency first.
27076 (sort_bucket): Add compare function as a parameter.
27077 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
27078 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
27079 (push_allocno_to_stack): Rewrite for checking new allocno
27080 colorability.
656e2b9d 27081 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
66d9a7b9 27082 (push_only_colorable): Pass new parameter to sort_bucket.
27083 (push_allocno_to_spill): Remove.
27084 (allocno_spill_priority_compare): Make it inline and rewrite.
27085 (splay_tree_allocate, splay_tree_free): Remove.
27086 (allocno_spill_sort_compare): New function.
27087 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
27088 build and use splay tree. Choose first allocno in uncolorable
27089 allocno bucket to spill. Remove setting spill cost.
27090 (all_conflicting_hard_regs): Remove.
27091 (setup_allocno_available_regs_num): Check only profitable hard
27092 regs. Print info about hard regs nodes.
27093 (setup_allocno_left_conflicts_size): Remove.
27094 (put_allocno_into_bucket): Don't call
656e2b9d 27095 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
66d9a7b9 27096 (improve_allocation): New.
27097 (color_allocnos): Call setup_profitable_hard_regs,
27098 form_object_hard_regs_nodes_forest, improve_allocation,
27099 finish_object_hard_regs_nodes_forest. Setup spill cost.
27100 (print_loop_title): Use pressure classes.
27101 (color_allocnso): Ditto.
27102 (do_coloring): Remove allocation and freeing splay_tree_node_pool
27103 and allocnos_for_spilling.
27104 (ira_sort_regnos_for_alter_reg): Don't setup members
27105 {first,next}_coalesced_allocno.
27106 (color): Remove allocating and freeing removed_splay_allocno_vec.
27107 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
27108 prohibited_class_mode_regs.
27109
27110 * ira-lives.c: Remove mentioning cover classes from the file. Fix
27111 formatting.
27112 (update_allocno_pressure_excess_length): Use pressure classes.
27113 (inc_register_pressure, dec_register_pressure): Check for pressure
27114 class.
27115 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
27116 pressure class. Use ira_reg_class_nregs instead of
27117 ira_reg_class_max_nregs.
27118 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
27119 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
27120 (single_reg_class): Use ira_reg_class_nregs instead of
27121 ira_reg_class_max_nregs.
27122 (process_bb_node_lives): Use pressure classes.
27123
27124 * ira-emit.c: Remove mentioning cover classes from the file. Use
27125 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
27126 (change_loop): Use pressure classes.
27127 (modify_move_list): Call ira_set_allocno_class instead of
27128 ira_set_allocno_cover_class.
27129
27130 * ira-build.c: Remove mentioning cover classes from the file. Use
27131 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
27132 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
27133 ALLOCNO_UPDATED_CLASS_COST instead of
27134 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
27135 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
27136 (ira_create_allocno): Remove initialization of
27137 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
27138 ALLOCNO_COLORABLE_P.
27139 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
27140 Update conflict regs for the objects.
27141 (create_cap_allocno): Remove assert. Don't propagate
27142 ALLOCNO_AVAILABLE_REGS_NUM.
27143 (ira_free_allocno_costs): New function.
27144 (finish_allocno): Change a part of code into call of
27145 ira_free_allocno_costs.
27146 (low_pressure_loop_node_p): Use pressure classes.
27147 (object_range_compare_func): Don't compare classes.
27148 (setup_min_max_conflict_allocno_ids): Ditto.
27149
27150 * loop-invariant.c: Remove mentioning cover classes from the file.
27151 Use ira_pressure_classes and ira_pressure_classes_num instead of
27152 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
656e2b9d 27153 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
27154 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
27155 Use reg_allocno_class instead of reg_cover_class.
66d9a7b9 27156 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
27157 STACK_REG_COVER_CLASS.
27158 (get_regno_cover_class): Rename to get_regno_pressure_class.
27159 (move_loop_invariants): Initialize and finalize regstat.
27160
27161 * ira.c: Remove mentioning cover classes from the file. Add
27162 comments about coloring without cover classes. Use ALLOCNO_CLASS
27163 instead of ALLOCNO_COVER_CLASS. Fix formatting.
27164 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
27165 setup_class_subset_and_memory_move_costs.
27166 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
27167 (setup_cover_and_important_classes): Rename to
27168 setup_allocno_and_important_classes.
27169 (setup_class_translate_array): New.
27170 (setup_class_translate): Call it for allocno and pressure classes.
27171 (cover_class_order): Rename to allocno_class_order.
27172 (comp_reg_classes_func): Use ira_allocno_class_translate instead
27173 of ira_class_translate.
27174 (reorder_important_classes): Set up ira_important_class_nums.
27175 (setup_reg_class_relations): Set up ira_reg_class_superunion.
27176 (print_class_cover): Rename to print_classes. Add parameter.
27177 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
27178 Print pressure classes too.
27179 (find_reg_class_closure): Rename to find_reg_classes. Don't call
27180 setup_reg_subclasses.
656e2b9d 27181 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
66d9a7b9 27182 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
27183 (setup_prohibited_class_mode_regs): Use
656e2b9d 27184 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
66d9a7b9 27185 (clarify_prohibited_class_mode_regs): New function.
27186 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
27187 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
27188 (ira_init_once): Initialize them.
27189 (free_register_move_costs): Process them.
27190 (ira_init): Move calls of find_reg_classes and
27191 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
27192 Call clarify_prohibited_class_mode_regs.
27193 (ira_no_alloc_reg): Remove.
27194 (too_high_register_pressure_p): Use pressure classes.
27195
27196 * sched-deps.c: Remove mentioning cover classes from the file.
27197 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
27198 ira_pressure_classes and ira_pressure_classes_num instead of
27199 ira_reg_class_cover_size and ira_reg_class_cover.
27200 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
27201 sched_regno_pressure_class instead of sched_regno_cover_class.
27202 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
27203 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
27204
27205 * ira.h: Add 2010 to Copyright.
27206 (ira_no_alloc_reg): Remove external.
27207 (struct target_ira): Rename x_ira_hard_regno_cover_class,
27208 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
27209 x_ira_class_translate to x_ira_hard_regno_allocno_class,
27210 x_ira_allocno_classes_num, x_ira_allocno_classes, and
27211 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
27212 x_ira_pressure_classes, x_ira_pressure_class_translate, and
27213 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
27214 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
27215 x_ira_no_alloc_regs.
656e2b9d 27216 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
66d9a7b9 27217 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
27218 ira_allocno_classes_num and ira_allocno_classes.
27219 (ira_class_translate): Rename to ira_allocno_class_translate.
27220 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
27221 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
27222 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
27223 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
27224 (ira_no_alloc_regs): New.
27225
27226 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
27227 classes from the file. Use ALLOCNO_CLASS instead of
27228 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
27229 ALLOCNO_COVER_CLASS_COST.
27230 (regno_cover_class): Rename to regno_aclass.
27231 (record_reg_classes): Use ira_reg_class_subunion instead of
27232 ira_reg_class_union.
27233 (record_address_regs): Check overflow.
27234 (scan_one_insn): Ditto.
656e2b9d 27235 (print_allocno_costs): Print total mem cost fore regional allocation.
66d9a7b9 27236 (print_pseudo_costs): Use REG_N_REFS.
27237 (find_costs_and_classes): Use classes intersected with them on the
27238 1st pass. Check overflow. Use ira_reg_class_subunion instead of
27239 ira_reg_class_union. Use ira_allocno_class_translate and
27240 regno_aclass instead of ira_class_translate and regno_cover_class.
27241 Modify code for finding regno_aclass. Setup preferred classes for
27242 the next pass.
27243 (setup_allocno_cover_class_and_costs): Rename to
27244 setup_allocno_class_and_costs. Use regno_aclass instead of
27245 regno_cover_class. Use ira_set_allocno_class instead of
27246 ira_set_allocno_cover_class.
27247 (init_costs, finish_costs): Use regno_aclass instead of
27248 regno_cover_class.
27249 (ira_costs): Use setup_allocno_class_and_costs instead of
27250 setup_allocno_cover_class_and_costs.
27251 (ira_tune_allocno_costs_and_cover_classes): Rename to
27252 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
27253 by processing objects. Use ira_reg_class_max_nregs instead of
27254 ira_reg_class_nregs.
27255
27256 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
27257
27258 * sched-int.h: Remove mentioning cover classes from the file.
27259 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
27260
27261 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
27262 classes from the file.
27263 (struct reg_pref): Rename coverclass into allocnoclass.
27264 (reg_cover_class): Rename to reg_allocno_class.
27265
656e2b9d 27266 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
66d9a7b9 27267
27268 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
27269
27270 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
27271
27272 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
27273
27274 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
27275
27276 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
27277
27278 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
27279
27280 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
27281
27282 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
27283
27284 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
27285
27286 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
27287 (i386_ira_cover_classes): Ditto.
27288
27289 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
27290
27291 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
27292
27293 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
27294
27295 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
27296
27297 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
27298
27299 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
27300
27301 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
27302 (mips_ira_cover_classes): Ditto.
27303
27304 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
27305
27306 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
27307
27308 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
27309
27310 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
27311
27312 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
27313
27314 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
27315 (IRA_COVER_CLASSES_VSX): Ditto.
27316
27317 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
27318 (rs6000_ira_cover_classes): Ditto.
27319
27320 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
27321
27322 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
27323
27324 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
27325
27326 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
27327
27328 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
27329
27330 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
27331
27332 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
27333
27334 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
27335
27336 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
27337
27338 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
27339
06eb3ccd 273402011-03-29 Jakub Jelinek <jakub@redhat.com>
27341
c6dedfd4 27342 PR debug/48253
27343 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
27344 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
27345 dw_fde_unlikely_section_end_label, cold_in_std_section,
27346 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
27347 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
27348 fields.
27349 (output_fde): Use dw_fde_second_{begin,end} if second is
27350 true, otherwise dw_fde_{begin,end}.
27351 (output_call_frame_info): Test dw_fde_second_begin != NULL
27352 instead of dw_fde_switched_sections.
27353 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
27354 fields, initialize new fields. Initialize in_std_section
27355 unconditionally from the first partition.
27356 (dwarf2out_end_epilogue): Don't override dw_fde_end when
27357 dw_fde_second_begin is non-NULL.
27358 (dwarf2out_switch_text_section): Stop initializing removed
27359 dw_fde_struct fields, initialize new fields, initialize
27360 also dw_fde_end here. Set dw_fde_switch_cfi even when
27361 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
27362 (struct var_loc_list_def): Add last_before_switch field.
27363 (arange_table, arange_table_allocated, arange_table_in_use,
27364 ARANGE_TABLE_INCREMENT, add_arange): Removed.
27365 (size_of_aranges): Count !in_std_section and !second_in_std_section
27366 hunks in fdes, instead of looking at arange_table_in_use.
27367 (output_aranges): Add aranges_length argument, don't call
27368 size_of_aranges here. Instead of using aranges_table*
27369 emit ranges for fdes when !in_std_section resp.
27370 !second_in_std_section.
27371 (dw_loc_list): Break ranges crossing section switch.
27372 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
656e2b9d 27373 use dw_fde_second_end instead of dw_fde_end as end of last range.
c6dedfd4 27374 (gen_subprogram_die): Don't call add_arange. Use
27375 dw_fde_{begin,end} for first partition and if switched
27376 section dw_fde_second_{begin,end} for the second.
27377 (var_location_switch_text_section_1,
27378 var_location_switch_text_section): New functions.
27379 (dwarf2out_begin_function): Initialize cold_text_section even
27380 when function_section () isn't text_section.
27381 (prune_unused_types): Don't walk arange_table.
27382 (dwarf2out_finish): Don't needlessly test
27383 flag_reorder_blocks_and_partition when testing cold_text_section_used.
27384 If info_section_emitted, call size_of_aranges and if it indicates
27385 non-empty .debug_aranges, call output_aranges with the computed
27386 size. Stop using removed dw_fde_struct fields, use
27387 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
27388 for second.
27389
06eb3ccd 27390 PR debug/48203
27391 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
27392 create ENTRY_VALUE if incoming or address of incoming's MEM
27393 is a hard REG.
27394 * dwarf2out.c (mem_loc_descriptor): Don't emit
27395 DW_OP_GNU_entry_value of DW_OP_fbreg.
27396 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
27397 on ENTRY_VALUE is able to find the canonical parameter VALUE.
27398 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
27399 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
27400 ENTRY_VALUE_EXPs.
27401 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
27402 is a REG_P or MEM_P with REG_P address, compute hash directly
27403 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
27404 (preserve_only_constants): Don't clear VALUES forwaring
27405 ENTRY_VALUE to some other VALUE.
27406
03a5dda9 274072011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
27408
27409 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
27410 instead of GEN_INT.
27411
8c593757 274122011-03-28 Eric Botcazou <ebotcazou@adacore.com>
27413
27414 * cfgexpand.c (expand_gimple_cond): Always set the source location and
27415 block before expanding the statement.
27416 (expand_gimple_stmt_1): Likewise. Set them here...
27417 (expand_gimple_stmt): ...and not here. Tidy.
27418 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
27419 unknown.
27420
07abdb66 274212011-03-28 Steven Bosscher <steven@gcc.gnu.org>
27422
27423 * Makefile.in: New rule for cprop.o.
27424 * gcse.c: Move constant/copy propagation to cprop.c.
27425 (compute_local_properties): Only handle expression tables.
27426 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
27427 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
27428 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
27429 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
656e2b9d 27430 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
07abdb66 27431 compute_cprop_data, find_used_regs, try_replace_reg,
27432 find_avail_set, cprop_jump, constprop_register, cprop_insn,
27433 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
27434 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
27435 find_bypass_set, reg_killed_on_edge, bypass_block,
27436 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
27437 execute_rtl_cprop, pass_rtl_cprop): Move to...
27438 * cprop.c: ...here. New file, constant/copy propagation for RTL
27439 moved from gcse.c to here with minor cleanups in duplicated code.
27440
8e4ee659 274412011-03-28 H.J. Lu <hongjiu.lu@intel.com>
27442
27443 * config/i386/i386.c (flag_opts): Fix a typo in
27444 -mavx256-split-unaligned-store.
27445
9f4cd859 274462011-03-28 Anatoly Sokolov <aesok@post.ru>
27447
27448 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
27449 LIBCALL_VALUE): Remove macros.
27450 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27451 TARGET_FUNCTION_VALUE_REGNO_P): Define.
27452 (h8300_function_value, h8300_libcall_value,
27453 h8300_function_value_regno_p): New functions.
27454
d80478df 274552011-03-28 Anatoly Sokolov <aesok@post.ru>
27456
27457 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
27458
42b013bc 274592011-03-28 Jeff Law <law@redhat.com>
27460
27461 * tree-ssa-threadupdate.c (redirect_edges): Call
27462 create_edge_and_update_destination_phis as needed.
27463 (create_edge_and_update_destination_phis): Accept new BB argument.
27464 All callers updated.
27465 (thread_block): Do not update the profile when threading around
27466 intermediate blocks.
27467 (thread_single_edge): Likewise.
27468 (determine_bb_domination_status): If BB is not a successor of the
27469 loop header, return NONDOMINATING.
27470 (register_jump_thread): Note when we register a jump thread around
27471 an intermediate block.
27472 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
27473 (thread_across_edge): Use it.
27474
35f74ece 274752011-03-28 Tristan Gingold <gingold@adacore.com>
27476
27477 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
27478 when for_return is 2.
27479
8f9c21d9 274802011-03-28 Jeff Law <law@redhat.com>
27481
27482 * var-tracking.c (canonicalize_values_mark): Delete unused
27483 lhs assignment.
27484 (canonicalize_values_star, set_variable_part): Likewise.
27485 (clobber_variable_part, delete_variable_part): Likewise.
27486
98076867 274872011-03-28 Steven Bosscher <steven@gcc.gnu.org>
27488
27489 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
27490
222bc9b9 274912011-03-28 Martin Jambor <mjambor@suse.cz>
27492
27493 * tree-inline.c (expand_call_inline): Do not check that destination
27494 node is analyzed.
27495 (optimize_inline_calls): Assert that destination node is analyzed.
27496 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
27497 not call tree_lowering_passes.
27498 * cgraph.h (cgraph_analyze_function): Declare.
27499 * cgraphunit.c (cgraph_analyze_function): Make public.
27500
a2eed601 275012011-03-28 Joseph Myers <joseph@codesourcery.com>
27502
27503 * config/sparc/sparc-opts.h: New.
27504 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
27505 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
27506 (sparc_option_override): Store processor_type enumeration rather
27507 than string in cpu_default. Remove name and enumeration from
27508 cpu_table. Directly default -mcpu then default -mtune from -mcpu
27509 without using sparc_select. Use target_flags_explicit instead of
27510 fpu_option_set.
27511 * config/sparc/sparc.h (enum processor_type): Move to
27512 sparc-opts.h.
27513 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
27514 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
27515 HeaderInclude entry.
27516 (mcpu=, mtune=): Use Var and Enum.
27517 (sparc_processor_type): New Enum and EnumValue entries.
27518
703c9b8a 275192011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27520 Iain Sandoe <iains@gcc.gnu.org>
27521
27522 PR target/48245
27523 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
27524
bee862b6 275252011-03-28 Eric Botcazou <ebotcazou@adacore.com>
27526
27527 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
27528 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
27529 Insert new statements at it in lieu of STMT.
27530 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
27531 * tree-vect-stmts.c (vectorizable_store): Likewise.
27532 (vectorizable_load): Likewise.
27533
935ab977 275342011-03-28 Uros Bizjak <ubizjak@gmail.com>
27535
27536 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
27537 (divtf3): Ditto.
27538 (multf3): Ditto.
27539 (subtf3): Ditto.
27540
30d07ab3 275412011-03-27 H.J. Lu <hongjiu.lu@intel.com>
27542
27543 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
27544 unaligned 256bit load/store.
27545 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
27546 (*avx_movdqu<avxmodesuffix>): Likewise.
27547
5f239f13 275482011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27549
27550 PR target/48288
27551 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
27552 * config/pa/pa.md (iordi3): Use new predicate in expander.
27553 (iorsi3): Likewise.
27554
5521a590 275552011-03-27 Anatoly Sokolov <aesok@post.ru>
27556
935ab977 27557 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
5521a590 27558 FUNCTION_VALUE_REGNO_P): Remove macros.
935ab977 27559 * config/mips/mips-protos.h (mips_function_value): Remove.
27560 * config/mips/mips.c (mips_function_value): Rename to...
5521a590 27561 (mips_function_value_1): ... this. Make static. Handle receiving
27562 the function type in 'fn_decl_or_type' argument.
27563 (mips_function_value, mips_libcall_value,
27564 mips_function_value_regno_p): New function.
27565 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
27566 TARGET_FUNCTION_VALUE_REGNO_P): Define.
27567
b8cb8d52 275682011-03-27 H.J. Lu <hongjiu.lu@intel.com>
27569
27570 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
27571 and -mavx256-split-unaligned-store.
27572 (ix86_option_override_internal): Split 32-byte AVX unaligned
27573 load/store by default.
27574 (ix86_avx256_split_vector_move_misalign): New.
27575 (ix86_expand_vector_move_misalign): Use it.
27576
27577 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
27578 -mavx256-split-unaligned-store.
27579
27580 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
27581 256bit load/store. Generate unaligned store on misaligned memory
27582 operand.
27583 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
27584 256bit load/store.
27585 (*avx_movdqu<avxmodesuffix>): Likewise.
27586
27587 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
27588 -mavx256-split-unaligned-store.
27589
72aac168 275902011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
27591
27592 PR target/38598
27593 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
27594 Update commentary.
27595
86f1bed2 275962011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
27597
27598 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
27599 opno arguments with an expand_operand. Use create_input_operand.
27600 (mips_prepare_builtin_target): Delete.
27601 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
27602 functions.
27603 (mips_expand_builtin_direct): Use create_output_operand and
27604 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
27605 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
27606 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
27607
7edb1e83 276082011-03-27 Ira Rosen <ira.rosen@linaro.org>
27609
27610 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
27611 function.
27612 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
27613
54f21e20 276142011-03-26 Eric Botcazou <ebotcazou@adacore.com>
27615
27616 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
27617 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
27618 basic blocks and call commit_edge_insertions directly.
27619 (fixup_abnormal_edges): Move from here to...
27620 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
27621 on the edges and return whether some have actually been inserted.
27622 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
27623 compensation code.
27624
c53624fb 276252011-03-26 Andrey Belevantsev <abel@ispras.ru>
27626
27627 PR rtl-optimization/48144
27628 * sel-sched-ir.c (merge_history_vect): Factor out from ...
27629 (merge_expr_data): ... here.
27630 (av_set_intersect): Rename to av_set_code_motion_filter.
27631 Update all callers. Call merge_history_vect when an expression
27632 is found in both sets.
27633 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
27634
02426144 276352011-03-26 Alan Modra <amodra@gmail.com>
27636
27637 * config/rs6000/predicates.md (word_offset_memref_op): Handle
27638 cmodel medium addresses.
27639 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
27640 64-bit gpr loads and stores.
27641 (rs6000_secondary_reload_ppc64): New function.
27642 * config/rs6000/rs6000-protos.h: Declare it.
27643 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
27644
31fdbcb6 276452011-03-26 Alan Modra <amodra@gmail.com>
27646
27647 PR target/47487
27648 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
27649 GNU Go in traceback table.
27650
b52cb719 276512011-03-25 Richard Henderson <rth@redhat.com>
27652
27653 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
27654 if there are exactly 6 operands.
27655 (set_storage_via_setmem): Similarly.
27656
82715bcd 276572011-03-25 Kai Tietz <ktietz@redhat.com>
27658
27659 * collect2.c (write_c_file_stat): Handle backslash
27660 as right-hand directory separator.
27661 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
27662 checking just for slash.
27663 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
27664 instead of checking for trailing slash.
27665 * gcc.c (record_temp_file): Use filename_cmp instead
27666 of strcmp.
27667 (do_spec_1): Likewise.
27668 (replace_outfile_spec_function): Likewise.
27669 (is_directory): Use filename_ncmp instead of strncmp.
27670 (print_multilib_info): Likewise.
27671 * gcov.c (find_source): Use filename_cmp instead
27672 instead of strcmp.
27673 (make_gcov_file_name): Fix order of slash/backslash
27674 checks.
27675 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
27676 (add_standard_paths): Likewise.
27677 * mips-tfile.c (saber_stop): Handle backslash.
27678 * prefix.c (update_path): Use filename_ncmp instead of
27679 strncmp.
27680 * profile.c (output_location): Use filename_cmp instead
27681 of strcmp.
27682 * read-md.c (handle_toplevel_file): Handle backslash.
27683 * tlink.c (frob_extension): Likewise.
27684 * tree-cfg.c (same_line_p): Use filename_cmp instead of
27685 strcmp.
27686 * tree-dump.c (dequeue_and_dump): Handle backslash.
27687 * tree.c (get_file_function_name): Likewise.
27688 * gengtype.c (read_input_list): Likewise.
27689 (get_file_realbasename): Likewise.
27690 (get_output_file_with_visibility): Use filename_cmp
27691 instead of strcmp.
27692
92861a27 276932011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
27694
27695 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
27696 case to VFPv1.
27697
6535fbf5 276982011-03-25 Nathan Froyd <froydnj@codesourcery.com>
27699
27700 * fold-const.c (expr_location_or): New function.
27701 (fold_truth_not_expr): Call it.
27702
451c8e2f 277032011-03-25 Jeff Law <law@redhat.com>
27704
27705 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
27706 va_end.
27707 * c-family/c-common.c (def_fn_type): Likewise.
451c8e2f 27708 * emit-rtl.c (gen_rtvec): Likewise.
27709 * lto/lto-lang.c (def_fn_type): Likewise.
27710
f82efd77 277112011-03-25 Richard Guenther <rguenther@suse.de>
27712
27713 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
27714 also generate copies.
27715 (fini_copy_prop): Handle constant values properly.
27716
ed0d805a 277172011-03-25 Jakub Jelinek <jakub@redhat.com>
27718
27719 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
27720 mode size instead of bitsize with DWARF2_ADDR_SIZE.
27721 (hash_loc_operands, compare_loc_operands): Handle
27722 DW_OP_GNU_entry_value.
27723
59839b36 277242011-03-25 Kai Tietz <ktietz@redhat.com>
27725
27726 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
27727 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
27728 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
27729 comment and use macro TARGET_64BIT_MS_ABI instead.
27730 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
27731 and change default behavior for 32-bit MS_ABI.
27732 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
27733 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
27734 32-bit, too.
27735 (ix86_cfun_abi): Likewise.
27736 (ix86_maybe_switch_abi): Adjust comment.
27737 (init_cumulative_args): Check for bit-ness in MS_ABI case.
27738 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
27739 instead of checking for SYSV_ABI.
27740 (ix86_nsaved_sseregs): Likewise.
27741 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
27742 to 16 bytes.
27743 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
27744 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
27745 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
27746 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
27747 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
27748
fd7ad53b 277492011-03-25 Richard Guenther <rguenther@suse.de>
27750
27751 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
27752 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
27753 (verify_gimple): Remove.
27754 * tree-cfg.c (verify_gimple_call): Merge verification
27755 from verify_stmts.
27756 (verify_gimple_phi): Merge verification from verify_stmts.
27757 (verify_gimple_label): New function.
27758 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
27759 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
27760 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
27761 (verify_stmts): Rename to verify_gimple_in_cfg.
27762 (verify_gimple_in_cfg): New function.
27763 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
27764 * tree-ssa.c (verify_ssa): Likewise.
27765 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
27766
526b36a8 277672011-03-25 Richard Guenther <rguenther@suse.de>
27768
27769 * passes.c (init_optimization_passes): Add FRE pass after
27770 early SRA.
27771
a651f34d 277722011-03-25 Bernd Schmidt <bernds@codesourcery.com>
27773 Andrew Stubbs <ams@codesourcery.com>
27774
27775 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
27776 for Cortex-A8.
27777 (arm_movdi_vfp_cortexa8): New pattern.
27778 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
27779 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
27780 instructions when tuning for Cortex-A8. Set attribute "arch".
27781 * config/arm/arm.md: Move include arm-tune.md up a bit.
27782 (define_attr "arch"): Add "onlya8" and "nota8" values.
27783 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
27784
ca8a2945 277852011-03-25 Nathan Froyd <froydnj@codesourcery.com>
27786
e0450140 27787 PR bootstrap/48282
ca8a2945 27788 Revert:
27789 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
27790
27791 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
27792 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
27793 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
27794 * passes.c (init_optimization_passes): Move
27795 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
27796
309303cf 277972011-03-25 Kai Tietz <ktietz@redhat.com>
27798
27799 * c-typeck.c (comptypes_internal): Replace target
27800 hook call of comp_type_attributes by version in tree.c file.
27801 * gimple.c (gimple_types_compatible_p_1): Likewise.
27802 * tree-ssa.c (useless_type_conversion_p): Likewise.
27803 * tree.c (build_type_attribute_qual_variant): Likewise.
27804 (attribute_value_equal): New static helper function.
27805 (comp_type_attributes): New function.
27806 (merge_attributes): Use attribute_value_equal for comparison.
27807 (attribute_list_contained): Likewise.
27808 * tree.h (comp_type_attributes): New prototype.
27809
5717187b 278102011-03-25 Richard Guenther <rguenther@suse.de>
27811
27812 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
27813 of complex types at -O0.
27814 (verify_gimple_assign_binary): Likewise.
27815 (verify_gimple_assign_ternary): Likewise.
27816
5c550782 278172011-03-24 Mark Wielaard <mjw@redhat.com>
27818
27819 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
27820 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
27821
b3ba5e8d 278222011-03-24 Mark Wielaard <mjw@redhat.com>
27823
27824 PR debug/48041
27825 * dwarf2out.c (output_abbrev_section): Only write table when
27826 abbrev_die_table_in_use > 1.
27827
7a20d8cd 278282011-02-24 Richard Henderson <rth@redhat.com>
27829
27830 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
27831 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
27832 (alpha_expand_unaligned_load_words): Use extql.
27833 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
27834 (emit_insxl): Handle all modes for consistency.
27835
9bab4302 278362011-02-24 Richard Henderson <rth@redhat.com>
27837
27838 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
27839 (alpha_expand_unaligned_load): Likewise.
27840 (alpha_expand_unaligned_store): Likewise.
27841 (alpha_expand_unaligned_load_words): Likewise.
27842 (alpha_expand_unaligned_store_words): Likewise.
27843 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
27844 (alpha_split_lock_test_and_set_12): Likewise.
27845 (print_operand, alpha_fold_builtin_extxx): Likewise.
27846 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
27847 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
27848 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
27849 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
27850 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
27851 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
27852 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
27853 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
27854 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
27855 (extwl, extll, extql): Similarly.
27856 (inswh, inslh, insqh): Similarly.
27857 (mskbl, mskwl, mskll, mskql): Similarly.
27858 (mskwh, msklh, mskqh): Similarly.
27859
6bcf8cab 278602011-02-24 Richard Henderson <rth@redhat.com>
27861
27862 * config/alpha/alpha.md (attribute isa): Add er, ner.
27863 (attribute enabled): Handle them.
27864 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
27865
baa0ecef 278662011-02-24 Richard Henderson <rth@redhat.com>
27867
27868 * config/alpha/alpha.md (attribute isa): Add vms.
27869 (attribute enabled): Handle it.
27870 (*movsf): Merge *movsf_{nofix,fix,nofp}.
27871 (*movdf): Merge *movdf_{nofix,fix,nofp}.
27872 (*movtf): Rename from *movtf_internal for consistency.
27873 (*movsi): Merge with *movsi_nt_vms.
27874 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
27875 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
27876 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
27877 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
27878
8b2983a3 278792011-02-24 Richard Henderson <rth@redhat.com>
27880
27881 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
27882 (extendqisi2, extendhisi2): Likewise.
27883 (extendqidi2): Simplify BWX/non-BWX expansions.
27884 (extendhidi2): Similarly.
27885
e31a3157 278862011-02-24 Richard Henderson <rth@redhat.com>
27887
27888 * config/alpha/alpha.md (attribute isa): New.
27889 (attribute enabled): New.
27890 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
27891 (zero_extendqisi2, zero_extendqidi2): Similarly.
27892 (zero_extendhisi2, zero_extendhidi2): Similarly.
27893 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
27894
3351cef0 278952011-02-24 Richard Henderson <rth@redhat.com>
27896
27897 * config/alpha/predicates.md (input_operand): Revert last change;
27898 update comment to mention 32-bit VMS rather than Windows.
27899
d304b9e1 279002011-03-24 Nathan Froyd <froydnj@codesourcery.com>
27901
27902 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
27903 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
27904 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
27905 * passes.c (init_optimization_passes): Move
27906 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
27907
3064d0d2 279082011-03-24 Eric Botcazou <ebotcazou@adacore.com>
27909
27910 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
27911
92676954 279122011-03-24 Uros Bizjak <ubizjak@gmail.com>
27913
27914 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
27915 correctly.
27916
21be4257 279172011-03-24 Jakub Jelinek <jakub@redhat.com>
27918
27919 PR debug/48204
27920 * simplify-rtx.c (simplify_const_unary_operation): Call
27921 real_convert when changing mode class with FLOAT_EXTEND.
27922
9f9a3b39 279232011-03-24 Nick Clifton <nickc@redhat.com>
27924
27925 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
27926 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
27927 * config/rx/rx.c (rx_option_override): Set align_jumps,
27928 align_loops and align_labels if not set by the user.
27929 (rx_align_for_label): New function.
27930 (rx_max_skip_for_label): New function.
27931 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
27932 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
27933 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
27934 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
27935 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
27936
46fc03c6 279372011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
27938
27939 PR rtl-optimization/48263
27940 * optabs.c (expand_binop_directly): Reinstate convert_modes code
27941 and original commutative_p handling. Use maybe_gen_insn.
27942
b5fe590a 279432011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27944
27945 * reload.c (find_reloads_subreg_address): Add address_reloaded
27946 parameter and return true there if the full address has been
27947 reloaded.
27948 (find_reloads_toplev): Pass address_reloaded flag.
27949 (find_reloads_address_1): Don't use address_reloaded parameter.
27950
4392e906 279512011-03-24 Jeff Law <law@redhat.com>
27952
27953 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
27954 unused variable "ann".
27955 (remove_unused_locals): Likewise.
27956
27957 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
27958 statement.
27959
27960 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
27961 after it is freed.
27962
08d88e72 279632011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27964
27965 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
27966 for invalid symbolic addresses.
27967 (s390_secondary_reload): Don't use s390_check_symref_alignment for
27968 larl operands.
27969
30d202de 279702011-03-24 Eric Botcazou <ebotcazou@adacore.com>
27971
27972 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
27973 the argument in calls to fold_truth_not_expr.
27974
1cbe3047 279752011-03-24 Nathan Froyd <froydnj@codesourcery.com>
27976
27977 * tree.c (record_node_allocation_statistics): New function.
27978 (make_node_stat, copy_node_stat, build_string): Call it.
27979 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
27980 (build1_stat, build_omp_clause): Likewise.
27981
45c0b118 279822011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
27983
27984 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
27985 last commit.
27986
07eeb468 279872011-03-24 Richard Guenther <rguenther@suse.de>
27988
27989 PR tree-optimization/48271
27990 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
27991 blocks that still exist.
27992
2473bfb7 279932011-03-24 Richard Guenther <rguenther@suse.de>
27994
27995 PR tree-optimization/48270
27996 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
27997 not free datarefs before ddrs.
27998
453d5246 279992011-03-24 Eric Botcazou <ebotcazou@adacore.com>
28000
28001 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
28002 from the address built for a reference with variable offset.
28003
a23f3c3c 280042011-03-24 Uros Bizjak <ubizjak@gmail.com>
28005
28006 PR target/48237
28007 * config/i386/i386.md (*movdf_internal_rex64): Do not split
28008 alternatives that can be handled with movq or movabsq insn.
28009 (*movdf_internal): Disable for !TARGET_64BIT.
28010 (*movdf_internal_nointeger): Ditto.
28011 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
28012
81bcd36c 280132011-03-24 Nathan Froyd <froydnj@codesourcery.com>
28014
28015 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
28016 (FUNCTION_ARG_ADVANCE): Likewise.
28017 * tm.texi.in: Change references to them to hook references.
28018 * tm.texi: Regenerate.
a23f3c3c 28019 * targhooks.c (default_function_arg): Eliminate check for target macro.
81bcd36c 28020 (default_function_incoming_arg): Likewise.
28021 (default_function_arg_advance): Likewise.
a23f3c3c 28022 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
81bcd36c 28023 (function_arg_advance): Likewise.
28024 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
28025
1688dd20 280262011-03-24 Richard Guenther <rguenther@suse.de>
28027
28028 PR middle-end/48269
28029 * tree-object-size.c (addr_object_size): Do not double-account
28030 for MEM_REF offsets.
28031
284cc480 280322011-03-24 Diego Novillo <dnovillo@google.com>
28033
28034 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
a23f3c3c 28035 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
284cc480 28036 (lto_input_data_block): Move from lto-opts.c. Make extern.
28037 Update all users.
28038 (lto_input_string): Rename from input_string. Make extern.
28039 Update all users.
28040 * lto-streamer-out.c (lto_output_string_with_length): Rename from
28041 output_string_with_length.
28042 Output 0 to indicate a non-NULL string. Update all callers to
28043 not emit 0.
28044 (lto_output_string): Rename from output_string. Make extern.
28045 Update all users.
28046 (lto_output_decl_state_streams): Make extern.
28047 (lto_output_decl_state_refs): Make extern.
28048 * lto-streamer.h (lto_input_string): Declare.
28049 (lto_input_data_block): Declare.
28050 (lto_output_string): Declare.
28051 (lto_output_string_with_length): Declare.
28052 (lto_output_decl_state_streams): Declare.
28053 (lto_output_decl_state_refs): Declare.
28054
1d0b727d 280552011-03-24 Richard Guenther <rguenther@suse.de>
28056
28057 PR tree-optimization/46562
28058 * tree.c (build_invariant_address): New function.
28059 * tree.h (build_invariant_address): Declare.
28060 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
28061 a renamed function moved ...
28062 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
28063 Take valueization callback parameter.
28064 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
28065 * gimple-fold.h: New file.
28066 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
28067 (ccp_fold, fold_const_aggregate_ref,
28068 fold_ctor_reference, fold_nonarray_ctor_reference,
28069 fold_array_ctor_reference, fold_string_cst_ctor_reference,
28070 get_base_constructor): Move ...
28071 * gimple-fold.c: ... here.
28072 (gimple_fold_stmt_to_constant_1): New function
28073 split out from ccp_fold. Take a valueization callback parameter.
28074 Valueize all operands.
28075 (gimple_fold_stmt_to_constant): New wrapper function.
28076 (fold_const_aggregate_ref_1): New function split out from
28077 fold_const_aggregate_ref. Take a valueization callback parameter.
28078 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
28079 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
28080 invariant POINTER_PLUS_EXPRs to invariant form.
28081 (vn_valueize): New function.
28082 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
28083 * tree-vrp.c (vrp_valueize): New function.
28084 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
28085 to fold statements to constants.
28086 * tree-ssa-pre.c (eliminate): Properly guard propagation of
28087 function declarations.
28088 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
28089 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
28090
92070737 280912011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
28092
28093 * config/h8300/predicates.md (jump_address_operand): Fix register
28094 mode check.
28095
ec611e12 280962011-03-24 Ira Rosen <ira.rosen@linaro.org>
28097
28098 * doc/invoke.texi (max-stores-to-sink): Document.
28099 * params.h (MAX_STORES_TO_SINK): Define.
28100 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
28101 if either vectorization or if-conversion is disabled.
28102 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
28103 tree-vect-data-refs.c vect_equal_offsets.
28104 (dr_equal_offsets_p): New function.
28105 (find_data_references_in_bb): Remove static.
28106 * tree-data-ref.h (find_data_references_in_bb): Declare.
28107 (dr_equal_offsets_p): Likewise.
28108 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
28109 (vect_drs_dependent_in_basic_block): Update calls to
28110 vect_equal_offsets.
28111 (vect_check_interleaving): Likewise.
28112 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
28113 (cond_if_else_store_replacement): Rename to...
28114 (cond_if_else_store_replacement_1): ... this. Change arguments and
28115 documentation.
28116 (cond_if_else_store_replacement): New function.
28117 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
28118 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
28119
d022fa24 281202011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
28121
28122 PR target/46934
28123 * config/arm/arm.md (casesi): Use the gen_int_mode() function
28124 to subtract lower bound instead of GEN_INT().
28125
145f7c33 281262011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
28127
28128 PR other/48179
28129 PR other/48221
28130 PR other/48234
28131 * doc/extend.texi (Alignment): Move section to match order in TOC.
28132 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
28133 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
28134
d5321455 281352011-03-23 Jeff Law <law@redhat.com>
28136
28137 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
28138 before removing the edge.
28139
28140 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
28141 it may have been freed by redirect_branch_edge or
28142 redirect_edge_succ_nodup.
28143
de508de3 281442011-03-23 Richard Guenther <rguenther@suse.de>
28145
a23f3c3c 28146 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
de508de3 28147 (check_va_list_escapes): Likewise.
28148 (check_all_va_list_escapes): Likewise.
28149
210a8eb6 281502011-03-23 Richard Guenther <rguenther@suse.de>
28151
28152 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
28153 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
28154 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
28155 (alias.o): Likewise.
28156 (ipa-type-escape.o): Remove.
28157 (ipa-struct-reorg.o): Likewise.
28158 (GTFILES): Remove ipa-struct-reorg.c.
28159 * alias.c: Do not include ipa-type-escape.h.
28160 * tree-ssa-alias.c: Likewise.
28161 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
28162 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
28163 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
28164 and ipa-type-escape passes.
28165 * tree-pass.h (pass_ipa_type_escape): Remove.
28166 (pass_ipa_struct_reorg): Likewise.
28167 * ipa-struct-reorg.h: Remove.
28168 * ipa-struct-reorg.c: Likewise.
28169 * ipa-type-escape.h: Likewise.
28170 * ipa-type-escape.c: Likewise.
28171 * doc/invoke.texi (-fipa-struct-reorg): Remove.
28172 (--param struct-reorg-cold-struct-ratio): Likewise.
28173 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
28174 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
28175 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
28176
7fe62d25 281772011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28178
28179 * config/s390/2084.md: Enable all insn reservations also for z9_ec
28180 cpu attribute value.
28181 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
28182 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
28183 * config/s390/s390.c (processor_flags_table): New constant array.
28184 (s390_handle_arch_option): Remove.
28185 (s390_handle_option): Remove s390_handle_arch_option invocations
28186 and OPT_mwarn_framesize_ handling.
28187 (s390_option_override): Remove s390_handle_arch_option invocation.
28188 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
28189 warnings.
28190 * config/s390/s390.md (cpu attribute): Add z9_ec value.
28191 * config/s390/s390.opt (s390_tune, s390_arch)
28192 (march=): Replace s390_arch_option enum and values with
28193 processor_type. Set variable name to s390_arch. Set
28194 initialization value.
28195 (mtune=): Replace s390_arch_option with processor_type. Set
28196 variable name to s390_tune. Set initialization value.
28197
4087dccd 281982011-03-23 Julian Brown <julian@codesourcery.com>
28199
28200 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
28201 accesses which are not naturally aligned.
28202
d7b3fc5b 282032011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
28204
28205 PR target/47553
28206 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
28207
8786db1e 282082011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
28209
28210 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
28211 parameter from "int" to "enum insn_code".
28212 (expand_operand_type): New enum.
28213 (expand_operand): New structure.
28214 (create_expand_operand): New function.
28215 (create_fixed_operand, create_output_operand): Likewise
28216 (create_input_operand, create_convert_operand_to): Likewise.
28217 (create_convert_operand_from, create_address_operand): Likewise.
28218 (create_integer_operand): Likewise.
28219 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
28220 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
28221 (expand_insn, expand_jump_insn): Likewise.
28222 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
28223 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
28224 (expand_movstr, expand_builtin___clear_cache): Likewise.
28225 (expand_builtin_lock_release): Likewise.
28226 * explow.c (allocate_dynamic_stack_space): Likewise.
28227 (probe_stack_range): Likewise. Allow check_stack to FAIL,
28228 and use the default handling in that case.
28229 * expmed.c (check_predicate_volatile_ok): Delete.
28230 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
28231 (emit_cstore): Likewise.
28232 * expr.c (emit_block_move_via_movmem): Likewise.
28233 (set_storage_via_setmem, expand_assignment): Likewise.
28234 (emit_storent_insn, try_casesi): Likewise.
28235 (emit_single_push_insn): Likewise. Allow the expansion to fail.
28236 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
28237 (expand_vec_shift_expr, expand_binop_directly): Likewise.
28238 (expand_twoval_unop, expand_twoval_binop): Likewise.
28239 (expand_unop_direct, emit_indirect_jump): Likewise.
28240 (emit_conditional_move, vector_compare_rtx): Likewise.
28241 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
28242 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
28243 (expand_sync_lock_test_and_set): Likewise.
28244 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
28245 (emit_unop_insn): Likewise.
28246 (expand_copysign_absneg): Change icode to an insn_code.
28247 (create_convert_operand_from_type): New function.
28248 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
28249 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
28250 (expand_insn, expand_jump_insn): Likewise.
28251 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
28252 than const_int_operand for operand 2.
28253
10d06e9c 282542011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28255
28256 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
28257 if possible.
28258
5f7c5ddd 282592011-03-22 Nathan Froyd <froydnj@codesourcery.com>
28260
28261 * emit-rtl.c (emit_pattern_before_noloc): New function.
28262 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
28263 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
28264 (emit_pattern_after_noloc): New function.
28265 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
28266 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
28267
8761b9a1 282682011-03-22 Nathan Froyd <froydnj@codesourcery.com>
28269
28270 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
28271 (__ffsDI2): Likewise.
28272
4505d022 282732011-03-22 Richard Henderson <rth@redhat.com>
28274
28275 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
28276 of !TARGET_ABI_OPEN_VMS.
28277 (alpha_trampoline_init, alpha_start_function): Likewise.
28278 (alpha_expand_epilogue, alpha_file_start): Likewise.
28279 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
28280 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
28281 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
28282 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
28283 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
28284
8ad6fff9 282852011-03-22 Joseph Myers <joseph@codesourcery.com>
28286
28287 * config/s390/s390-opts.h: New.
28288 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
28289 s390_arch_flags, s390_warn_framesize, s390_stack_size,
28290 s390_stack_guard): Remove.
28291 (s390_handle_arch_option): Return void. Take enum
28292 s390_arch_option value instead of string and searching array.
28293 (s390_handle_option): Don't assert that global structures are in
28294 use. Access variables via opts pointer. Use error_at. Don't use
28295 sscanf for -mstack-guard= or -mstack-size=. Update call to
28296 s390_handle_arch_option.
28297 (s390_option_override): Update call to s390_handle_arch_option.
28298 (s390_emit_prologue): Use %d format for s390_stack_size in
28299 diagnostic. Use %wd for HOST_WIDE_INT.
28300 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
28301 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
28302 * config/s390/s390.opt (config/s390/s390-opts.h): New
28303 HeaderInclude entry.
28304 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
28305 s390_arch_flags, s390_warn_framesize): New Variable entries.
28306 (s390_arch_option): New Enum and EnumValue entries.
28307 (march=): Use Enum instead of Var.
28308 (mstack-guard=, mstack-size=): Use UInteger and Var.
28309 (mtune=): Use Enum.
28310
3f002263 283112011-03-22 Joseph Myers <joseph@codesourcery.com>
28312
28313 * config/score/score.c (score_handle_option): Don't assert that
28314 global structures are in use. Access target_flags via opts
28315 pointer. Use value of -march= option to determine target_flags
28316 settings.
28317 * config/score/score.opt (march=): Use Enum.
28318 (score_arch): New Enum and EnumValue entries.
28319
e9e3a45a 283202011-03-22 Joseph Myers <joseph@codesourcery.com>
28321
28322 * config/mep/mep.c (option_mtiny_specified): Remove.
28323 (mep_option_override): Move register handling for -mivc2 from
28324 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
28325 instead of option_mtiny_specified.
28326 (mep_handle_option): Access target_flags via opts pointer. Don't
28327 assert that global structures are in use. Defer part of -mivc2
28328 handling and move it to mep_option_override.
28329 * config/mep/mep.opt (IVC2): New Mask entry.
28330 (mivc2): Use Var and Defer instead of Mask.
28331
34491a51 283322011-03-22 Joseph Myers <joseph@codesourcery.com>
28333
28334 * config/v850/v850-opts.h: New.
28335 * config/v850/v850.c (small_memory): Replace with
28336 small_memory_physical_max array. Make that array static const.
28337 (v850_handle_memory_option): Take integer value of argument. Take
28338 gcc_options pointer, option text and location. Return void.
28339 Update for changes to small memory structures.
28340 (v850_handle_option): Access target_flags via opts pointer. Don't
28341 assert that global structures are in use. Update calls to
28342 v850_handle_memory_option.
a23f3c3c 28343 (v850_encode_data_area): Update references to small memory settings.
28344 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
34491a51 28345 (enum small_memory_type): Move to v850-opts.h.
28346 * config/v850/v850.opt (config/v850/v850-opts.h): New
28347 HeaderInclude entry.
28348 (small_memory_max): New Variable entry.
28349 (msda): Replace by pair of options msda= and msda-. Use UInteger.
28350 (mtda, mzda): Likewise.
28351
a7f36b8e 283522011-03-22 Joseph Myers <joseph@codesourcery.com>
28353
28354 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
28355 pointer. Don't assert that global structures are in use.
28356
952466b5 283572011-03-22 Joseph Myers <joseph@codesourcery.com>
28358
28359 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
28360 via opts pointer. Don't assert that global structures are in use.
28361
d09dbe0a 283622011-03-22 Joseph Myers <joseph@codesourcery.com>
28363
28364 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
28365 (munix=93): Use Var.
28366 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
28367 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
28368 * config/pa/pa-opts.h: New.
28369 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
28370 (pa_handle_option): Don't assert that global structures are in
28371 use. Access target_flags via opts pointer. Don't handle
28372 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
28373 OPT_munix_98 here.
28374 (pa_option_override): Handle deferred OPT_mfixed_range_.
28375
177dbc5b 283762011-03-22 Joseph Myers <joseph@codesourcery.com>
28377
28378 * config/mn10300/mn10300-opts.h: New.
28379 * config/mn10300/mn10300.c (mn10300_processor,
28380 mn10300_tune_string): Remove.
28381 (mn10300_handle_option): Don't assert that global structures are
28382 in use. Access mn10300_processor via opts pointer. Don't handle
28383 OPT_mtune_ here.
28384 * config/mn10300/mn10300.h (enum processor_type): Move to
28385 mn10300-opts.h.
28386 (mn10300_processor): Remove.
28387 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
28388 HeaderInclude entry.
28389 (mn10300_processor): New Variable entry.
28390 (mtune=): Use Var.
28391
5d28209b 283922011-03-22 Joseph Myers <joseph@codesourcery.com>
28393
28394 * config/microblaze/microblaze.c: Don't include opts.h.
28395 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
28396 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
28397 (mno-clearbss): Use Var and Warn.
28398
e3d1b41b 283992011-03-22 Joseph Myers <joseph@codesourcery.com>
28400
28401 * config/m32r/m32r-opts.h: New.
28402 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
28403 (m32r_handle_option): Don't assert that global structures are in
28404 use. Access target_flags and m32r_cache_flush_func via opts
28405 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
28406 OPT_mno_flush_trap here.
28407 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
28408 include of m32r-opts.h.
28409 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
28410 HeaderInclude entry.
28411 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
28412 (mmodel=): Use Enum and Var.
28413 (m32r_model): New Enum and EnumValue entries.
28414 (mno-flush-trap): Use Var.
28415 (msdata=): Use Enum and Var.
28416 (m32r_sdata): New Enum and EnumValue entries.
28417
eea6e787 284182011-03-22 Joseph Myers <joseph@codesourcery.com>
28419
28420 * config/m32c/m32c.c: Don't include opts.h.
28421 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
28422 m32c_handle_option): Remove.
28423 (m32c_option_override): Check global_options_set.x_target_memregs
28424 instead of target_memregs_set.
28425 * config/m32c/m32c.h (target_memregs): Remove.
28426 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
28427 variable.
28428
3263bbb3 284292011-03-22 Joseph Myers <joseph@codesourcery.com>
28430
28431 * config/iq2000/iq2000-opts.h: New.
28432 * config/iq2000/iq2000.c: Don't include opts.h.
28433 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
a23f3c3c 28434 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
3263bbb3 28435 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
28436 HeaderInclude entry.
28437 (iq2000_tune): New Variable entry.
28438 (march=): Add comment. Use Enum.
28439 (iq2000_arch): New Enum and EnumValue entries.
28440 (mcpu=): Use Enum and Var.
28441 (iq2000_tune): New Enum and EnumValue entries.
28442
c0bfee3d 284432011-03-22 Joseph Myers <joseph@codesourcery.com>
28444
28445 * config/ia64/ia64-opts.h: New.
28446 * config/ia64/ia64.c (ia64_tune): Remove.
28447 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
28448 here. Use error_at.
28449 (ia64_option_override): Handle deferred OPT_mfixed_range_.
28450 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
28451 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
28452 HeaderInclude entry.
28453 (ia64_tune): New Variable entry.
28454 (mfixed-range=): Use Defer and Var.
28455 (mtune=): Use Enum and Var.
28456 (ia64_tune): New Enum and EnumValue entries.
28457
09f31110 284582011-03-22 Joseph Myers <joseph@codesourcery.com>
28459
28460 * config/frv/frv-opts.h: New.
28461 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
28462 frv-opts.h.
28463 (frv_cpu_type): Remove.
28464 * config/frv/frv.c: Don't include opts.h.
28465 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
a23f3c3c 28466 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
09f31110 28467 (frv_cpu_type): New Variable entry.
28468 (frv_cpu): New Enum and EnumValue entries.
28469
98a12a50 284702011-03-22 Joseph Myers <joseph@codesourcery.com>
28471
28472 * config/cris/cris.c (cris_handle_option): Access target_flags via
28473 opts pointer. Don't assert that global structures are in use.
28474 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
28475 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
28476
33c9a3e7 284772011-03-22 Joseph Myers <joseph@codesourcery.com>
28478
28479 * config/bfin/bfin-opts.h: New.
28480 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
28481 bfin_si_revision, bfin_workarounds): Remove.
28482 (bfin_cpus): Make static const.
28483 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
28484 not bfin_lib_id_given.
28485 (bfin_handle_option): Don't set bfin_lib_id_given. Access
28486 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
a23f3c3c 28487 pointer. Use error_at. Don't assert that global structures are in use.
33c9a3e7 28488 * config/bfin/bfin.h: Include bfin-opts.h.
28489 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
28490 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
28491 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
28492 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
28493 entries.
28494
7e21f84a 284952011-03-22 Joseph Myers <joseph@codesourcery.com>
28496
28497 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
28498 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
28499 or -msoft-float here.
28500 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
28501 -msoft-float and -mhard-float.
a23f3c3c 28502 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
7e21f84a 28503 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
28504 msoft-float.
28505 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
28506 -msoft-float.
28507 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
28508 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
28509 not mhard-float.
28510 (LIBGCC_SPEC): Don't handle -msoft-float.
28511 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
28512 -mhard-float.
28513 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
28514 msoft-float.
28515 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
28516 -mfloat-abi=*, not -msoft-float and -mhard-float.
28517 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
28518 -msoft-float.
28519 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
28520 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
28521 mhard-float and msoft-float.
28522 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
28523 mfloat-abi=soft in comments, not mhard-float and msoft-float.
28524 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
28525 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
28526 mhard-float.
28527 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
28528 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
28529 msoft-float.
28530 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
28531 not mhard-float.
28532 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
28533 not msoft-float.
28534
1b803a4f 285352011-03-22 Richard Henderson <rth@redhat.com>
28536
28537 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
28538 TARGET_ABI_WINDOWS_NT.
28539 (alpha_output_function_end_prologue): Likewise.
28540 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
28541 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
28542 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
28543 (trap, *movsi_nt_vms): Likewise.
28544 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
28545 (*tablejump_osf_nt_internal): Remove.
28546 * config/alpha/predicates.md (input_operand): Only test Pmode.
28547
b7ae8115 285482011-03-22 Joseph Myers <joseph@codesourcery.com>
28549
28550 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
28551 via opts pointer. Use error_at. Don't assert that global
28552 structures are in use.
28553
b54fbaf9 285542011-03-22 Joseph Myers <joseph@codesourcery.com>
28555
28556 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
28557 (ix86_handle_option): Access ix86_isa_flags and
28558 ix86_isa_flags_explicit via opts pointer. Don't assert that
28559 global structures are in use.
28560 (ix86_function_specific_save, ix86_function_specific_restore):
28561 Update ix86_isa_flags_explicit field name.
a23f3c3c 28562 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
b54fbaf9 28563 (ix86_isa_flags_explicit): Rename TargetSave entry to
28564 x_ix86_isa_flags_explicit.
28565
04d75965 285662011-03-22 Richard Henderson <rth@redhat.com>
28567
28568 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
28569 (alpha_option_override, direct_return): Likewise.
28570 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
28571 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
28572 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
28573 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
28574 (alpha_expand_epilogue, alpha_end_function): Likewise.
28575 (alpha_init_libfuncs): Likewise.
28576 (struct machine_function): Remove unicosmk members.
28577 (print_operand) ['t']: Remove.
28578 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
28579 unicosmk_output_module_name, unicosmk_output_common,
28580 current_section_align, unicosmk_output_text_section_asm_op,
28581 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
28582 unicosmk_section_type_flags, unicosmk_unique_section,
28583 unicosmk_asm_named_section, unicosmk_insert_attributes,
28584 unicosmk_output_align, unicosmk_defer_case_vector,
28585 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
28586 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
28587 unicosmk_output_ssib, unicosmk_add_call_info_word,
28588 unicosmk_extern_head, unicosmk_output_default_externs,
28589 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
28590 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
28591 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
28592 * config/alpha/alpha-protos.h: Update.
28593 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
28594 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
28595 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
28596 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
28597 (*mulsi_se, mulvsi3): Likewise.
28598 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
28599 (*divmodsi_internal, call, call_value, realign): Likewise.
28600 (moddi3, umoddi3): Likewise; remove duplicate expander.
28601 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
28602 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
28603 (*movdi_nofix): Remove r/U alternative.
28604 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
28605 * config/alpha/constraints.md ("U"): Remove.
28606 * config/alpha/predicates.md (call_operand"): Don't test
28607 TARGET_ABI_UNICOSMK.
28608
fba5dd52 286092011-03-22 Joseph Myers <joseph@codesourcery.com>
28610
28611 * target.def (handle_option): Take gcc_options and
28612 cl_decoded_option pointers and location_t.
28613 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
28614 * doc/tm.texi: Regenerate.
28615 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
28616 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
28617 * lto-opts.c (lto_reissue_options): Generate option structure for
28618 targetm.handle_option call.
28619 * opts.c (target_handle_option): Update call to
28620 targetm.handle_option. Remove assertions about values now passed
28621 down to hook.
28622 * targhooks.c (default_target_handle_option): New.
28623 * targhooks.h (default_target_handle_option): Declare.
28624 * config/alpha/alpha.c: Include opts.h.
28625 (alpha_handle_option): Update to new hook interface.
28626 * config/arm/arm.c: Include opts.h.
28627 (arm_handle_option): Update to new hook interface.
28628 * config/arm/t-arm (arm.o): Update dependencies.
28629 * config/bfin/bfin.c: Include opts.h.
28630 (bfin_handle_option): Update to new hook interface.
28631 * config/cris/cris.c: Include opts.h.
28632 (cris_handle_option): Update to new hook interface.
28633 * config/frv/frv.c: Include opts.h.
28634 (frv_handle_option): Update to new hook interface.
28635 * config/i386/i386.c: Include opts.h.
28636 (ix86_handle_option): Update to new hook interface.
28637 (ix86_valid_target_attribute_inner_p): Generate option structure
28638 for call to ix86_handle_option.
28639 * config/i386/t-i386 (i386.o): Update dependencies.
28640 * config/ia64/ia64.c: Include opts.h.
28641 (ia64_handle_option): Update to new hook interface.
28642 * config/ia64/t-ia64 (ia64.o): Update dependencies.
28643 * config/iq2000/iq2000.c: Include opts.h.
28644 (iq2000_handle_option): Update to new hook interface.
28645 * config/m32c/m32c.c: Include opts.h.
28646 (m32c_handle_option): Update to new hook interface.
28647 * config/m32r/m32r.c: Include opts.h.
28648 (m32r_handle_option): Update to new hook interface.
28649 * config/m68k/m68k.c: Include opts.h.
28650 (m68k_handle_option): Update to new hook interface.
28651 * config/mep/mep.c: Include opts.h.
28652 (mep_handle_option): Update to new hook interface.
28653 * config/microblaze/microblaze.c: Include opts.h.
28654 (microblaze_handle_option): Update to new hook interface.
28655 * config/mips/mips.c: Include opts.h.
28656 (mips_handle_option): Update to new hook interface.
28657 * config/mn10300/mn10300.c: Include opts.h.
28658 (mn10300_handle_option): Update to new hook interface.
28659 * config/pa/pa.c: Include opts.h.
28660 (pa_handle_option): Update to new hook interface.
28661 * config/pdp11/pdp11.c: Include opts.h.
28662 (pdp11_handle_option): Update to new hook interface.
28663 * config/rs6000/rs6000.c: Include opts.h.
28664 (rs6000_handle_option): Update to new hook interface.
28665 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
28666 * config/rx/rx.c: Include opts.h.
28667 (rx_handle_option): Update to new hook interface.
28668 * config/s390/s390.c: Include opts.h.
28669 (s390_handle_option): Update to new hook interface.
28670 * config/score/score.c: Include opts.h.
28671 (score_handle_option): Update to new hook interface.
28672 * config/sh/sh.c: Include opts.h.
28673 (sh_handle_option): Update to new hook interface.
28674 * config/sparc/sparc.c: Include opts.h.
28675 (sparc_handle_option): Update to new hook interface.
28676 * config/v850/v850.c: Include opts.h.
28677 (v850_handle_option): Update to new hook interface.
28678
a4e747a2 286792011-03-22 Joseph Myers <joseph@codesourcery.com>
28680
28681 * gcc.c (driver_unknown_option_callback): Only permit and save
28682 unknown -Wno- options.
28683 (driver_wrong_lang_callback): Save options directly instead of via
28684 driver_unknown_option_callback.
28685
e4ffbd30 286862011-03-22 Eric Botcazou <ebotcazou@adacore.com>
28687
28688 * combine.c (simplify_set): Try harder to find the best CC mode when
28689 simplifying a nested COMPARE on the RHS.
28690
17b3d2a8 286912011-03-22 Joseph Myers <joseph@codesourcery.com>
28692
28693 * config/alpha/gnu.h: Remove.
28694 * config/arc: Remove directory.
28695 * config/arm/netbsd.h: Remove.
28696 * config/arm/t-pe: Remove.
28697 * config/crx: Remove directory.
28698 * config/i386/netbsd.h: Remove.
28699 * config/m68hc11: Remove directory.
28700 * config/m68k/uclinux-oldabi.h: Remove.
28701 * config/mcore/mcore-pe.h: Remove.
28702 * config/mcore/t-mcore-pe: Remove.
28703 * config/netbsd-aout.h: Remove.
28704 * config/rs6000/gnu.h: Remove.
28705 * config/sh/sh-symbian.h: Remove.
28706 * config/sh/symbian-base.c: Remove.
28707 * config/sh/symbian-c.c: Remove.
28708 * config/sh/symbian-cxx.c: Remove.
28709 * config/sh/symbian-post.h: Remove.
28710 * config/sh/symbian-pre.h: Remove.
28711 * config/sh/t-symbian: Remove.
28712 * config/svr3.h: Remove.
28713 * config/vax/netbsd.h: Remove.
28714 * config.build: Don't handle i[34567]86-*-pe.
28715 * config.gcc: Remove handling of deprecations for most deprecated
28716 targets.
28717 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
28718 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
28719 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
28720 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
28721 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
28722 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
28723 Remove cases.
28724 * config.host: Don't handle i[34567]86-*-pe.
28725 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
28726 (ASM_SPEC32): Don't handle -mcall-gnu.
28727 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
28728 -mcall-gnu.
28729 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
28730 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
28731 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
28732 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
28733 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
28734 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
28735 conditional on SYMBIAN.
28736 * configure.ac: Don't handle powerpc*-*-gnu*.
28737 * configure: Regenerate.
28738 * doc/extend.texi (interrupt attribute): Don't mention CRX.
28739 * doc/install-old.texi (m6811, m6812): Don't mention.
28740 * doc/install.texi (arc-*-elf*): Don't document multilib option.
28741 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
28742 (m68k-uclinuxoldabi): Don't mention.
28743 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
28744 Remove.
28745 (-mcall-gnu): Remove.
28746 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
28747 families): Remove constraint documentation.
28748
bae8bb65 287492011-03-22 Marius Strobl <marius@FreeBSD.org>
28750
28751 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
28752 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
28753 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
28754
6da85e21 287552011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
28756
28757 PR target/48226
28758 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
28759 vector when peeking at the next token for vector, don't expand the
28760 keywords.
28761
32969c63 287622011-03-21 Georg-Johann Lay <avr@gjlay.de>
28763
28764 * config/avr/avr-protos.h (expand_epilogue): Change prototype
28765 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
28766 * config/avr/avr.c (init_cumulative_args)
28767 (avr_function_arg_advance): Use it.
28768 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
28769 sibcall epilogues.
28770 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
28771 (avr_function_ok_for_sibcall): ...this new function.
28772 (avr_lookup_function_attribute1): New static Function.
28773 (avr_naked_function_p, interrupt_function_p)
28774 (signal_function_p, avr_OS_task_function_p)
28775 (avr_OS_main_function_p): Use it.
28776 * config/avr/avr.md ("sibcall", "sibcall_value")
28777 ("sibcall_epilogue"): New expander.
28778 ("*call_insn", "*call_value_insn"): New insn.
28779 ("call_insn", "call_value_insn"): Remove
28780 ("call", "call_value", "epilogue"): Change expander to handle
28781 sibling calls.
28782
2bd4d851 287832011-03-21 Nick Clifton <nickc@redhat.com>
28784
28785 * doc/invoke.texi (Overall Options): Move closing brace to end of
28786 options list.
28787 (Optimization Options): Add missing @gol.
28788 (Directory Options): Likewise.
28789 (i386 and x86-64 Options): Likewise.
28790 (RS6000 and PowerPC Options): Likewise.
28791 (i386 and x86-64 Windows Options): Likewise.
28792 (V850 Options): Add text missing from descriptions.
28793
e484266f 287942011-03-22 Richard Henderson <rth@redhat.com>
28795
28796 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
28797 (avr_incoming_return_addr_rtx): New.
28798 (emit_push_byte): New.
28799 (expand_prologue): Use it. Remove incorrect dwarf annotation for
28800 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
28801 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
28802 (emit_pop_byte): New.
28803 (expand_epilogue): Use it. Pop frame pointer by bytes.
28804 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
28805 (INCOMING_RETURN_ADDR_RTX): New.
28806 (INCOMING_FRAME_SP_OFFSET): New.
28807 (ARG_POINTER_CFA_OFFSET): New.
28808 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
28809 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
28810 (pophi): Remove.
28811
cf840280 28812 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
28813
8761b9a1 288142011-03-22 Nathan Froyd <froydnj@codesourcery.com>
28815
28816 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
28817 (FUNCTION_ARG_ADVANCE): Likewise.
28818 * tm.texi.in: Change references to them to hook references.
28819 * tm.texi: Regenerate.
28820 * targhooks.c (default_function_arg): Eliminate check for target
28821 macro.
28822 (default_function_incoming_arg): Likewise.
28823 (default_function_arg_advance): Likewise.
a23f3c3c 28824 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8761b9a1 28825 (function_arg_advance): Likewise.
28826 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
28827
0b81155f 288282011-03-22 Nathan Froyd <froydnj@codesourcery.com>
28829
28830 * tree.c (build_call_1): New function.
28831 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
28832
1e400367 288332011-03-22 Richard Guenther <rguenther@suse.de>
28834
28835 PR tree-optimization/48228
28836 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
28837 for single-arg PHIs.
28838
68ff067d 288392011-03-22 Andrey Belevantsev <abel@ispras.ru>
28840
28841 PR rtl-optimization/48143
28842 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
28843 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
28844 sse2_cvtps2pd): Likewise.
28845
0a01a6f5 288462011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28847
28848 * recog.c (canonicalize_change_group): Use validate_unshare_change.
28849
c86930b0 288502011-03-22 Richard Guenther <rguenther@suse.de>
28851
28852 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
28853 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
28854 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
28855 and REALIGN_LOAD_EXPR.
28856 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
28857 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
28858 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
28859 DOT_PROD_EXPR case ...
28860 (expand_expr_real_2): ... here.
28861 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
28862 and REALIGN_LOAD_EXPR.
28863 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
28864 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
28865 (vect_create_epilog_for_reduction): Likewise.
28866 (vectorizable_reduction): Likewise.
28867 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
28868 * tree-vect-stmts.c (vectorizable_load): Likewise.
28869
00044e94 288702011-03-22 Eric Botcazou <ebotcazou@adacore.com>
28871
28872 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
28873
b6382e93 288742011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28875
28876 * config/s390/s390.c (s390_delegitimize_address): Fix offset
28877 handling for PLTOFF/GOTOFF.
28878
baa89d5a 288792011-03-22 Nick Clifton <nickc@redhat.com>
28880
28881 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
28882 trailing backslash from the end of the macro definition.
28883
2b2b857a 288842011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28885
28886 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
28887 and PLT unspecs.
28888
39c56a89 288892011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
28890
28891 * expr.h (prepare_operand): Move to...
28892 * optabs.h (prepare_operand): ...here and change the insn code
28893 parameter from "int" to "enum insn_code".
28894 (insn_operand_matches): Declare.
28895 * expr.c (init_expr_target): Use insn_operand_matches.
28896 (compress_float_constant): Likewise.
28897 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
28898 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
28899 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
a23f3c3c 28900 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
28901 Likewise.
39c56a89 28902 (gen_cond_trap): Likewise.
28903 (prepare_operand): Likewise. Change icode to an insn_code.
28904 (insn_operand_matches): New function.
28905 * reload.c (find_reloads_address_1): Use insn_operand_matches.
28906 * reload1.c (gen_reload): Likewise.
28907 * targhooks.c (default_secondary_reload): Likewise.
28908
38557452 289092011-03-21 Uros Bizjak <ubizjak@gmail.com>
28910
af9af376 28911 * config/alpha/alpha.md (unspec): New define_c_enum.
28912 (unspecv): Ditto.
28913
289142011-03-21 Uros Bizjak <ubizjak@gmail.com>
28915
28916 PR debug/48214
38557452 28917 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
28918 between a call and its CALL_ARG_LOCATION note.
28919
8d683dc1 289202011-03-21 Eric Botcazou <ebotcazou@adacore.com>
28921
28922 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
28923
289242011-03-21 Jakub Jelinek <jakub@redhat.com>
119d06b2 28925
28926 PR c/42544
28927 PR c/48197
28928 * c-common.c (shorten_compare): If primopN is first sign-extended
28929 to opN and then zero-extended to result type, set primopN to opN.
28930
cac9dbbd 289312011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
28932
28933 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
28934 for barrier handlers.
28935
00e59df9 289362011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
28937
28938 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
28939 UNSPEC constants to be in the unspec enumeration, and redefine
28940 all UNSPECV constants to be in the unspecv enumeration, so that
28941 dumps print which unspec/unspec_volatile this is.
28942 * config/rs6000/vector.md (UNSPEC_*): Ditto.
28943 * config/rs6000/paired.md (UNSPEC_*): Ditto.
28944 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
28945 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
28946 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
28947
28948 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
28949 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
28950 UNSPECV_LWSYNC, since these are used as unspec_volatile.
28951 * config/rs6000/sync.md (isync, lwsync): Ditto.
28952
3f1507c5 289532011-03-21 Richard Guenther <rguenther@suse.de>
28954
28955 * params.def (lto-min-partition): Fix typo.
28956
4c59b58b 289572011-03-21 Richard Guenther <rguenther@suse.de>
28958
28959 PR c/47939
28960 * c-decl.c (grokdeclarator): Drop to the main variant only
28961 for array types. Drop flag_gen_aux_info check.
28962
faddffca 289632011-03-21 Richard Guenther <rguenther@suse.de>
28964
28965 PR translation/47911
28966 * params.def (lto-partitions): Fix typo.
28967 (lto-min-partition): Fix wording.
28968
af1c85c3 289692011-03-21 Andreas Tobler <andreast@fgznet.ch>
28970
28971 * config/rs6000/t-freebsd: Remove duplication from file.
28972
4c76cf91 289732011-03-21 Richard Guenther <rguenther@suse.de>
28974
28975 PR middle-end/47661
28976 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
28977
f94df44d 289782011-03-21 Richard Guenther <rguenther@suse.de>
28979
28980 PR lto/48210
28981 * params.def (lto-partitions): Require at least 1 partition.
28982
05caec57 289832011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28984
28985 * gthr-solaris.h: Remove.
28986 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
28987 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
28988 (LIB_SPEC): Likewise.
28989 * config/sol2.opt (threads): Remove.
38557452 28990 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
05caec57 28991 (sparc*-*-solaris2*): Likewise.
28992 * configure.ac (enable_threads): Enable solaris support.
28993 * configure: Regenerate.
38557452 28994 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
05caec57 28995 * doc/install.texi (Configuration, --enable-threads=lib): Remove
28996 solaris.
28997
67a9e807 289982011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28999
29000 * config.gcc: Obsolete *-*-solaris2.8*.
29001 * doc/install.texi (Specific, *-*-solaris2*): Document it.
29002
4180f00a 290032011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29004
29005 PR bootstrap/48135
29006 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
29007 reference. Solaris 8 perl works.
29008
72e55818 290092011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29010
29011 PR bootstrap/48135
29012 * doc/install.texi (Prerequisites): Move jar etc. up.
29013 Explain support library version requirements.
29014
bb6ca4d0 290152011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29016
29017 PR bootstrap/48135
29018 * doc/install.texi (Prerequisites): Move Perl to build
29019 requirements. Always necessary on Solaris 2 with Sun ld.
29020
0165b97c 290212011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29022
29023 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
29024 binutils 2.21.
29025 (Specific, i?86-*-solaris2.[89]): Likewise.
29026 (Specific, i?86-*-solaris2.10): Likewise.
29027 (Specific, mips-sgi-irix6): Likewise.
29028 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
29029 Update for binutils 2.21.
29030
f95617d7 290312011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29032
29033 * configure.ac (gcc_cv_lto_plugin): Fix typo.
29034 Allow -fuse-linker-plugin for non-default plugin linker.
29035 * configure: Regenerate.
29036
b8f73c52 290372011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
29038
29039 PR bootstrap/48167
29040 * gengtype.c (files_rules): Added rule for cp/parser.h.
29041
2b03de53 290422011-03-21 Jakub Jelinek <jakub@redhat.com>
29043
29044 PR target/48213
29045 * config/s390/s390.c (s390_delegitimize_address): Don't call
29046 lowpart_subreg if orig_x has BLKmode.
29047
ac86af5d 290482011-03-21 Kai Tietz <ktietz@redhat.com>
29049
29050 PR target/12171
38557452 29051 * doc/plugins.texi: Adjust documentation for plugin register_callback.
29052 * tree.h (attribute_spec): Add new member affects_type_identity.
29053 * attribs.c (empty_attribute_table): Adjust attribute_spec
29054 initializers.
ac86af5d 29055 * config/alpha/alpha.c: Likewise.
29056 * config/arc/arc.c: Likewise.
29057 * config/arm/arm.c: Likewise.
29058 * config/avr/avr.c: Likewise.
29059 * config/bfin/bfin.c: Likewise.
29060 * config/crx/crx.c: Likewise.
29061 * config/darwin.h: Likewise.
29062 * config/h8300/h8300.c: Likewise.
29063 * config/i386/cygming.h: Likewise.
29064 * config/i386/i386.c: Likewise.
29065 * config/ia64/ia64.c: Likewise.
29066 * config/m32c/m32c.c: Likewise.
29067 * config/m32r/m32r.c: Likewise.
29068 * config/m68hc11/m68hc11.c: Likewise.
29069 * config/m68k/m68k.c: Likewise.
29070 * config/mcore/mcore.c: Likewise.
29071 * config/mep/mep.c: Likewise.
29072 * config/microblaze/microblaze.c: Likewise.
29073 * config/mips/mips.c: Likewise.
29074 * config/rs6000/rs6000.c: Likewise.
29075 * config/rx/rx.c: Likewise.
29076 * config/sh/sh.c: Likewise.
29077 * config/sol2.h: Likewise.
29078 * config/sparc/sparc.c: Likewise.
29079 * config/spu/spu.c: Likewise.
29080 * config/stormy16/stormy16.c: Likewise.
29081 * config/v850/v850.c: Likewise.
29082
37b591fd 290832011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
29084
29085 * simplify-rtx.c (simplify_binary_operation_1): Handle
29086 (xor (and A B) C) case when B and C are both constants.
29087
84769dee 290882011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
29089
29090 * tree-dfa.c (add_referenced_var): Fix typo in comment.
29091
5ac11cfb 290922011-03-20 Eric Botcazou <ebotcazou@adacore.com>
29093
29094 PR bootstrap/48168
29095 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
29096
3693f86f 290972011-03-20 Jakub Jelinek <jakub@redhat.com>
29098
29099 PR rtl-optimization/48156
29100 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
29101 assume df and df_lr are not NULL.
29102
393edd62 291032011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
29104
29105 PR debug/48023
29106 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
29107 between a call and its CALL_ARG_LOCATION note.
29108
06dfeb27 291092011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
29110
29111 PR debug/48178
29112 * config/sh/sh.c (find_barrier): Don't emit a constant pool
29113 between a call and its corresponding CALL_ARG_LOCATION note.
29114
771d4616 291152011-03-19 Anatoly Sokolov <aesok@post.ru>
29116
29117 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
29118 instead of loop. Use HARD_REGISTER_NUM_P predicate.
29119 * haifa-sched.c (setup_ref_regs): Ditto.
29120 * caller-save.c (add_used_regs_1): Ditto.
29121 * dse.c (look_for_hardregs): Ditto.
29122 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
29123 * sched-rgn.c (check_live_1): Ditto.
29124
ff889d78 291252011-03-18 Joseph Myers <joseph@codesourcery.com>
29126
29127 * c-decl.c (diagnose_mismatched_decls): Give an error for
29128 redefining a typedef with variably modified type.
29129
9b280b35 291302011-03-18 Joseph Myers <joseph@codesourcery.com>
29131
29132 * c-decl.c (grokfield): Don't allow typedefs for structures or
29133 unions with no tag by default.
29134 * doc/extend.texi (Unnamed Fields): Update.
29135
c3fa352f 291362011-03-18 Uros Bizjak <ubizjak@gmail.com>
29137
29138 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
29139 Rewrite using indirect functions.
29140 (lwp_slwpcb): Ditto.
29141 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
29142 (avx_vinsertf128<mode>): Ditto.
29143
4796d433 291442011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29145
29146 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
29147 unspecs.
29148
7ba1ff79 291492011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29150
29151 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
38557452 29152 splitting between a call and its corresponding CALL_ARG_LOCATION note.
7ba1ff79 29153
c96e0a0a 291542011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
29155
29156 PR rtl-optimization/48170
29157 * gcse.c (hoist_code): Remove bogus asserts.
29158
7da20978 291592011-03-18 Georg-Johann Lay <avr@gjlay.de>
29160
29161 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
29162 computation for prologue/epilogue.
29163
34cb2f5e 291642011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29165
29166 * Makefile.in (check-consistency): Remove.
29167
8db230f7 291682011-03-18 Jakub Jelinek <jakub@redhat.com>
29169
29170 PR debug/48176
29171 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
29172 arange_table_in_use is 0, but either text_section_used or
29173 cold_text_section_used is true. Don't call it if
29174 !info_section_emitted.
29175
73475e84 291762011-03-18 Anatoly Sokolov <aesok@post.ru>
29177
29178 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
29179 FUNCTION_VALUE_REGNO_P): Remove.
29180 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
29181 Remove.
29182 * config/avr/avr.c (avr_ret_register): Make static inline.
29183 (avr_function_value_regno_p): New function.
29184 (avr_libcall_value): Make static. Add 'func' argument.
29185 (avr_function_value): Make static. Rename 'func' argument to
29186 'fn_decl_or_type', forward it to avr_libcall_value. Call
29187 avr_ret_register function instead of RET_REGISTER macro.
c50e6579 29188 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
73475e84 29189
0a362bb5 291902011-03-18 Jason Merrill <jason@redhat.com>
29191
29192 PR c++/23372
29193 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
29194
5b91c59c 291952011-03-18 Richard Guenther <rguenther@suse.de>
29196
29197 * doc/install.texi (--enable-gold): Remove.
29198 (--with-plugin-ld): Document.
29199 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
29200
7da20978 292012011-03-18 Andrew Pinski <pinskia@gmail.com>
c4532f22 29202
29203 PR middle-end/47790
29204 * expr.c (optimize_bitfield_assignment_op): Revamp to work
29205 again after expansion changes.
29206
54a61993 292072011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
29208
29209 * combine.c (try_combine): Do simplification only call of
29210 subst() on i2 even when i1 is present. Update comments.
29211
ebd1f2ea 292122011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
29213
29214 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
29215 and UNSPEC_PCREL_SYMOFF.
29216
292ce034 292172011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29218
29219 * config/s390/s390.md: Use define_c_enum for the unspec constant
29220 definitions.
29221
88ff2f0d 292222011-03-18 Richard Henderson <rth@redhat.com>
29223 Jakub Jelinek <jakub@redhat.com>
29224
29225 PR bootstrap/48161
29226 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
29227 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
29228
6d0d55a1 292292011-03-17 Anatoly Sokolov <aesok@post.ru>
29230
29231 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
29232 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
29233 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
29234 Change return type to bool.
29235 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
29236
56fe7223 292372011-03-17 Jakub Jelinek <jakub@redhat.com>
29238
e3a8f582 29239 PR debug/48163
29240 * var-tracking.c (prepare_call_arguments): If CALL target
29241 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
29242 pc instead of looking it up using cselib_lookup and use
29243 Pmode for it if x has VOIDmode.
29244 * dwarf2out.c (gen_subprogram_die): If also both first and
29245 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
29246
56fe7223 29247 PR debug/48163
29248 * function.c (assign_parms): For data.passed_pointer parms
29249 use MEM of data.entry_parm instead of data.entry_parm itself
29250 as DECL_INCOMING_RTL.
29251 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
29252 also when passed and declared mode is the same, DECL_RTL
29253 is a MEM with pseudo as address and DECL_INCOMING_RTL is
29254 a MEM too.
29255
be03890a 292562011-03-16 Jeff Law <law@redhat.com>
29257
29258 PR rtl-optimization/37273
29259 * ira-costs.c (scan_one_insn): Detect constants living in memory and
29260 handle them like argument loads from stack slots. Do not double
29261 count memory for memory constants and argument loads from stack slots.
29262
4a55735d 292632011-03-17 H.J. Lu <hongjiu.lu@intel.com>
29264
29265 PR debug/48160
29266 * var-tracking.c (prepare_call_arguments): Check SUBREG.
29267
102a8e0c 292682011-03-17 H.J. Lu <hongjiu.lu@intel.com>
29269
29270 PR target/48171
29271 * config/i386/i386.opt: Add Save to -mavx and -mfma.
29272
2f5e9511 292732011-03-17 Jakub Jelinek <jakub@redhat.com>
29274
3651a95c 29275 PR bootstrap/48153
29276 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
29277 if dwarf_strict.
29278 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
29279 Clear call_arg_locations and call_arg_loc_last always.
29280
2f5e9511 29281 PR middle-end/48152
29282 * var-tracking.c (prepare_call_arguments): If argument needs to be
29283 passed by reference, adjust argtype and mode.
29284
02a562db 292852011-03-17 Richard Guenther <rguenther@suse.de>
29286
29287 PR middle-end/48134
29288 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
29289 a value make sure to fold the statement.
29290
b4344328 292912011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
29292
29293 PR target/43872
29294 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
29295 return condition with !cfun->calls_alloca.
29296
5e9e6543 292972011-03-17 Richard Guenther <rguenther@suse.de>
29298
29299 PR bootstrap/48148
29300 * lto-cgraph.c (input_overwrite_node): Clear the abstract
29301 origin for decls in other ltrans units.
29302 (input_varpool_node): Likewise.
29303
c5c23f27 293042011-03-17 Richard Guenther <rguenther@suse.de>
29305
29306 PR middle-end/48165
29307 * tree-object-size.c (compute_object_offset): Properly return
29308 the offset operand of MEM_REFs as sizetype.
29309
c75be2fe 293102011-03-17 Jakub Jelinek <jakub@redhat.com>
29311
1242bee6 29312 PR rtl-optimization/48141
29313 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
29314 * dse.c: Include params.h.
29315 (active_local_stores_len): New variable.
29316 (add_wild_read, dse_step1): Clear it when setting active_local_stores
29317 to NULL.
29318 (record_store, check_mem_read_rtx): Decrease it when removing
29319 from the chain.
29320 (scan_insn): Likewise. Increase it when adding to chain, if it
29321 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
29322 set active_local_stores to NULL before the addition.
29323 * Makefile.in (dse.o): Depend on $(PARAMS_H).
29324
c75be2fe 29325 PR rtl-optimization/48141
29326 * dse.c (record_store): If no positions are needed in an insn
29327 that cannot be deleted, at least unchain it from active_local_stores.
29328
37b41f90 293292011-03-16 Dodji Seketeli <dodji@redhat.com>
29330
29331 PR debug/47510
29332 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
29333 (lookup_type_die_strip_naming_typedef): ... here.
29334 (get_context_die): Use it.
29335 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
29336 the anonymous struct named by the naming typedef.
29337
4a9c429f 293382011-03-16 H.J. Lu <hongjiu.lu@intel.com>
29339
29340 PR target/48154
29341 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
29342 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
29343
69978c67 293442011-03-16 Jeff Law <law@redhat.com>
29345
29346 * tree-vrp.c (identify_jump_threads): Slightly simplify type
c3fa352f 29347 check for operands of conditional. Allow type to be a pointer.
69978c67 29348
12bf1231 293492011-03-16 Richard Guenther <rguenther@suse.de>
29350
29351 PR tree-optimization/48149
29352 * fold-const.c (fold_binary_loc): Fold
29353 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
29354
8ba0d70d 293552011-03-16 Richard Guenther <rguenther@suse.de>
29356
29357 PR tree-optimization/26134
29358 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
29359 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
29360 (non_rewritable_mem_ref_base): Handle complex type component
29361 accesses, constrain offsets for vector and complex extracts
29362 more properly.
29363
63eb2430 293642011-03-16 Richard Guenther <rguenther@suse.de>
29365
29366 PR tree-optimization/48146
29367 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
29368 operands avoiding the need for renaming.
29369
c701e5d5 293702011-03-16 Richard Guenther <rguenther@suse.de>
29371
29372 * gimple-fold.c (maybe_fold_reference): Open-code relevant
29373 constant folding. Move MEM_REF canonicalization first.
29374 Rely on fold_const_aggregate_ref for initializer folding.
29375 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
29376
c5af5828 293772011-03-16 Jakub Jelinek <jakub@redhat.com>
29378
e55c8585 29379 PR middle-end/48136
29380 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
29381 arg0/arg1 or their arguments are always fold converted to matching
29382 types.
29383
c5af5828 29384 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
29385 to nargs.
29386
c5f741b3 293872011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29388
29389 PR lto/46944
29390 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
29391 Handle in-tree gold.
29392 (ld_vers): Extract binutils version for gold.
29393 (gcc_cv_ld_hidden): Handle gold here.
29394 (gcc_cv_lto_plugin): Determine level of linker plugin support.
29395 * configure: Regenerate.
29396 * config.in: Regenerate.
29397 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
29398 -fuse-linker-plugin otherwise.
29399 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
29400 (LINK_COMMAND_SPEC): Use it.
29401 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
29402
4143d08b 294032011-03-16 Jakub Jelinek <jakub@redhat.com>
29404
18b7c118 29405 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
29406 * calls.c: Remove debug.h include.
29407 (emit_call_1): Don't call virtual_call_token debug hook.
29408 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
29409 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
29410 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
29411 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
29412 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
29413 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
29414 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
29415 dwarf2out_virtual_call): Remove.
29416 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
29417 copy_call_info and virtual_call hooks.
29418 (dwarf2out_init): Don't initialize vcall_insn_table,
29419 debug_dcall_section and debug_vcall_section.
29420 (prune_unused_types): Don't mark nodes from dcall_table.
29421 (dwarf2out_finish): Don't output dcall or vcall tables.
29422 * final.c (final_scan_insn): Don't call direct_call or
29423 virtual_call debug hooks.
29424 * debug.h (struct gcc_debug_hooks): Remove direct_call,
29425 virtual_call_token, copy_call_info and virtual_call hooks.
29426 (debug_nothing_uid): Remove prototype.
29427 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
29428 copy_call_info and virtual_call hooks.
29429 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
29430 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
29431 * debug.c (do_nothing_debug_hooks): Likewise.
29432 (debug_nothing_uid): Remove.
29433 * doc/invoke.texi (-fenable-icf-debug): Remove.
29434 * common.opt (-fenable-icf-debug): Likewise.
29435
57999964 29436 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
29437 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
29438 call's MEM. Handle functions returning aggregate through a hidden
29439 first pointer. For virtual calls add clobbered pc to call arguments
29440 chain.
29441 * dwarf2out.c (gen_subprogram_die): Emit
29442 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
29443 can't be emitted.
29444
a5701bde 29445 PR debug/45882
29446 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
29447 * rtl.h (ENTRY_VALUE_EXP): Define.
29448 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
29449 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
29450 * print-rtl.c (print_rtx): Likewise.
29451 * gengtype.c (adjust_field_rtx_def): Likewise.
29452 * var-tracking.c (vt_add_function_parameter): Adjust
29453 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
29454 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
29455 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
29456 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
29457 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
29458
4143d08b 29459 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
29460 Call var_location debug hook even on CALL_INSNs.
29461 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
29462 * rtl.def (ENTRY_VALUE): New.
29463 * dwarf2out.c: Include cfglayout.h.
29464 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
29465 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
29466 (struct call_arg_loc_node): New type.
29467 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
29468 tail_call_site_count): New variables.
29469 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
29470 DW_TAG_GNU_call_site_parameter.
29471 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
29472 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
29473 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
29474 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
29475 and DW_AT_GNU_all_source_call_sites.
29476 (mem_loc_descriptor): Handle ENTRY_VALUE.
29477 (add_src_coords_attributes): Don't add enything if
29478 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
29479 (dwarf2out_abstract_function): Save and clear call_arg_location,
29480 call_site_count and tail_call_site_count around dwarf2out_decl call.
29481 (gen_call_site_die): New function.
29482 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
29483 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
29484 (dwarf2out_function_decl): Clear call_arg_locations,
29485 call_arg_loc_last, set call_site_count and tail_call_site_count
29486 to -1 and free block_map.
29487 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
29488 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
29489 followed by any real instructions.
29490 (dwarf2out_begin_function): Set call_site_count and
29491 tail_call_site_count to 0.
29492 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
29493 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
29494 attempt to force a DIE for it and worst case remove the attribute.
29495 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
29496 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
29497 the decl itself.
29498 * var-tracking.c: Include tm_p.h.
29499 (vt_stack_adjustments): For calls call note_register_arguments.
29500 (argument_reg_set): New variable.
29501 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
29502 ensure the VALUE is resolved.
29503 (call_arguments): New variable.
29504 (prepare_call_arguments): New function.
29505 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
29506 (struct expand_loc_callback_data): Add ignore_cur_loc field.
29507 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
29508 always use the best expression.
29509 (vt_expand_loc): Add ignore_cur_loc argument.
29510 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
29511 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
29512 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
29513 note for all calls.
29514 (vt_add_function_parameter): Use cselib_lookup_from_insn.
29515 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
29516 argument. Don't call cselib_preserve_only_values and
29517 cselib_reset_table.
29518 (note_register_arguments): New function.
29519 (vt_initialize): Compute argument_reg_set. Call
29520 vt_add_function_parameters before processing basic blocks instead of
29521 afterwards. For calls call prepare_call_arguments before calling
29522 cselib_process_insn.
29523 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
29524 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
29525 (var-tracking.o): Depend on $(TM_P_H).
29526 * cfglayout.h (insn_scope): New prototype.
29527 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
29528 * cfglayout.c (insn_scope): No longer static.
29529 * insn-notes.def (CALL_ARG_LOCATION): New.
29530 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
29531 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
29532 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
29533 nothing for DECL_EXTERNAL BLOCK_VARS.
29534
381d8e21 295352011-03-16 Alan Modra <amodra@gmail.com>
29536
29537 PR target/45844
29538 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
29539 create invalid offset address for vsx splat insn.
29540 * config/rs6000/predicates.md (splat_input_operand): New.
29541 * config/rs6000/vsx.md (vsx_splat_*): Use it.
29542
3751887c 295432011-03-15 Xinliang David Li <davidxl@google.com>
29544
29545 PR c/47837
29546 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
29547 (normalize_preds): New function.
29548 (is_use_properly_guarded): Normalize def predicates.
29549
aabe09ac 295502011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
29551
e6af1b8d 29552 PR target/46788
aabe09ac 29553 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
29554 in the output template.
29555
8eb81823 295562011-03-15 Richard Guenther <rguenther@suse.de>
29557
29558 PR middle-end/47650
29559 * tree-pretty-print.c (dump_function_declaration): Properly
29560 dump unprototyped and varargs function types.
29561
77c7051b 295622011-03-15 Richard Guenther <rguenther@suse.de>
29563
29564 PR tree-optimization/13954
29565 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
29566 and friends.
29567
8a62fbb0 295682011-03-15 Richard Guenther <rguenther@suse.de>
29569
29570 PR tree-optimization/48037
29571 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
29572 selects into BIT_FIELD_REFs.
29573 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
29574 vector select.
29575
1914d98e 295762011-03-15 Jakub Jelinek <jakub@redhat.com>
29577
29578 PR tree-optimization/48129
29579 * builtins.c (fold_builtin_snprintf): Convert to type of
29580 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
29581 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
29582
2109076a 295832011-03-15 Richard Guenther <rguenther@suse.de>
29584
29585 PR tree-optimization/41490
29586 * tree-ssa-dce.c (propagate_necessity): Handle returns without
29587 value but with VUSE.
29588 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
29589 return statements.
29590 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
29591 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
29592 * tree-tailcall.c (find_tail_calls): Ignore returns.
29593
ac5ffdb4 295942011-03-15 Richard Guenther <rguenther@suse.de>
29595
29596 PR middle-end/48031
29597 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
29598 or variable-indexed array accesses when in gimple form.
29599
8d86260d 296002011-03-15 Richard Guenther <rguenther@suse.de>
29601
c3fa352f 29602 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
8d86260d 29603
a93b6189 296042011-03-15 Alan Modra <amodra@gmail.com>
29605
29606 PR target/48032
29607 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
29608 presume symbol_refs without a symbol_ref_decl are suitably
29609 aligned, nor other trees we may see here. Handle anchor symbols.
29610 (legitimate_constant_pool_address_p): Comment. Add mode param.
29611 Check cmodel=medium addresses. Adjust all calls.
29612 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
29613 creating cmodel=medium optimized access to locals.
29614 * config/rs6000/constraints.md (R): Pass QImode to
29615 legitimate_constant_pool_address_p.
29616 * config/rs6000/predicates.md (input_operand): Pass mode to
29617 legitimate_constant_pool_address_p.
29618 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
29619 Update prototype.
29620
86b9699b 296212011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
29622
29623 PR target/48053
29624 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
29625 64-bit constants being loaded into registers other than GPRs such
29626 as loading 0 into a VSX register.
29627
a6d6d956 296282011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29629
c3fa352f 29630 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
a6d6d956 29631
89ec8421 296322011-03-14 Jakub Jelinek <jakub@redhat.com>
29633
750d7b16 29634 PR middle-end/47917
29635 * builtins.c (fold_builtin_snprintf): New function.
29636 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
29637 (fold_builtin_4): Likewise.
29638
36370f11 29639 PR middle-end/38878
29640 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
29641 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
29642 and C - X == X also strip nops from +/-/p+ operand.
29643 When optimizing -X == C, fold C to arg0's type.
29644
89ec8421 29645 PR debug/47946
29646 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
29647 emit it as add_AT_int instead of add_AT_unsigned.
29648
296492011-03-14 Tom Tromey <tromey@redhat.com>
f77bcf96 29650
29651 * unwind-dw2.c: Include sys/sdt.h if it exists.
29652 (_Unwind_DebugHook): Use STAP_PROBE2.
29653 * config.in, configure: Rebuild.
29654 * configure.ac: Check for sys/sdt.h.
29655
475f05b7 296562011-03-14 Uros Bizjak <ubizjak@gmail.com>
29657
29658 * config/i386/i386.md (ROUND_FLOOR): New constant.
29659 (ROUND_CEIL): Ditto.
29660 (ROUND_TRUNC): Ditto.
29661 (ROUND_MXCSR): Ditto.
29662 (ROUND_NO_EXC): Ditto.
29663 (rint<mode>2): Use new defines instead of numerical constants.
29664 (floor<mode>2): Ditto.
29665 (ceil<mode>2): Ditto.
29666 (btrunc<mode>2): Ditto.
29667 * config/i386/i386-builtin-types.def: Define ROUND function type
29668 aliases.
29669 * config/i386/i386.c (enum ix86_builtins): Add
29670 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
29671 (struct builtin_description): Add
29672 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
29673 (ix86_expand_sse_round): New static function.
29674 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
29675 function types.
29676 (ix86_builtin_vectorized_function): Handle
29677 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
29678
88c86c27 296792011-03-14 Tom Tromey <tromey@redhat.com>
29680
29681 * c-parser.c (c_parser_asm_string_literal): Clear
29682 warn_overlength_strings.
29683
4e9eacab 296842011-03-14 Tom Tromey <tromey@redhat.com>
29685
29686 * c-parser.c (disable_extension_diagnostics): Save
29687 warn_overlength_strings.
29688 (restore_extension_diagnostics): Restore warn_overlength_strings.
29689
caec3e67 296902011-03-14 Jakub Jelinek <jakub@redhat.com>
29691
29692 * BASE-VER: Change to 4.7.0.
29693
29928c8f 296942011-03-14 Richard Guenther <rguenther@suse.de>
29695
29696 PR middle-end/48098
29697 * tree.c (build_vector_from_val): Adjust assert to requirements
29698 and reality.
29699
fa4116b9 297002011-03-14 Jakub Jelinek <jakub@redhat.com>
29701
29702 PR bootstrap/48102
475f05b7 29703 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
fa4116b9 29704
48914aa5 297052011-03-14 Andreas Tobler <andreast@fgznet.ch>
29706
dcab66ec 29707 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
48914aa5 29708 terms of target_flags_explicit. Adjust copyright year.
29709
29710 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
29711 * config/rs6000/t-freebsd: New file. Add override for
29712 LIB2FUNCS_EXTRA.
29713
b6b39e83 297142011-03-13 Chris Demetriou <cgd@google.com>
29715
29716 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
29717 (-fno-diagnostics-show-option): this, to reflect current default.
29718 (-Werror=): Update text about -fno-diagnostics-show-option.
29719
54ade85b 297202011-03-12 Peter Bergner <bergner@vnet.ibm.com>
29721
29722 PR target/48053
29723 * config/rs6000/predicates.md (easy_vector_constant_add_self,
29724 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
29725 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
29726 mode is not V2DImode or V2DFmode.
29727 (vspltis_constant): Do not handle V2DImode and V2DFmode.
29728 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
29729 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
29730 registers to 0.
29731 (movdi_internal64): Likewise.
29732
98b9957e 297332011-03-12 Sebastian Pop <sebastian.pop@amd.com>
29734
29735 PR tree-optimization/47127
29736 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
29737 parameter.
29738 (set_cloog_options): Same.
29739 (scop_to_clast): Same.
29740 (print_clast_stmt): Do not call cloog_state_malloc and
29741 cloog_state_free.
29742 (print_generated_program): Same.
29743 (gloog): Same.
29744 * graphite-clast-to-gimple.h (cloog_state): Declared.
29745 (scop_to_clast): Adjust declaration.
29746 * graphite.c (cloog_state): Defined here.
29747 (graphite_initialize): Call cloog_state_malloc.
29748 (graphite_finalize): Call cloog_state_free.
29749
9bf1c74e 297502011-03-11 Jason Merrill <jason@redhat.com>
29751
29752 * attribs.c (lookup_attribute_spec): Take const_tree.
29753 * tree.h: Adjust.
29754
28c3349d 297552011-03-11 Joseph Myers <joseph@codesourcery.com>
29756
29757 * config/sparc/sparc.c (sparc_option_override): Use
29758 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
29759
805ad414 297602011-03-11 Richard Guenther <rguenther@suse.de>
29761
29762 PR tree-optimization/48067
29763 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
29764 multiplication result will be only used once on the target
29765 stmt.
29766
dac8c013 297672011-03-11 Richard Guenther <rguenther@suse.de>
29768
29769 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
29770
9abb7e57 297712011-03-11 Richard Guenther <rguenther@suse.de>
29772
29773 PR lto/48073
29774 * tree.c (find_decls_types_r): Do not walk types only reachable
29775 from IDENTIFIER_NODEs.
29776
5db2ca47 297772011-03-11 Jakub Jelinek <jakub@redhat.com>
29778
29779 PR middle-end/48044
29780 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
29781 all vnode->force_output nodes as needed.
29782
bc7331b6 297832011-03-11 Jason Merrill <jason@redhat.com>
29784
29785 PR c++/48069
29786 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
29787 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
29788
7019fd3f 297892011-03-11 Martin Jambor <mjambor@suse.cz>
29790
29791 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
29792 cgraph_node.
29793
071bc3bd 297942011-03-11 Jakub Jelinek <jakub@redhat.com>
29795
29796 PR tree-optimization/48063
29797 * ipa-inline.c (cgraph_decide_inlining): Don't try to
29798 inline functions called once if !tree_can_inline_p (node->callers).
29799
613a2120 298002011-03-11 Chen Liqin <liqin.gcc@gmail.com>
b8e22756 29801
613a2120 29802 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
29803 extra_objs.
b8e22756 29804 * config/score/score3.c: Delete.
29805 * config/score/score3.h: Delete.
29806 * config/score/mul-div.S: Delete.
29807 * config/score/sfp-machine.h: Add new file.
29808 * config/score/constraints.md: Add new file.
29809 * config/score/t-score-softfp: Add new file.
613a2120 29810 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
b8e22756 29811 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
29812 (score7_extra_constraint): Delete.
613a2120 29813 (score7_option_override): Remove unused code.
b8e22756 29814 * config/score/score.c: Remove score3 and score5 define and code.
29815 * config/score/score.h: Remove score3 and score5 define and code.
613a2120 29816 * config/score/score.md: Remove score3 template and unusual insn.
b8e22756 29817 * config/score/score.opt: Remove score3 and score5 options.
29818
383e9a69 298192011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29820
29821 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
29822 when _HPUX_SOURCE is defined.
29823 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
29824
47c2386f 298252011-03-10 Jason Merrill <jason@redhat.com>
29826
29827 PR c++/48029
29828 * stor-layout.c (layout_type): Don't set structural equality
29829 on arrays of incomplete type.
29830 * tree.c (type_hash_eq): Handle comparing them properly.
29831
54cb44a3 298322011-03-10 Jakub Jelinek <jakub@redhat.com>
29833
29834 PR debug/48043
47c2386f 29835 * config/s390/s390.c (s390_delegitimize_address): Make sure the
54cb44a3 29836 result mode matches original rtl mode.
29837
e3fa4645 298382011-03-10 Nick Clifton <nickc@redhat.com>
29839
29840 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
cf7823c3 29841 (andsi3, andsi3_flags): Fix timings for three operand alternative.
e3fa4645 29842
a7101bd3 298432011-03-09 Jakub Jelinek <jakub@redhat.com>
29844
29845 PR rtl-optimization/47866
29846 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
29847 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
29848 if target wasn't scalar.
29849 * function.c (assign_stack_temp_for_type): Assert that neither
29850 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
29851 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
29852 macro.
29853 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
29854
6d0afa28 298552011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29856
29857 * config/s390/s390-protos.h (s390_label_align): New prototype.
29858 * config/s390/s390.c (s390_label_align): New function.
29859 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
29860
f8c7556f 298612011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
29862
29863 PR target/47755
29864 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
29865 V2DI/V2DF constants. Only all 0's or all 1's are easy.
29866 (output_vec_const_move): Ditto.
29867
53bb95d9 298682011-03-08 Anatoly Sokolov <aesok@post.ru>
29869
29870 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
29871 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
29872 * config/mips/mips.c (mips_preferred_reload_class): Make static.
29873 Change 'rclass' argument and result type to reg_class_t.
29874 (TARGET_PREFERRED_RELOAD_CLASS): Define.
29875
dfc1e3e4 298762011-03-08 Georg-Johann Lay <avr@gjlay.de>
29877
38557452 29878 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
29879 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
29880 (TARGET_MEMORY_MOVE_COST): Define.
29881 (avr_register_move_cost, avr_memory_move_cost): New Functions.
dfc1e3e4 29882
29b369d0 298832011-03-08 Jakub Jelinek <jakub@redhat.com>
29884
7a76e05f 29885 PR debug/47881
29886 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
29887 removed anything.
29888
29b369d0 29889 PR tree-optimization/48022
29890 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
29891 for EQ/NE_EXPR.
29892
88948300 298932011-03-07 Jakub Jelinek <jakub@redhat.com>
29894
29895 PR debug/47991
29896 * var-tracking.c (find_use_val): Return NULL for
29897 cui->sets && cui->store_p BLKmode MEMs.
29898
3d451f7c 298992011-03-07 Anatoly Sokolov <aesok@post.ru>
29900
29901 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
29902 Remove.
29903 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
29904 xstormy16_print_operand_address): Remove.
29905 * config/stormy16/stormy16.c (xstormy16_print_operand,
29906 xstormy16_print_operand_address): Make static.
29907 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
29908
613a2120 299092011-03-07 Pat Haugen <pthaugen@us.ibm.com>
d9350d7a 29910
29911 PR target/47862
29912 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
29913 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
29914 before definition.
29915
68fb4bc0 299162011-03-07 Zdenek Dvorak <ook@ucw.cz>
29917
29918 PR bootstrap/48000
29919 * cfgloopmanip.c (fix_bb_placements): Return immediately
29920 if FROM is BASE_LOOP's header.
29921
6b37ba94 299222011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
29923
29924 * gimplify.c (gimplify_function_tree): Fix building calls
29925 to __builtin_return_address.
29926
7a2d6ba2 299272011-03-07 Alan Modra <amodra@gmail.com>
29928
29929 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
29930 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
29931 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
29932 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
29933 return_mode args.
29934 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
29935 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
29936 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
29937 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
29938 * config/rs6000/rs6000.c
29939 (rs6000_elf_end_indicate_exec_stack): Rename to..
29940 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
29941 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
29942 (rs6000_file_start): ..here.
29943 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
29944 file scope variables.
29945 (call_ABI_of_interest): New function.
29946 (init_cumulative_args): Set above vars when function return value
29947 is a float, vector, or small struct.
29948 (rs6000_function_arg_advance_1): Likewise for function args.
29949 (rs6000_va_start): Set rs6000_passes_float if variable arg function
29950 references float args.
29951
83a53524 299522011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
29953
29954 * doc/cfg.texi: Remove "See" before @ref.
29955 * doc/invoke.texi: Likewise.
29956
e21b716e 299572011-03-05 Jason Merrill <jason@redhat.com>
29958
29959 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
29960
01a092a9 299612011-03-05 Anthony Green <green@moxielogic.com>
29962
29963 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
29964
6e05e600 299652011-03-05 Zdenek Dvorak <ook@ucw.cz>
29966
29967 PR rtl-optimization/47899
29968 * cfgloopmanip.c (fix_bb_placements): Fix first argument
29969 to flow_loop_nested_p when moving the loop upward.
29970
85e02ccb 299712011-03-05 Richard Earnshaw <rearnsha@arm.com>
29972
29973 PR target/47719
29974 * arm.md (movhi_insn_arch4): Accept any immediate constant.
29975
f9e9b574 299762011-03-05 Jakub Jelinek <jakub@redhat.com>
29977
29978 PR tree-optimization/47967
29979 * ipa-cp.c (build_const_val): Return NULL instead of creating
29980 VIEW_CONVERT_EXPR for mismatching sizes.
29981 (ipcp_create_replace_map): Return NULL if build_const_val failed.
29982 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
29983 give up on versioning.
29984
e06d1367 299852011-03-05 Alan Modra <amodra@gmail.com>
29986
29987 PR target/47986
29988 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
29989 full cmodel medium/large lo_sum + high addresses.
29990
cf8ffe7d 299912011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29992
29993 * config/s390/s390.c (s390_decompose_address): Reject non-literal
29994 pool references in UNSPEC_LTREL_OFFSET.
29995
aa29908f 299962011-03-04 Jan Hubicka <jh@suse.cz>
29997
29998 PR lto/47497
29999 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
30000 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
475f05b7 30001 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
30002 Add node pointers.
aa29908f 30003 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
30004 cgraph_add_thunk): Add node pointers.
30005 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
30006 associated to right node.
30007 (input_node): Update use of cgraph_same_body_alias
30008 and cgraph_add_thunk.
30009
3852c2b6 300102011-03-04 Changpeng Fang <changpeng.fang@amd.com>
30011
30012 * config/i386/i386.opt (mprefer-avx128): New flag.
475f05b7 30013 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
30014 modes when the flag -mprefer-avx128 is on.
3852c2b6 30015
3f311b17 300162011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
30017
30018 * dwarf2out.c (compare_loc_operands): Fix address handling.
30019
2c91799f 300202011-03-04 Alan Modra <amodra@gmail.com>
30021
30022 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
30023
d5f2f2c4 300242011-03-04 Richard Guenther <rguenther@suse.de>
30025
30026 PR middle-end/47968
30027 * expmed.c (extract_bit_field_1): Prefer vector modes that
30028 vec_extract patterns can handle.
30029
4ea35dcb 300302011-03-04 Richard Guenther <rguenther@suse.de>
30031
30032 PR middle-end/47975
30033 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
30034
e9c97615 300352011-03-04 Richard Henderson <rth@redhat.com>
30036
30037 * explow.c (emit_stack_save): Remove 'after' parameter.
30038 (emit_stack_restore): Likewise.
30039 * expr.h: Update to match.
30040 * builtins.c, calls.c, stmt.c: Likewise.
30041 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
30042 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
30043 * function.c (expand_function_end): Insert the emit_stack_save
30044 sequence before parm_birth_insn instead of after.
30045
1fda60c6 300462011-03-03 Uros Bizjak <ubizjak@gmail.com>
30047
30048 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
30049 (ssse3_pmaddubsw128): Ditto.
30050 (ssse3_pmaddubsw): Ditto.
30051
f4210abd 300522011-03-03 Steve Ellcey <sje@cup.hp.com>
30053
30054 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
30055
e488c25f 300562011-03-03 Jakub Jelinek <jakub@redhat.com>
30057
9b695a53 30058 PR c/47963
30059 * gimplify.c (omp_add_variable): Only call omp_notice_variable
30060 on TYPE_SIZE_UNIT if it is a DECL.
30061
e488c25f 30062 PR debug/47283
30063 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
30064 first operand is not is_gimple_mem_ref_addr, try to fold it.
30065 If the operand still isn't is_gimple_mem_ref_addr, clear
30066 MEM_EXPR on op0.
30067
9c01641d 300682011-03-03 Richard Guenther <rguenther@suse.de>
30069
30070 PR middle-end/47283
30071 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
30072 match comment.
30073 (refs_may_alias_p_1): For release branches return true if
30074 we are confused by our input.
30075
dc3b3062 300762011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30077
30078 * config/s390/s390.c (s390_function_value): Rename to ...
30079 (s390_function_and_libcall_value): ... this.
30080 (s390_function_value): New function.
30081 (s390_libcall_value): New function.
1fda60c6 30082 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
dc3b3062 30083 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
30084 target macro definitions.
30085 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
30086
5c377a13 300872011-03-02 Joseph Myers <joseph@codesourcery.com>
30088
30089 * config/i386/freebsd64.h (CC1_SPEC): Define.
30090 * config/i386/linux64.h (CC1_SPEC): Define.
30091 * config/i386/x86-64.h (CC1_SPEC): Don't define.
30092
f9fd3680 300932011-03-02 Anatoly Sokolov <aesok@post.ru>
30094
30095 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
30096 Remove.
30097 * config/stormy16/stormy16.c: Include reload.h.
30098 (xstormy16_memory_move_cost): New function.
30099 (TARGET_MEMORY_MOVE_COST): Define.
30100
46313beb 301012011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
30102
30103 PR rtl-optimization/47925
30104 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
30105 with side effects. Remove the more-specific check for volatile asms.
30106
f6b38d5f 301072011-03-02 Alan Modra <amodra@gmail.com>
30108
30109 PR target/47935
30110 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
30111 toc relative addresses for valid offsets.
30112
ffb35eed 301132011-03-01 Richard Guenther <rguenther@suse.de>
30114
30115 PR tree-optimization/47890
30116 * tree-vect-loop.c (get_initial_def_for_induction): Set
30117 related stmt properly.
30118
4525baee 301192011-03-01 Richard Guenther <rguenther@suse.de>
30120
30121 PR lto/47924
30122 * lto-streamer.c (lto_record_common_node): Also register
30123 the canonical type.
30124
f69f16c8 301252011-03-01 Richard Guenther <rguenther@suse.de>
30126
30127 PR lto/46911
30128 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
30129 Do not stream DECL_ABSTRACT_ORIGIN.
30130 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
30131 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
30132 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
30133 Do not stream DECL_ABSTRACT_ORIGIN.
30134 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
30135 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
30136
65bf7507 301372011-02-28 Anatoly Sokolov <aesok@post.ru>
30138
30139 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
30140 FUNCTION_VALUE_REGNO_P): Remove.
50fd5b8b 30141 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
65bf7507 30142 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
30143 Add 'outgoing' argument.
30144 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
30145 function.
30146 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30147 TARGET_FUNCTION_VALUE_REGNO_P): Define.
30148
875ffd1d 301492011-02-28 Kai Tietz <kai.tietz@onevision.com>
30150
30151 PR debug/28047
30152 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
30153 (lookup_filename): Likewise.
50fd5b8b 30154 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
875ffd1d 30155
943d8723 301562011-02-28 Bernd Schmidt <bernds@codesourcery.com>
30157 Jakub Jelinek <jakub@redhat.com>
30158
30159 PR middle-end/47893
30160 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
30161 (assign_stack_local_1): Change last argument type to int.
30162 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
30163 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
50fd5b8b 30164 don't record padding space into frame_space_list nor use those areas.
943d8723 30165 (assign_stack_local): Adjust caller.
30166 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
30167 of assign_stack_local, pass 0 as last argument.
30168 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
30169 callers.
30170
34edf61b 301712011-02-28 Jakub Jelinek <jakub@redhat.com>
30172
cd799492 30173 PR debug/47283
30174 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
30175 Use target address_mode and pointer_mode hooks instead of hardcoded
30176 Pmode and ptr_mode. Handle some simple cases of extending if
30177 POINTERS_EXTEND_UNSIGNED < 0.
30178 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
30179 Call convert_debug_memory_address.
30180 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
30181 convert_debug_memory_address.
30182
34edf61b 30183 PR middle-end/46790
30184 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
30185 * configure: Regenerated.
30186 * config.in: Regenerated.
30187 * varasm.c (default_function_section): Return NULL
50fd5b8b 30188 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
34edf61b 30189
ef725e2a 301902011-02-28 Martin Jambor <mjambor@suse.cz>
30191
30192 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
30193 the description to match the printed values.
30194
a6519462 301952011-02-28 Richard Guenther <rguenther@suse.de>
30196
30197 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
30198 of the copied scope tree.
30199
0695a9f1 302002011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30201
30202 * doc/extend.texi (Function Attributes): Avoid deeply (and
30203 wrongly) nested tables.
30204
776f6fe8 302052011-02-27 Jakub Jelinek <jakub@redhat.com>
30206
30207 PR middle-end/47903
30208 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
30209 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
30210 r isn't op0 nor op1.
30211
dfa3cb1f 302122011-02-23 Georg-Johann Lay <avr@gjlay.de>
30213
30214 * config/avr/avr.md: Remove magic comment for emacs.
30215
db17070c 302162011-02-23 Georg-Johann Lay <avr@gjlay.de>
30217
30218 PR target/45261
30219 * config/avr/avr.c (avr_option_override): Use error on bad options.
30220 (avr_help): New function.
30221 (TARGET_HELP): Define.
30222
1f959902 302232011-02-22 Georg-Johann Lay <avr@gjlay.de>
30224
30225 PR target/42240
30226 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
30227 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
30228
30f499b1 302292011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
30230
30231 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
30232 (ARM Options): Ditto.
30233 (i386 and x86-64 Options): Ditto.
30234 (RX Options): Ditto.
30235 (SPARC Options): Ditto.
30236
0be8ff0a 302372011-02-26 Tijl Coosemans <tijl@coosemans.org>
30238
30239 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
30240 FreeBSD 6 and later. Generally use cpu generic.
30241
80778a8f 302422011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
50fd5b8b 30243
80778a8f 30244 * doc/cpp.texi: Update copyright years.
30245
ba6ea72b 302462011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
a965af21 30247
ba6ea72b 30248 PR target/46898
a965af21 30249 * config/lm32/lm32.md (ashrsi3): Added needed variable.
30250
ba6ea72b 302512011-02-25 Jon Beniston <jon@beniston.com>
a965af21 30252
ba6ea72b 30253 PR target/46898
a965af21 30254 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
30255 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
30256 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
30257 (lm32_block_move_inline): Add type cast to remove warning.
50fd5b8b 30258 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
a965af21 30259 (gen_int_relational): Move declarations to start of function.
30260
96b07a49 302612011-02-25 Eric Botcazou <ebotcazou@adacore.com>
30262
30263 PR tree-optimization/45470
30264 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
30265 can throw internally only.
30266 * tree-vect-stmts.c (vectorizable_call): Likewise.
30267
8fe62af3 302682011-02-24 Anatoly Sokolov <aesok@post.ru>
30269
30270 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
30271 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
30272 * config/stormy16/stormy16-protos.h
30273 (xstormy16_preferred_reload_class): Remove.
30274 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
30275 static. Change 'rclass' argument and return type to reg_class_t.
30276 (TARGET_PREFERRED_RELOAD_CLASS,
30277 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
30278
c7f193a9 302792011-02-24 Richard Guenther <rguenther@suse.de>
30280
30281 * lto-streamer-in.c (input_bb): Do not find referenced vars
30282 in debug statements.
30283
4d7aaf8e 302842011-02-23 Jason Merrill <jason@redhat.com>
30285
30286 * common.opt (fabi-version): Document v5 and v6.
30287
1d9199d5 302882011-02-23 Richard Guenther <rguenther@suse.de>
30289
30290 PR tree-optimization/47849
30291 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
30292
fde5bd5c 302932011-02-23 Jie Zhang <jie@codesourcery.com>
30294
30295 * opts-common.c (decode_cmdline_option): Print empty string
30296 argument as "" in decoded->orig_option_with_args_text.
30297 * gcc.c (execute): Print empty string argument as ""
30298 in the verbose output.
30299 (do_spec_1): Keep empty string argument.
30300
269a3896 303012011-02-23 Nathan Froyd <froydnj@codesourcery.com>
30302
30303 * config.gcc: Declare score-* and crx-* obsolete.
30304
90db8e34 303052011-02-23 Jie Zhang <jie@codesourcery.com>
30306
30307 PR rtl-optimization/47763
30308 * web.c (web_main): Ignore naked clobber when replacing register.
30309
50ff388b 303102011-02-22 Anatoly Sokolov <aesok@post.ru>
30311
30312 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
30313 Remove.
30314
d4bd50d9 303152011-02-22 Sebastian Pop <sebastian.pop@amd.com>
30316
30317 PR doc/47848
30318 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
30319
b8a3bb74 303202011-02-22 Mike Stump <mikestump@comcast.net>
30321
30322 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
30323 assembler.
30324 * configure: Regenerate.
30325
a79c1c05 303262011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
30327
30328 PR rtl-optimization/46002
30329 * ira-color.c (update_copy_costs): Change class intersection
30330 test to reg_class_contents[] test of 'hard_regno'.
30331
93cc2636 303322011-02-21 Joseph Myers <joseph@codesourcery.com>
30333
30334 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
30335 than Driver option.
30336 * config/hpux11.opt (mt): Likewise.
30337 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
30338 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
30339 * config/vax/elf.opt (mno-asm-pic): Likewise.
30340 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
30341
820c090b 303422011-02-21 Mike Stump <mikestump@comcast.net>
30343
30344 PR target/47822
30345 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
30346 tree so we can get save the type.
30347 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
30348 for CFString instead of trying to use past the end of the builtins.
30349 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
30350 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
30351 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
30352 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
30353 Rename to darwin_builtin_cfstring.
30354 (darwin_init_cfstring_builtins): Return the built type.
30355
63bd35a7 303562011-02-21 Uros Bizjak <ubizjak@gmail.com>
30357
30358 PR target/47840
30359 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
30360 (_mm256_insert_epi64): Use _mm_insert_epi64.
30361
e53c7df3 303622011-02-21 Anatoly Sokolov <aesok@post.ru>
30363
30364 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
30365 * config/stormy16/stormy16-protos.h
30366 (xstormy16_mode_dependent_address_p): Remove.
30367 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
30368 Make static. Change return type to bool. Change argument type to
30369 const_rtx. Remove dead code.
30370 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30371
03d20231 303722011-02-21 Richard Guenther <rguenther@suse.de>
30373
30374 PR lto/47820
30375 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
30376 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
30377 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
30378 TUs context.
63bd35a7 30379 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
03d20231 30380 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
30381
b1e3921b 303822011-02-20 Richard Guenther <rguenther@suse.de>
30383
30384 PR lto/47822
30385 * tree.c (free_lang_data_in_decl): Clean builtins from
30386 the TU decl BLOCK_VARS.
63bd35a7 30387
82467e60 303882011-02-19 Alexandre Oliva <aoliva@redhat.com>
30389
30390 PR debug/47620
30391 PR debug/47630
30392 * haifa-sched.c (fix_tick_ready): Skip tick computation
30393 for debug insns.
30394
d892298f 303952011-02-19 Richard Guenther <rguenther@suse.de>
30396
30397 PR lto/47647
30398 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
30399 Remove lazy BLOCK_VARS streaming.
30400 (lto_input_ts_block_tree_pointers): Likewise.
30401 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
30402
8c35683d 304032011-02-19 Joseph Myers <joseph@codesourcery.com>
30404
30405 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
30406
4295c97b 304072011-02-19 Joseph Myers <joseph@codesourcery.com>
30408
30409 * config/i386/biarch32.h, config/i386/mach.h,
30410 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
30411
ff8e131f 304122011-02-19 Jakub Jelinek <jakub@redhat.com>
30413
30414 PR target/47800
30415 * config/i386/i386.md (peephole2 for shift and plus): Use
30416 operands[1] original mode in the first insn.
30417
828a4913 304182011-02-18 Mike Stump <mikestump@comcast.net>
30419
5f41e8fd 30420 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
828a4913 30421
84283c29 304222011-02-18 Jan Hubicka <jh@suse.cz>
30423
30424 PR middle-end/47788
5f41e8fd 30425 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
30426 to zero when the function is not inlinable at all.
84283c29 30427
22c4d420 304282011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30429
30430 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
30431 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
30432 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
30433 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
30434 * config/pa/t-pa64: Likewise.
30435 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
30436
60c10fe6 304372011-02-18 Jakub Jelinek <jakub@redhat.com>
30438
30439 PR driver/47787
30440 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
30441
c7f840ef 304422011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30443
30444 PR target/47792
30445 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
30446
bb10104e 304472011-02-18 Anatoly Sokolov <aesok@post.ru>
30448
30449 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
30450 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
30451 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
30452 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
30453 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
30454 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
30455 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
30456 m32r_load_postinc_p, m32r_store_preinc_predec_p,
30457 m32r_legitimate_address_p): New functions.
30458 * config/m32r/constraints.md (constraint "S"): Don't use
30459 STORE_PREINC_PREDEC_P.
30460 (constraint "U"): Don't use LOAD_POSTINC_P.
30461
6b629457 304622011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
30463
30464 PR rtl-optimization/46178
30465 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
30466 compute ira_hard_regno_cover_class[].
30467
30865946 304682011-02-18 Richard Guenther <rguenther@suse.de>
30469
30470 PR lto/47798
30471 * lto-streamer.h (lto_global_var_decls): Declare.
30472 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
30473 statics for global var processing.
30474
b533d4c1 304752011-02-18 Richard Guenther <rguenther@suse.de>
30476
30477 PR tree-optimization/47737
30478 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
30479 edge dominance check.
30480
ce6d059c 304812011-02-18 Jakub Jelinek <jakub@redhat.com>
30482
30483 PR debug/47780
30484 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
30485 avoid invalid rtx sharing.
30486
159581d2 304872011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
30488
30489 * doc/cpp.texi (Obsolete Features): Add background on the
30490 origin of assertions.
30491
267785bc 304922011-02-17 Iain Sandoe <iains@gcc.gnu.org>
30493
30494 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
63bd35a7 30495 objc_abi == 2.
267785bc 30496 * config/darwin.c (output_objc_section_asm_op): Added support for
30497 ABI v1 and v2.
30498 (is_objc_metadata): New.
30499 (darwin_objc2_section): New.
30500 (darwin_objc1_section): New.
30501 (machopic_select_section): Added support for ABI v1 and v2.
30502 (darwin_emit_objc_zeroed): New.
30503 (darwin_output_aligned_bss): Detect objc metadata and treat it
30504 appropriately.
30505 (darwin_asm_output_aligned_decl_common): Same.
30506 (darwin_asm_output_aligned_decl_local): Same.
30507 * config/darwin-sections.def: Updated for ABI v1 and v2.
30508 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
30509 compiling Objective-C code for the NeXT runtime, default to using
30510 ABI version 0 for 32-bit, and version 2 for 64-bit.
30511
d2807aa3 305122011-02-17 Joseph Myers <joseph@codesourcery.com>
30513
30514 * common.opt (optimize_fast): New Variable.
30515 * opts.c (default_options_optimization): Use opts->x_optimize_fast
30516 instead of local variable ofast.
30517
29cf2335 305182011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
30519
30520 * doc/invoke.texi (fobjc-abi-version): Documented.
30521 (fobjc-nilcheck): Documented.
30522 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
30523 version.
30524
455188e9 305252011-02-17 Joseph Myers <joseph@codesourcery.com>
30526
30527 PR driver/47390
30528 * common.opt (export-dynamic): New Driver option.
30529 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
30530
e29d44c5 305312011-02-17 Joseph Myers <joseph@codesourcery.com>
30532
30533 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
30534
649597af 305352011-02-17 Alexandre Oliva <aoliva@redhat.com>
30536 Jan Hubicka <jh@suse.cz>
30537
30538 PR debug/47106
30539 PR debug/47402
30540 * cfgexpand.c (account_used_vars_for_block): Remove.
30541 (estimated_stack_frame_size): Use referenced vars.
30542 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
30543 that were referenced in the original function. Test src_fn
30544 rather than cfun. Drop redundant get_var_ann.
30545 (setup_one_parameter): Drop redundant get_var_ann.
30546 (declare_return_variable): Likewise.
30547 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
30548 (copy_arguments_for_versioning): Drop redundant get_var_ann.
30549 * ipa-inline.c (compute_inline_parameters): Do not compute
30550 disregard_inline_limits here.
649597af 30551 (compute_inlinable_for_current, pass_inlinable): New.
30552 (pass_inline_parameters): Require PROP_referenced_vars.
30553 * cgraphunit.c (cgraph_process_new_functions): Don't run
63bd35a7 30554 compute_inline_parameters explicitly unless function is in SSA form.
649597af 30555 (cgraph_analyze_function): Set .disregard_inline_limits.
30556 * tree-sra.c (convert_callers): Compute inliner parameters
30557 only for functions already in SSA form.
30558
c146feab 305592011-02-17 Joseph Myers <joseph@codesourcery.com>
30560
30561 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
30562 -mlittle-endian-data.
30563
b13e238b 305642011-02-17 Joseph Myers <joseph@codesourcery.com>
30565
30566 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
30567 -mno-fpu, not -fpu and -no-fpu.
30568 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
30569 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
30570
9fd3a486 305712011-02-17 Uros Bizjak <ubizjak@gmail.com>
30572
30573 PR target/43653
30574 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
30575 input reload with PLUS RTX.
30576
358db628 305772011-02-16 Joseph Myers <joseph@codesourcery.com>
30578
30579 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
30580 of InverseVar(MDMX).
30581
3032caa3 305822011-02-16 Joseph Myers <joseph@codesourcery.com>
30583
30584 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
30585 --m4-340.
30586
4b23df5b 305872011-02-16 Joseph Myers <joseph@codesourcery.com>
30588
30589 * config/mn10300/mn10300.opt (mno-crt0): New.
30590
10c4d368 305912011-02-16 Joseph Myers <joseph@codesourcery.com>
30592
30593 * config/m68k/uclinux.opt (static-libc): New Driver option.
30594
01440cd1 305952011-02-16 Joseph Myers <joseph@codesourcery.com>
30596
30597 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
30598
efe49cb9 305992011-02-16 Joseph Myers <joseph@codesourcery.com>
30600
30601 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
30602 %{muser-extend-enabled}.
30603
e5d5c850 306042011-02-16 Richard Guenther <rguenther@suse.de>
30605
30606 PR tree-optimization/47738
30607 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
30608 the TODO from tree_predictive_commoning.
30609
18669cea 306102011-02-15 Jeff Law <law@redhat.com>
30611
30612 Revert
30613 2011-01-25 Jeff Law <law@redhat.com>
30614
30615 PR rtl-optimization/37273
30616 * ira-costs.c (scan_one_insn): Detect constants living in memory and
30617 handle them like argument loads from stack slots. Do not double
30618 count memory for memory constants and argument loads from stack slots.
30619
4252f7fe 306202011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
30621
30622 PR target/47755
30623 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
30624 mode for vector constants. Remove code that checks for TImode.
30625
22bbc9c1 306262011-02-15 Alexandre Oliva <aoliva@redhat.com>
30627
30628 PR debug/47106
30629 PR debug/47402
30630 * cgraph.h (compute_inline_parameters): Return void.
30631 * ipa-inline.c (compute_inline_parameters): Adjust.
30632
970270ba 306332011-02-15 Alexandre Oliva <aoliva@redhat.com>
30634
30635 PR debug/47106
30636 PR debug/47402
30637 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
30638 rather than decl.
30639 * cfgexpand.c (estimated_stack_frame_size): Likewise.
30640 * ipa-inline.c (compute_inline_parameters): Adjust.
30641
a23e00ae 306422011-02-15 Alexandre Oliva <aoliva@redhat.com>
30643
30644 PR debug/47106
30645 PR debug/47402
30646 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
30647 Adjust all users. Pass FN to...
30648 * tree-flow-inline.h (first_referenced_var): ... this. Add
30649 fn argument.
30650 * ipa-struct-reorg.c: Adjust.
30651 * tree-dfa.c: Adjust.
30652 * tree-into-ssa.c: Adjust.
30653 * tree-sra.c: Adjust.
30654 * tree-ssa-alias.c: Adjust.
30655 * tree-ssa-live.c: Adjust.
30656 * tree-ssa.c: Adjust.
30657 * tree-ssanames.c: Adjust.
30658 * tree-tailcall.c: Adjust.
30659
29e4566c 306602011-02-15 Alexandre Oliva <aoliva@redhat.com>
30661
30662 PR debug/47106
30663 PR debug/47402
30664 * tree-flow.h (referenced_var_lookup): Add fn parameter.
30665 Adjust all callers.
30666 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
30667 * tree-flow-inline.h: Adjust.
30668 * gimple-pretty-print.c: Adjust.
30669 * tree-into-ssa.c: Adjust.
30670 * tree-ssa.c: Adjust.
30671 * cfgexpand.c: Adjust.
30672
8ba7ed0c 306732011-02-15 Nathan Froyd <froydnj@codesourcery.com>
30674
9fd3a486 30675 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
30676 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30677 (EXTRA_CONSTRAINT): Delete.
30678 * config/iq2000/constraints.md: New file.
30679 * config/iq2000/iq2000.md: Include it.
8ba7ed0c 30680 (define_insn ""): Delete.
30681 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
30682 unsupported constraint letters from patterns.
30683 (call_value, call_value_internal1): Likewise.
30684 (call_value_multiple_internal1): Likewise.
30685
e7076c21 306862011-02-15 Nick Clifton <nickc@redhat.com>
30687
30688 * config/mn10300/mn10300.c: Include tm-constrs.h.
30689 (struct liw_data): New data structure describing an LIW candidate
30690 instruction.
30691 (extract_bundle): Use struct liw_data. Allow small integer
30692 operands for some instructions.
30693 (check_liw_constraints): Use struct liw_data. Remove swapped
30694 parameter. Add comments describing the checks. Fix bug when
30695 assigning the source of liw1 to the source of liw2.
30696 (liw_candidate): Delete. Code moved into extract_bundle.
30697 (mn10300_bundle_liw): Use struct liw_data. Check constraints
30698 before swapping.
30699 * config/mn10300/predicates.md (liw_operand): New predicate.
30700 Allows registers and small integer constants.
30701 * config/mn10300/constraints.md (O): New constraint. Accetps
30702 integers in the range -8 to +7 inclusive.
30703 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
30704 for moving a small integer into a register. Give this alternative
30705 LIW attributes.
30706 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
30707 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
30708 using the J,K,L and M constraints,
30709 (liw): Remove SI mode on second operands to allow for HI and QI
30710 mode values.
30711 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
30712 instruction.
30713
80b5fa01 307142011-02-15 Richard Guenther <rguenther@suse.de>
30715
30716 PR tree-optimization/47743
30717 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
30718 for a non-type-compatible VN lookup bail out.
30719
a81ae224 307202011-02-15 Nathan Froyd <froydnj@codesourcery.com>
30721
30722 * config/fr30/constraints.md: New file.
30723 * config/fr30/fr30.md: Include it.
30724 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
30725 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30726 (EXTRA_CONSTRAINT): Delete.
30727
759348d2 307282011-02-15 Nathan Froyd <froydnj@codesourcery.com>
30729
30730 * config/frv/constraints.md: New file.
30731 * config/frv/predicates.md: Include it.
30732 * config/frv/frv.c (reg_class_from_letter): Delete.
30733 (frv_option_override): Don't initialize it.
30734 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
30735 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
30736 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
30737 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
30738 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
30739 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30740 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
30741 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
30742 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
30743 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
30744 (REG_CLASS_FROM_CONSTRAINT): Delete.
30745
29fe2e47 307462011-02-15 Jakub Jelinek <jakub@redhat.com>
30747
30748 PR middle-end/47581
30749 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
30750 if frame size is 0 in a leaf function.
30751
2ffa7c6a 307522011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30753
30754 PR pch/14940
30755 * config/alpha/host-osf.c: New file.
30756 * config/alpha/x-osf: New file.
30757 * config.host (alpha*-dec-osf*): Use it.
30758
5afe50d9 307592011-02-14 Anatoly Sokolov <aesok@post.ru>
30760
30761 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
30762 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
30763 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
30764 (rx_mode_dependent_address_p): ...this. Make static. Change argument
30765 type to const_rtx.
30766 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30767
ee34ed40 307682011-02-14 Nathan Froyd <froydnj@codesourcery.com>
30769
30770 * config/stormy16/constraints.md: New file.
30771 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
30772 Use satisfies_constraint_Q and satisfies_constraint_R.
30773 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
30774 Delete.
30775 (xstormy16_legitiamte_address_p): Declare.
30776 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
30777 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30778 (EXTRA_CONSTRAINT): Delete.
9fd3a486 30779 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
ee34ed40 30780 Un-staticize.
30781 (xstormy16_extra_constraint_p): Delete.
30782
a2676c4f 307832011-02-14 Eric Botcazou <ebotcazou@adacore.com>
30784
30785 PR tree-optimization/46494
30786 * loop-unroll.c (split_edge_and_insert): Adjust comment.
30787 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
30788 (pass_rtl_loop_done): Add TODO_verify_flow.
30789 * fwprop.c (pass_rtl_fwprop): Likewise.
30790 * modulo-sched.c (pass_sms): Likewise.
30791 * tree-ssa-dom.c (pass_dominator): Likewise.
30792 * tree-ssa-loop-ch.c (pass_ch): Likewise.
30793 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
30794 (pass_tree_loop_done): Likewise.
30795 * tree-ssa-pre.c (execute_pre): Likewise.
30796 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
30797 * tree-ssa-sink.c (pass_sink_code): Likewise.
30798 * tree-vrp.c (pass_vrp): Likewise.
30799
48fd9d16 308002011-02-14 Nathan Froyd <froydnj@codesourcery.com>
30801
a2676c4f 30802 * config/v850/constraints.md: New file.
30803 * config/v850/v850.md: Include it.
30804 * config/v850/predicates.md (reg_or_0_operand): Use
30805 satisfies_constraint_G.
30806 (special_symbolref_operand): Use satisfies_constraint_K.
30807 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
30808 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
30809 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
30810 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
30811 (EXTRA_CONSTRAINT): Delete.
30812 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
30813 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
30814 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
48fd9d16 30815
b1db1470 308162011-02-14 Anatoly Sokolov <aesok@post.ru>
30817
30818 PR target/47696
30819 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
30820 description.
30821
e11f7186 308222011-02-14 Nathan Froyd <froydnj@codesourcery.com>
30823
30824 * config/mcore/constraints.md: New file.
30825 * config/mcore/mcore.md: Include it.
30826 * config/mcore/mcore.c (reg_class_from_letter): Delete.
30827 * config/mcore/mcore.h (reg_class_from_letter): Delete.
30828 (REG_CLASS_FROM_LETTER): Delete.
30829 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
30830 insn_const_int_ok_for_constraint.
30831 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
30832 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
30833 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30834 (EXTRA_CONSTRAINT): Delete.
30835
96727600 308362011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30837
30838 PR ada/41929
30839 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
30840 (IS_SIGHANDLER): Define.
30841 (sparc64_is_sighandler): New function, split off from
30842 sparc64_fallback_frame_state.
30843 (sparc_is_sighandler): New function, split off from
30844 sparc_fallback_frame_state.
30845 (sparc64_fallback_frame_state): Merge with ...
30846 (sparc_fallback_frame_state): ... this into ...
30847 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
9fd3a486 30848 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
30849 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
30850 stack instead of hardcoded offsets.
96727600 30851
9fd3a486 308522011-02-14 Andriy Gapon <avg@freebsd.org>
54a8b32d 30853
30854 PR target/45808
30855 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
30856
4b20b68c 308572011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30858
30859 * configure: Regenerate.
30860
a4a58ea8 308612011-02-12 Joseph Myers <joseph@codesourcery.com>
30862
30863 PR driver/45731
30864 * gcc.c (asm_options): Correct spec matching --target-help.
30865
c2b7e854 308662011-02-12 Martin Jambor <mjambor@suse.cz>
30867
30868 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
30869 to gimple call error.
30870
ffad481e 308712011-02-12 Mike Stump <mikestump@comcast.net>
30872
30873 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
30874 comments in backslash regions.
30875
c854f114 308762011-02-12 Mike Stump <mikestump@comcast.net>
30877 Jakub Jelinek <jakub@redhat.com>
30878 Iain Sandoe <iains@gcc.gnu.org>
30879
30880 PR target/47324
30881 * dwarf2out.c (output_cfa_loc): When required, apply the
30882 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
30883 (output_loc_sequence): Likewise.
30884 (output_loc_operands_raw): Likewise.
30885 (output_loc_sequence_raw): Likewise.
30886 (output_cfa_loc): Likewise.
30887 (output_loc_list): Suppress register number adjustment when
30888 calling output_loc_sequence()
30889 (output_die): Likewise.
30890
156d021f 308912011-02-12 Anatoly Sokolov <aesok@post.ru>
30892
30893 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
30894 Remove macros.
30895 * config/xtensa/xtensa.c (xtensa_register_move_cost,
30896 xtensa_memory_move_cost): New functions.
30897 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
30898
98de5262 308992011-02-12 Alexandre Oliva <aoliva@redhat.com>
30900
30901 PR lto/47225
30902 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
30903 in the current directory.
30904 * configure: Rebuilt.
30905
5886e9ab 309062011-02-12 Iain Sandoe <iains@gcc.gnu.org>
30907
30908 * config/darwin.c (darwin_override_options): Add a hunk missed
9fd3a486 30909 from the commit of r168571. Trim comment line lengths and
5886e9ab 30910 correct indents of the preceding block.
30911
accf4556 309122011-02-12 Iain Sandoe <iains@gcc.gnu.org>
30913
30914 * gcc.c (driver_handle_option): Concatenate the argument to -F with
30915 the switch.
30916
286f96fe 309172011-02-11 Joseph Myers <joseph@codesourcery.com>
30918
30919 * common.opt (nostartfiles): New Driver option.
30920
0c2b2fc8 309212011-02-11 Xinliang David Li <davidxl@google.com>
30922
30923 PR tree-optimization/47707
30924 * tree-chrec.c (convert_affine_scev): Keep type precision.
30925
892c141e 309262011-02-11 Eric Botcazou <ebotcazou@adacore.com>
30927
30928 PR tree-optimization/47420
30929 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
30930
309312011-02-11 Pat Haugen <pthaugen@us.ibm.com>
017b7047 30932
30933 PR rtl-optimization/47614
30934 * rtl.h (check_for_inc_dec): Declare.
30935 * dse.c (check_for_inc_dec): Externalize...
30936 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
30937 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
30938
5585cfe8 309392011-02-11 Joseph Myers <joseph@codesourcery.com>
30940
30941 PR driver/47678
30942 * gcc.c (main): Do not compile inputs if there were errors in
30943 option handling.
30944 * opts-common.c (read_cmdline_option): Check for wrong language
30945 after other error checks.
30946
0a10fd82 309472011-02-11 Nathan Froyd <froydnj@codesourcery.com>
30948
30949 * cgraph.c: Fix comment typos.
30950 * cgraph.h: Likewise.
30951 * cgraphunit.c: Likewise.
30952 * ipa-cp.c: Likewise.
30953 * ipa-inline.c: Likewise.
30954 * ipa-prop.c: Likewise.
30955 * ipa-pure-const.c: Likewise.
30956 * ipa-ref.c: Likewise.
30957 * ipa-reference.c: Likewise.
30958
db16e52d 309592011-02-11 Jakub Jelinek <jakub@redhat.com>
30960
58dcd970 30961 PR debug/47684
30962 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
db16e52d 30963
26ece10c 309642011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30965
30966 PR testsuite/47400
30967 * doc/sourcebuild.texi (Require Support): Document
30968 dg-require-ascii-locale.
30969
9d320e9e 309702011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
30971
30972 * doc/lto.texi (Write summary): Fix missing parentheses.
30973
45bba533 309742011-02-10 DJ Delorie <dj@redhat.com>
30975
30976 * config/m32c/m32c.c (m32c_option_override): Disable
30977 -fcombine-stack-adjustments until flag value tracking and compare
30978 optimization can be rewritten.
30979
bcc2fca8 309802011-02-10 Peter Bergner <bergner@vnet.ibm.com>
30981
30982 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
30983 PROCESSOR_POWER7.
30984 (PROCESSOR_DEFAULT64): Likewise.
30985
24ad6c43 309862011-02-10 Richard Henderson <rth@redhat.com>
30987
30988 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
30989 change from 2011-02-03.
30990 * config/rx/rx.c (flags_from_code): Likewise.
30991 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
30992 is valid, n/pz otherwise.
30993 (rx_select_cc_mode): Return CCmode if Y is not zero.
30994
02b63808 309952011-02-10 Richard Guenther <rguenther@suse.de>
30996
5b0332ff 30997 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
02b63808 30998
b1296be0 309992011-02-10 Richard Guenther <rguenther@suse.de>
31000
31001 PR tree-optimization/47677
31002 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
31003
952f9aab 310042011-02-10 Jakub Jelinek <jakub@redhat.com>
31005
31006 PR target/47665
31007 * combine.c (make_compound_operation): Only change shifts into
31008 multiplication for SCALAR_INT_MODE_P.
31009
de963f40 310102011-02-10 Jie Zhang <jie@codesourcery.com>
31011
31012 PR testsuite/47622
31013 Revert
31014 2011-02-05 Jie Zhang <jie@codesourcery.com>
31015 PR debug/42631
31016 * web.c (entry_register): Don't clobber the number of the
31017 first uninitialized reference in used[].
31018
1292392a 310192011-02-09 Richard Guenther <rguenther@suse.de>
31020
31021 PR tree-optimization/47664
31022 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
31023 all edges again.
31024
5231b132 310252011-02-09 David Edelsohn <dje.gcc@gmail.com>
31026
8f9d4e4d 31027 PR target/46481
31028 PR target/47032
5231b132 31029 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
31030 PROCESSOR_POWER7.
31031 (PROCESSOR_DEFAULT64): Same.
31032 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
31033
1a680d32 310342011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31035
31036 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
31037
f21e6d7c 310382011-02-09 Martin Jambor <mjambor@suse.cz>
31039
31040 PR middle-end/45505
31041 * tree-sra.c (struct access): New flags grp_scalar_read and
31042 grp_scalar_write. Changed description of assignment read and write
31043 flags.
31044 (dump_access): Dump new flags, reorder all of them.
31045 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
31046 to detect multiple scalar reads.
31047 (analyze_access_subtree): Use the new scalar read write flags instead
31048 of the old flags. Adjusted comments.
31049
ee5533ba 310502011-02-08 DJ Delorie <dj@redhat.com>
31051
31052 PR target/47548
31053 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
31054 patterns.
31055
99c2a9e3 310562011-02-08 Joseph Myers <joseph@codesourcery.com>
31057
31058 * config/m68k/uclinux.opt: New.
31059 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
31060
400e0edf 310612011-02-08 Joseph Myers <joseph@codesourcery.com>
31062
31063 * config/cris/elf.opt (sim): New Driver option.
31064
b0a67e36 310652011-02-08 Joseph Myers <joseph@codesourcery.com>
31066
31067 * config/xtensa/elf.opt: New.
31068 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
31069
6b9d66b3 310702011-02-08 Joseph Myers <joseph@codesourcery.com>
31071
31072 * config/vax/elf.opt: New.
31073 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
31074
19e04b72 310752011-02-08 Joseph Myers <joseph@codesourcery.com>
31076
31077 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
31078
55d8cecf 310792011-02-08 Joseph Myers <joseph@codesourcery.com>
31080
31081 * config/gnu-user.opt: New.
31082 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
31083 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
31084 *-*-uclinux*): Use gnu-user.opt.
31085
143c96ad 310862011-02-08 Thomas Schwinge <thomas@schwinge.name>
31087
31088 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
31089 * config/i386/gnu.h (CPP_SPEC): Likewise.
31090
ecee1b29 310912011-02-08 Ian Lance Taylor <iant@google.com>
31092
31093 * common.opt (fcx-limited-range): Add SetByCombined flag.
31094 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
31095 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
31096 (fassociative-math, freciprocal-math): Likewise.
31097 (funsafe-math-optimizations): Likewise.
31098 * opth-gen.awk: Handle SetByCombined.
31099 * optc-gen.awk: Likewise.
5b0332ff 31100 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
ecee1b29 31101 (set_unsafe_math_optimizations_flags): Likewise.
31102 * doc/options.texi (Option properties): Document SetByCombined.
31103
a7359760 311042011-02-08 Joseph Myers <joseph@codesourcery.com>
31105
31106 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
31107 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
31108 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
31109 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
31110 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
31111
2528d7cf 311122011-02-08 Sebastian Pop <sebastian.pop@amd.com>
31113
31114 PR tree-optimization/46834
31115 PR tree-optimization/46994
31116 PR tree-optimization/46995
31117 * graphite-sese-to-poly.c (used_outside_reduction): New.
31118 (detect_commutative_reduction): Call used_outside_reduction.
31119 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
31120 translate_scalar_reduction_to_array only when at least one
31121 loop-phi/close-phi tuple has been detected.
31122
82f9a36f 311232011-02-08 Richard Guenther <rguenther@suse.de>
31124
31125 PR middle-end/47639
31126 * tree-vect-generic.c (expand_vector_operations_1): Update
31127 stmts here ...
31128 (expand_vector_operations): ... not here. Cleanup EH info
31129 and the CFG if required.
31130
ef618bb8 311312011-02-08 Richard Guenther <rguenther@suse.de>
31132
31133 PR tree-optimization/47641
31134 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
31135 require type compatibility.
31136
417a43d7 311372011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31138
31139 * gimple-low.c (lower_function_body): Don't remove the location of
31140 the return statement here.
31141 (lower_gimple_return): Do it here instead but only if the return
31142 statement is actually used twice.
31143
5d2361b0 311442011-02-08 Richard Guenther <rguenther@suse.de>
31145
31146 PR tree-optimization/47632
31147 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
31148 unused up_to_stmt parameter, return whether cfg-cleanup is
31149 necessary, remove EH info properly.
31150 (forward_propagate_into_gimple_cond): Adjust caller.
31151 (forward_propagate_into_cond): Likewise.
31152 (forward_propagate_comparison): Likewise.
31153 (tree_ssa_forward_propagate_single_use_vars): Make
31154 forward_propagate_comparison case similar to the two others.
31155
f9e46c25 311562011-02-08 Nick Clifton <nickc@redhat.com>
31157
31158 * config/mn10300/mn10300.opt (mliw): New command line option.
31159 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
31160 (liw_bundling): New automaton.
31161 (liw): New attribute.
31162 (liw_op): New attribute.
31163 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
31164 (movsi_internal): Add LIW attributes.
31165 (andsi3): Likewise.
31166 (iorsi3): Likewise.
31167 (xorsi3): Likewise.
31168 (addsi3): Separate register and immediate alternatives.
31169 Add LIW attributes.
31170 (subsi3): Likewise.
31171 (cmpsi): Likewise.
31172 (aslsi3): Likewise.
31173 (lshrsi3): Likewise.
31174 (ashrsi3): Likewise.
31175 (liw): New pattern.
31176 * config/mn10300/mn10300.c (liw_op_names): New
31177 (mn10300_print_operand): Handle 'W' operand descriptor.
31178 (extract_bundle): New function.
31179 (check_liw_constraints): New function.
31180 (liw_candidate): New function.
31181 (mn10300_bundle_liw): New function.
31182 (mn10300_reorg): New function.
31183 (TARGET_MACHINE_DEPENDENT_REORG): Define.
31184 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
31185 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
31186 __LIW__ or __NO_LIW__.
31187 * doc/invoke.texi: Describe the -mliw command line option.
31188
dfdc9106 311892011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31190
31191 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
31192 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
31193 pthread_mutex_unlock): Remove.
31194 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
31195 * config/pa/t-pa64: Likewise.
31196 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
31197 shared libc if not linking against libpthread.
31198 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
31199
f52cfb2b 312002011-02-07 Iain Sandoe <iains@gcc.gnu.org>
31201
31202 PR target/47558
31203 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
31204 on 10.6 and later to ensure that we always use the unwinder from
31205 the system. Only add -no_compact_unwind when tarteting darwin
31206 10.6 or later.
31207
ce519b06 312082011-02-07 Steve Ellcey <sje@cup.hp.com>
31209
31210 PR target/46997
31211 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
31212 (vec_interleave_lowv2sf): Ditto.
31213 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
31214 (vec_extract_oddv2sf): Ditto.
31215
f6829196 312162011-02-07 Mike Stump <mikestump@comcast.net>
31217
dc9a6d82 31218 PR target/42333
f6829196 31219 Add __ieee_divdc3 entry point.
31220 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
31221 entry point.
31222 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
31223 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
31224 * config/darwin.c (darwin_rename_builtins): Add.
31225 * config/darwin-protos.h (darwin_rename_builtins): Add.
31226
029247e8 312272011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
31228
31229 PR target/47636
31230 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
31231 for the condition.
31232
80fcd515 312332011-02-07 Mike Stump <mikestump@comcast.net>
31234
5b0332ff 31235 * config/darwin.opt (mmacosx-version-min): Update default OS version.
80fcd515 31236
0d6ffd24 312372011-02-07 Denis Chertykov <chertykov@gmail.com>
31238
31239 PR target/47534
31240 * config/avr/libgcc.S (exit): Move .endfunc
31241
8f190c8a 312422011-02-07 Richard Guenther <rguenther@suse.de>
31243
31244 PR tree-optimization/47615
31245 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
31246 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
31247 (run_scc_vn): Initialize it.
31248 (visit_reference_op_load): Use it.
31249 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
31250
5825ec3f 312512011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31252
31253 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
31254 DImode trapping arithmetic libfuncs.
31255
b88d109e 312562011-02-07 Richard Guenther <rguenther@suse.de>
31257
31258 PR tree-optimization/47621
31259 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
31260 two duplicates ...
31261 (execute_update_addresses_taken): ... here. Make it more
31262 conservative in what we accept.
31263
9c9946f1 312642011-02-06 Joseph Myers <joseph@codesourcery.com>
31265
31266 * config/sparc/freebsd.h (ASM_SPEC): Define.
31267 * config/sparc/vxworks.h (ASM_SPEC): Define.
31268
c2c533dd 312692011-02-06 Joseph Myers <joseph@codesourcery.com>
31270
31271 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
31272
3636b47c 312732011-02-06 Steven Bosscher <steven@gcc.gnu.org>
31274
31275 * doc/invoke.texi: Remove reference to compiler internals from
31276 user documentation.
31277
31278 * reg-notes.def: Remove REG_VALUE_PROFILE.
31279 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
31280
77e22628 312812011-02-05 Jakub Jelinek <jakub@redhat.com>
31282
31283 PR middle-end/47610
31284 * varasm.c (default_section_type_flags): If decl is NULL,
2e8ba7b3 31285 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
77e22628 31286
51a13f08 312872011-02-05 Jie Zhang <jie@codesourcery.com>
31288
31289 PR debug/42631
31290 * web.c (entry_register): Don't clobber the number of the
31291 first uninitialized reference in used[].
31292
ba3fc4d0 312932011-02-04 Sebastian Pop <sebastian.pop@amd.com>
31294
31295 PR tree-optimization/46194
31296 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
31297 (build_classic_dist_vector_1): Do not represent classic distance
31298 vectors when the access functions are variating in different loops.
31299
a1073f2a 313002011-02-04 Joseph Myers <joseph@codesourcery.com>
31301
31302 * config/mips/iris6.opt: New.
31303 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
31304
0cbc5fc8 313052011-02-04 Richard Henderson <rth@redhat.com>
31306 Steve Ellcey <sje@cup.hp.com>
31307
31308 PR target/46997
31309 * config/ia64/predicates.md (mux1_brcst_element): New.
31310 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
31311 * config/ia64/ia64.c (ia64_unpack_assemble): New.
31312 (ia64_unpack_sign): New.
31313 (ia64_expand_unpack): Rewrite using new routines.
31314 (ia64_expand_widen_sum): Ditto.
31315 (ia64_expand_dot_prod_v8qi): Ditto.
31316 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
31317 routines, add endian check.
31318 (pmpy2_even): Rename from pmpy2_r, add endian check.
31319 (pmpy2_odd): Rename from pmpy2_l, add endian check.
31320 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
31321 (vec_widen_smult_hi_v4hi): Ditto.
31322 (vec_widen_umult_lo_v4hi): Ditto.
31323 (vec_widen_umult_hi_v4hi): Ditto.
31324 (mulv2si3): Change endian checks.
31325 (sdot_prodv4hi): Rewrite with new calls.
31326 (udot_prodv4hi): New.
31327 (vec_pack_ssat_v4hi): Add endian check.
31328 (vec_pack_usat_v4hi): Ditto.
31329 (vec_pack_ssat_v2si): Ditto.
31330 (max1_even): Rename from max1_r, add endian check.
31331 (max1_odd): Rename from max1_l, add endian check.
31332 (*mux1_rev): Format change.
31333 (*mux1_mix): Ditto.
31334 (*mux1_shuf): Ditto.
31335 (*mux1_alt): Ditto.
31336 (*mux1_brcst_v8qi): Use new predicate.
31337 (vec_extract_evenv8qi): Remove endian check.
31338 (vec_extract_oddv8qi): Ditto.
31339 (vec_interleave_lowv4hi): Format change.
31340 (vec_interleave_highv4hi): Ditto.
31341 (mix2_even): Rename from mix2_r, add endian check.
31342 (mix2_odd): Rename from mux2_l, add endian check.
31343 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
31344 (vec_extract_evenodd_helper): Format change.
31345 (vec_extract_evenv4hi): Remove endian check.
31346 (vec_extract_oddv4hi): Remove endian check.
31347 (vec_interleave_lowv2si): Format change.
31348 (vec_interleave_highv2si): Format change.
31349 (vec_initv2si): Remove endian check.
31350 (vecinit_v2si): Add endian check.
31351 (reduc_splus_v2sf): Add endian check.
31352 (reduc_smax_v2sf): Ditto.
31353 (reduc_smin_v2sf): Ditto.
31354 (vec_initv2sf): Remove endian check.
31355 (fpack): Add endian check.
31356 (fswap): Add endian check.
31357 (vec_interleave_highv2sf): Add endian check.
31358 (vec_interleave_lowv2sf): Add endian check.
31359 (fmix_lr): Add endian check.
31360 (vec_setv2sf): Format change.
31361 (*vec_extractv2sf_0_be): Use shift to extract operand.
31362 (*vec_extractv2sf_1_be): New.
31363 (vec_pack_trunc_v4hi): Add endian check.
31364 (vec_pack_trunc_v2si): Format change.
31365
351b6ccf 313662011-02-04 Jakub Jelinek <jakub@redhat.com>
31367
31368 PR inline-asm/23200
31369 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
2e8ba7b3 31370 do bb, locus and block comparison and disallow loads if it is not set.
351b6ccf 31371 (stmt_is_replaceable_p): New function.
31372 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
31373 callers.
31374 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
31375 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
31376 SSA_NAME_DEF_STMT.
31377 * tree-flow.h (stmt_is_replaceable_p): New prototype.
31378
8119d935 313792011-02-04 Joseph Myers <joseph@codesourcery.com>
31380
31381 * config/rs6000/xilinx.opt: New.
31382 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
31383
5791dadc 313842011-02-04 Joseph Myers <joseph@codesourcery.com>
31385
31386 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
31387
d7198e1f 313882011-02-03 Anatoly Sokolov <aesok@post.ru>
31389
31390 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
31391 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
31392 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
31393 secondary_reload_info, xtensa_secondary_reload): Remove.
31394 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
31395 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
31396 (xtensa_preferred_reload_class): Make static. Change return and
31397 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
31398 Use CONST_DOUBLE_P predicate.
31399 (xtensa_preferred_output_reload_class): New function.
31400 (xtensa_secondary_reload): Make static.
31401
ef83cafb 314022011-02-03 Joseph Myers <joseph@codesourcery.com>
31403
31404 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
31405 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
31406 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
31407
91da0f1c 314082011-02-03 Jakub Jelinek <jakub@redhat.com>
31409
31410 PR middle-end/31490
31411 * output.h (SECTION_RELRO): Define.
31412 (SECTION_MACH_DEP): Adjust.
31413 (get_variable_section): New prototype.
31414 * varpool.c (varpool_finalize_named_section_flags): New function.
31415 (varpool_assemble_pending_decls): Call it.
31416 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
31417 * cgraphunit.c (cgraph_output_in_order): Call
31418 varpool_finalize_named_section_flags.
31419 * varasm.c (get_section): Allow section flags conflicts between
31420 relro and read-only sections if the section hasn't been declared yet.
31421 Set SECTION_OVERRIDE after diagnosing section type conflict.
31422 (get_variable_section): No longer static.
31423 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
31424 readonly sections that need relocations.
31425 (decl_readonly_section_1): New function.
31426 (decl_readonly_section): Use it.
31427
31428 Revert:
ba6ea72b 31429 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
91da0f1c 31430 Steve Ellcey <sje@cup.hp.com>
31431
31432 PR middle-end/31490
31433 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
31434 if section attribute used.
31435
61aeb501 314362011-02-03 Jakub Jelinek <jakub@redhat.com>
31437
31438 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
31439 * config/darwin.c (SECTION_NO_ANCHOR): Define.
31440 (darwin_init_sections): Remove assertion.
31441
dd0e87b5 314422011-02-03 Nick Clifton <nickc@redhat.com>
31443
31444 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
31445 lt and ge.
2e8ba7b3 31446 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
dd0e87b5 31447 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
31448 instead of "n" and "pz".
31449 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
31450 CC_FLAG_S.
31451
7b29dd2f 314522011-02-03 Jakub Jelinek <jakub@redhat.com>
31453
d325c8f4 31454 PR target/47312
31455 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
31456 fma, expand FMA_EXPR as fma{,f,l} call.
31457
806416f6 31458 PR lto/47274
31459 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
31460 copy them into a unsigned char variable and pass address of it to
31461 lto_output_data_stream.
31462
7b29dd2f 31463 PR target/47564
31464 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
31465 around backend_init_target and lang_dependent_init_target calls.
31466 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
31467 (verify_cgraph_node): Don't call set_cfun here. Use
31468 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
31469 Set error_found for incorrectly represented calls to thunks.
31470
1f864115 314712011-02-03 Alexandre Oliva <aoliva@redhat.com>
31472
31473 PR debug/43092
31474 PR rtl-optimization/43494
31475 * rtl.h (for_each_inc_dec_fn): New type.
31476 (for_each_inc_dec): Declare.
31477 * rtlanal.c (struct for_each_inc_dec_ops): New type.
31478 (for_each_inc_dec_find_inc_dec): New fn.
31479 (for_each_inc_dec_find_mem): New fn.
31480 (for_each_inc_dec): New fn.
31481 * dse.c (struct insn_size): Remove.
31482 (replace_inc_dec, replace_inc_dec_mem): Remove.
31483 (emit_inc_dec_insn_before): New fn.
31484 (check_for_inc_dec): Use it, along with for_each_inc_dec.
31485 (canon_address): Pass mem modes to cselib_lookup.
31486 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
31487 (cselib_lookup_from_insn): Likewise.
31488 (cselib_subst_to_values): Likewise.
31489 * cselib.c (find_slot_memmode): New var.
31490 (cselib_find_slot): New fn. Use it instead of
31491 htab_find_slot_with_hash everywhere.
31492 (entry_and_rtx_equal_p): Use find_slot_memmode.
31493 (autoinc_split): New fn.
31494 (rtx_equal_for_cselib_p): Rename and implement in terms of...
31495 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
31496 Deal with autoinc. Special-case recursion into MEMs.
31497 (cselib_hash_rtx): Likewise.
31498 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
31499 address and MEM modes.
31500 (cselib_subst_to_values): Add memmode, pass it on.
31501 Deal with autoinc.
31502 (cselib_lookup): Add memmode argument, pass it on.
31503 (cselib_lookup_from_insn): Add memmode.
31504 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
31505 (struct cselib_record_autoinc_data): New.
31506 (cselib_record_autoinc_cb): New fn.
31507 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
31508 mode to cselib_lookup. Reset autoinced REGs here instead of...
31509 (cselib_process_insn): ... here.
31510 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
31511 to cselib_lookup.
31512 (add_uses): Likewise, also to cselib_subst_to_values.
31513 (add_stores): Likewise.
e0691b9a 31514 * sched-deps.c (add_insn_mem_dependence): Pass mode to
1f864115 31515 cselib_subst_to_values.
31516 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
31517 * gcse.c (do_local_cprop): Adjusted.
31518 * postreload.c (reload_cse_simplify_set): Adjusted.
31519 (reload_cse_simplify_operands): Adjusted.
31520 * sel-sched-dump (debug_mem_addr_value): Pass mode.
31521
4f2bfa26 315222011-02-03 Alexandre Oliva <aoliva@redhat.com>
31523
31524 PR tree-optimization/45122
31525 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
31526 unsafe assumptions when there's more than one loop exit.
31527
a501acda 315282011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
31529
31530 PR target/47272
31531 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31532 Document using vector double with the load/store builtins, and
31533 that the load/store builtins always use Altivec instructions.
31534
31535 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
31536 to use altivec memory instructions, even on VSX.
31537 (vector_altivec_store_<mode>): Ditto.
31538
31539 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
31540 function.
31541
31542 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
31543 V2DF, V2DI support to load/store overloaded builtins.
31544
31545 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
31546 altivec load/store builtins for V2DF/V2DI types.
31547
31548 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
31549 set avoid indexed addresses on power6 if -maltivec.
31550 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
31551 vector_altivec_load/vector_altivec_store builtins.
31552 (altivec_expand_st_builtin): Ditto.
31553 (altivec_expand_builtin): Add VSX memory builtins.
31554 (rs6000_init_builtins): Add V2DI types to internal types.
31555 (altivec_init_builtins): Add support for V2DF/V2DI altivec
31556 load/store builtins.
31557 (rs6000_address_for_altivec): Insure memory address is appropriate
31558 for Altivec.
31559
31560 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
31561 vec_vsx_ld and vec_vsx_st.
31562 (vsx_store_<mode>): Ditto.
31563
31564 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
31565 variables to hold long long types for VSX vector memory builtins.
31566 (RS6000_BTI_unsigned_long_long): Ditto.
31567 (long_long_integer_type_internal_node): Ditti.
31568 (long_long_unsigned_type_internal_node): Ditti.
31569
31570 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
31571 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
31572 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
31573
31574 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
31575 short cuts.
31576 (vec_vsx_st): Ditto.
31577
4d15365c 315782011-02-02 Joseph Myers <joseph@codesourcery.com>
31579
31580 * config/pa/pa-hpux10.opt: New.
31581 * config/hpux11.opt (pthread): New Driver option.
31582 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
31583 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
31584
2ade2b93 315852011-02-02 Joseph Myers <joseph@codesourcery.com>
31586
31587 * config/ia64/vms.opt: New.
31588 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
31589
71314d3d 315902011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
31591
31592 PR target/47580
31593 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
31594 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
31595 generator functions.
31596 (vsx_floatuns<VSi><mode>2): Ditto.
31597 (vsx_fix_trunc<mode><VSi>2): Ditto.
31598 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
31599
bdcbb638 316002011-02-02 Joseph Myers <joseph@codesourcery.com>
31601
31602 * config/i386/djgpp.opt (posix): New Driver option.
31603
ea722d26 316042011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
31605
31606 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
31607 Move to the unsupported targets list.
31608
486f84fd 316092011-02-02 Peter Bergner <bergner@vnet.ibm.com>
31610
31611 PR rtl-optimization/47525
31612 * df-scan.c: Update copyright years.
31613 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
31614 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
31615
521e3dc9 316162011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31617
31618 * config/i386/sysv4.h (TARGET_VERSION): Remove.
31619 (SUBTARGET_RETURN_IN_MEMORY): Remove.
31620 (ASM_OUTPUT_ASCII): Remove.
31621 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
31622
8e4f36fa 316232011-02-02 Jeff Law <law@redhat.com>
31624
31625 PR middle-end/47543
31626 * reload.c (find_reloads_address): Handle reg+d address where both
31627 components are invalid by reloading the entire address.
31628
46c50a88 316292011-02-02 Sebastian Pop <sebastian.pop@amd.com>
31630 Richard Guenther <rguenther@suse.de>
31631
31632 PR tree-optimization/40979
31633 PR bootstrap/47044
31634 * passes.c (init_optimization_passes): After LIM call copy_prop
31635 and DCE to clean up.
31636 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
31637
99df7432 316382011-02-02 Sebastian Pop <sebastian.pop@amd.com>
31639
31640 PR tree-optimization/47576
31641 PR tree-optimization/47555
31642 * doc/invoke.texi (scev-max-expr-complexity): Documented.
31643 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
31644 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
31645 * tree-scalar-evolution.c (follow_ssa_edge): Use
31646 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
31647
f6c35aa4 316482011-02-02 Richard Guenther <rguenther@suse.de>
31649
31650 PR tree-optimization/47566
31651 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
31652
f665f7bb 316532011-02-02 Alexandre Oliva <aoliva@redhat.com>
31654
619349e6 31655 PR debug/47106
31656 PR debug/47402
31657 * tree-inline.c (declare_return_variable): Remove unused caller
31658 variable.
31659
f665f7bb 31660 PR debug/47106
31661 PR debug/47402
31662 * tree-flow-inline.h (clear_is_used, is_used_p): New.
31663 * cfgexpand.c (account_used_vars_for_block): Use them.
31664 * tree-nrv.c (tree_nrv): Likewise.
31665 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
31666 (dump_scope_block): Likewise.
31667 (remove_unused_locals): Likewise.
31668
e81986ab 31669 PR debug/47106
31670 PR debug/47402
31671 * tree-inline.c (declare_return_variable): Add result decl to
31672 local decls only once.
31673 * gimple-low.c (record_vars_into): Mark newly-created variables
31674 as referenced.
31675
9221ec44 316762011-02-02 Alexandre Oliva <aoliva@redhat.com>
31677
31678 PR debug/47498
31679 PR debug/47501
31680 PR debug/45136
31681 PR debug/45130
31682 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
31683 debug insns.
31684 (no_real_insns_p, schedule_block, set_priorities): Drop special
31685 treatment of boundary debug insns.
2e8ba7b3 31686 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9221ec44 31687 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
31688 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
31689 (BOUNDARY_DEBUG_INSN_P): Likewise.
31690 (SCHEDULE_DEBUG_INSN_P): Likewise.
31691 * sched-rgn.c (init_ready_list): Drop special treatment of
31692 boundary debug insns.
31693 * final.c (rest_of_clean_state): Clear notes' BB.
31694
31eea452 316952011-02-01 Joseph Myers <joseph@codesourcery.com>
31696
31697 * config/openbsd.opt (assert=): New Driver option.
31698
9453823e 316992011-02-01 Joseph Myers <joseph@codesourcery.com>
31700
31701 * config/i386/nto.opt: New.
31702 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
31703
bc63be20 317042011-02-01 Joseph Myers <joseph@codesourcery.com>
31705
31706 * config/i386/netware.opt: New.
31707 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
31708
7af14b9b 317092011-02-01 Joseph Myers <joseph@codesourcery.com>
31710
31711 * config/interix.opt (posix): New Driver option.
31712
1facaf0d 317132011-02-01 DJ Delorie <dj@redhat.com>
31714
d00812be 31715 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
31716
1facaf0d 31717 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
31718 class for A0/A1.
31719
63c5b29f 317202011-02-01 Sebastian Pop <sebastian.pop@amd.com>
31721
31722 PR tree-optimization/47561
31723 * toplev.c (process_options): Print the Graphite flags. Add
31724 flag_loop_flatten to the list of options requiring Graphite.
31725
c80fcc70 317262011-02-01 Joseph Myers <joseph@codesourcery.com>
31727
31728 * config/i386/cygming.opt (posix): New Driver option.
31729
8afdaa80 317302011-02-01 Joseph Myers <joseph@codesourcery.com>
31731
31732 * config/arm/vxworks.opt: New.
31733 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
31734
0b803a91 317352011-02-01 Joseph Myers <joseph@codesourcery.com>
31736
31737 * config/alpha/elf.opt: New.
31738 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
31739 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
31740
16d9b5d8 317412011-02-01 Richard Guenther <rguenther@suse.de>
31742
31743 PR tree-optimization/47559
31744 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
31745 store-motion on references that can throw.
31746
329b9588 317472011-02-01 Bernd Schmidt <bernds@codesourcery.com>
31748
31749 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
31750 * tree-pass.h (TDF_CSELIB): New macro.
31751 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
31752 cselib_lookup): Check for it rather than for TDF_DETAILS.
31753
ad905e43 317542011-02-01 H.J. Lu <hongjiu.lu@intel.com>
31755
31756 PR driver/47547
31757 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
31758 is HOST_BIT_BUCKET.
31759
31760 * opts.c (finish_options): Don't add x_aux_base_name if it is
31761 HOST_BIT_BUCKET.
31762
58dcbc36 317632011-02-01 Richard Guenther <rguenther@suse.de>
31764
31765 PR tree-optimization/47555
31766 Revert
31767 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
31768
31769 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
31770
fc887755 317712011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
31772
31773 PR gcc/46692
31774 * config/lm32/t-lm32: Add multilib for all CPU options.
31775
f82bdab4 317762011-02-01 Richard Guenther <rguenther@suse.de>
31777
31778 PR tree-optimization/47541
31779 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
31780 sure to have a field at offset zero.
31781
afd8d709 317822011-01-31 Joseph Myers <joseph@codesourcery.com>
31783
31784 * config/arc/arc.opt (EB, EL): New Driver options.
31785
4f5bbfa4 317862011-01-31 Joseph Myers <joseph@codesourcery.com>
31787
31788 * config/alpha/osf5.opt: New.
31789 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
31790
deeaf98d 317912011-01-31 Joseph Myers <joseph@codesourcery.com>
31792
31793 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
31794
464a406e 317952011-01-31 Sebastian Pop <sebastian.pop@amd.com>
31796
31797 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
31798 -floop-interchange.
31799 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
31800 is an alias of -floop-interchange and that it requires the
31801 Graphite infrastructure.
31802 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
31803 flag_loop_interchange based on the value of flag_tree_loop_linear.
31804
90c0f5b7 318052011-01-31 Jakub Jelinek <jakub@redhat.com>
31806 Richard Guenther <rguenther@suse.de>
31807
31808 PR tree-optimization/47538
31809 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
31810 type instead of r1type, except for comparisons. For right
31811 shifts and comparisons punt if there are mismatches in
31812 sizetype vs. non-sizetype types.
31813
a2b522e7 318142011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31815
31816 * doc/sourcebuild.texi (Effective-Target Keywords): Document
31817 avx_runtime.
31818
839ff241 318192011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31820
31821 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
31822 version number.
31823 * configure: Regenerate.
31824
e6937b3a 318252011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31826
31827 * configure.ac (gcc_cv_ld_static_option): Define.
31828 (gcc_cv_ld_dynamic_option): Define.
31829 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
31830 instead.
31831 (HAVE_LD_STATIC_DYNAMIC): Update message.
31832 (LD_STATIC_OPTION): Define.
31833 (LD_DYNAMIC_OPTION): Define.
31834 * configure: Regenerate.
31835 * config.in: Regenerate.
31836 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
31837 HAVE_LD_STATIC_DYNAMIC]: Use them.
31838
382ffb70 318392011-01-31 Nick Clifton <nickc@redhat.com>
31840
31841 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
31842 registers inside interrupt handlers if the handler is not a leaf
31843 function.
31844
c2fa9c24 318452011-01-31 Nick Clifton <nickc@redhat.com>
31846
31847 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
31848 reg_renumber returning an INVALID_REGNUM.
31849
0e4d1862 318502011-01-31 Alexandre Oliva <aoliva@redhat.com>
31851
31852 PR libgcj/44341
31853 * doc/install.texi: Document host options discarded when cross
31854 configuring target libraries.
31855
7fb29e63 318562011-01-31 Alexandre Oliva <aoliva@redhat.com>
31857
31858 Reverted:
31859 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
31860 PR debug/45136
31861 PR debug/45130
31862 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
31863 debug insns.
31864 (no_real_insns_p, schedule_block, set_priorities): Drop special
31865 treatment of boundary debug insns.
2e8ba7b3 31866 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7fb29e63 31867 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
31868 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
31869 (BOUNDARY_DEBUG_INSN_P): Likewise.
31870 (SCHEDULE_DEBUG_INSN_P): Likewise.
31871 * sched-rgn.c (init_ready_list): Drop special treatment of
31872 boundary debug insns.
31873 * final.c (rest_of_clean-state): Clear notes' BB.
31874
3968fd16 318752011-01-31 Alan Modra <amodra@gmail.com>
31876
31877 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
31878 toc relative expressions as we do in print_operand_address.
31879
7e44812a 318802011-01-30 Kazu Hirata <kazu@codesourcery.com>
31881
31882 * doc/extend.texi: Follow spelling conventions.
31883 * doc/invoke.texi: Fix a typo.
31884
593c1adb 318852011-01-30 Joseph Myers <joseph@codesourcery.com>
31886
31887 * config/hpux11.opt: New.
31888 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
31889 ia64*-*-hpux*): Use hpux11.opt.
31890
ba6ea72b 318912011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
20684623 31892
31893 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
31894 to tmake_file.
31895
f2a584ac 318962011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
31897
31898 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
31899 support sites.
31900
f4e302ca 319012011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
31902
e75e9a75 31903 * doc/install.texi (Binaries): Remove outdated reference for
31904 Motorola 68HC11/68HC12 downloads.
31905
319062011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
3968fd16 31907
f4e302ca 31908 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
31909 Drepper's paper.
31910
7f90e96e 319112011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
31912
31913 PR bootstrap/47147
31914 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
31915 used by NetBSD.
31916
2e8ba7b3 319172011-01-28 Ahmad Sharif <asharif@google.com>
81c388fd 31918
31919 * value-prof.c (check_counter): Corrected error message.
31920
a4f7f36c 319212011-01-29 Jie Zhang <jie@codesourcery.com>
31922
31923 * config/arm/arm.c (arm_legitimize_reload_address): New.
31924 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
31925 arm_legitimize_reload_address.
2e8ba7b3 31926 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
a4f7f36c 31927
826a8d9b 319282011-01-28 Ian Lance Taylor <iant@google.com>
31929
31930 * godump.c (go_define): Ignore macros whose definitions include
31931 two adjacent operands.
31932
722c0f6e 319332011-01-28 Jakub Jelinek <jakub@redhat.com>
31934
31935 PR target/42894
31936 * varasm.c (force_const_mem): Store copy of x in desc->constant
31937 instead of x itself.
31938 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
31939 itself into REG_EQUAL note.
31940
5be9590a 319412011-01-28 Joseph Myers <joseph@codesourcery.com>
31942
31943 * config/freebsd.opt (posix, rdynamic): New Driver options.
31944
a54f3ef3 319452011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31946
31947 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
31948 -Bstatic/-Bdynamic.
31949 * configure: Regenerate.
31950
5f9dac96 319512011-01-27 Joseph Myers <joseph@codesourcery.com>
31952
31953 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
31954 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
31955
3359ccfd 319562011-01-27 Anatoly Sokolov <aesok@post.ru>
31957
31958 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
31959 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
31960 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
31961 (s390_preferred_reload_class): Make static. Change return and
31962 'rclass' argument type to reg_class_t.
31963
40b32d93 319642011-01-27 Jan Hubicka <jh@suse.cz>
31965
31966 PR middle-end/46949
31967 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
31968 (process_function_and_variable_attributes): Check defined weakrefs.
31969
1fd38f81 319702011-01-27 Martin Jambor <mjambor@suse.cz>
31971
31972 PR tree-optimization/47228
31973 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
31974 build_ref_for_offset.
31975
afcc4e86 319762011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31977
31978 * config/spu/spu-elf.h (ASM_SPEC): Remove.
31979
ba6ea72b 319802011-01-26 Mikael Pettersson <mikpe@it.uu.se>
33b7314b 31981
31982 PR rtl-optimization/46856
31983 * postreload.c (reload_combine_recognize_const_pattern): Do not
31984 separate cc0 setter and user on cc0 targets.
31985
a43fc97e 319862011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
31987
31988 PR c/43082
31989 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
31990 passed a VOID_TYPE expression, immediately emit an error and
31991 return error_mark_node.
31992
9bd1408a 319932011-01-26 Jeff Law <law@redhat.com>
31994
31995 PR rtl-optimization/47464
31996 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
31997 rather than may_trap_p as needed.
31998
c0ed6498 319992011-01-26 DJ Delorie <dj@redhat.com>
32000
32001 PR rtl-optimization/46878
32002 * combine.c (insn_a_feeds_b): Check for the implicit cc0
32003 setter/user dependency as well.
32004
2decfaa7 320052011-01-26 Eric Botcazou <ebotcazou@adacore.com>
32006
32007 PR rtl-optimization/44469
32008 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
32009 after removing trivially dead basic blocks.
32010
76db74b6 320112011-01-26 Joseph Myers <joseph@codesourcery.com>
32012
32013 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
32014 * config/frv/frv.h (LINK_SPEC): Likewise.
32015 * config/i386/netware.h (LINK_SPEC): Likewise.
32016 * config/m68k/linux.h (ASM_SPEC): Likewise.
32017 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
32018 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
32019 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
32020 * config/sparc/linux.h (ASM_SPEC): Likewise.
32021 * config/sparc/linux64.h (ASM_SPEC): Likewise.
32022 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
32023
63713d4f 320242011-01-26 Joseph Myers <joseph@codesourcery.com>
32025
32026 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
32027 * config/frv/frv.h (ASM_SPEC): Likewise.
32028 * config/m68k/linux.h (ASM_SPEC): Likewise.
32029 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
32030 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
32031 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
32032 * config/sparc/linux.h (ASM_SPEC): Likewise.
32033 * config/sparc/linux64.h (ASM_SPEC): Likewise.
32034 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
32035
02b94076 320362011-01-26 Joseph Myers <joseph@codesourcery.com>
32037
32038 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
32039 * config/frv/frv.h (LINK_SPEC): Likewise.
32040 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
32041
5c8a1984 320422011-01-26 Joseph Myers <joseph@codesourcery.com>
32043
32044 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
32045 * config/frv/frv.h (ASM_SPEC): Likewise.
32046 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
32047 * config/m68k/linux.h (ASM_SPEC): Likewise.
32048 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
32049 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
32050 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
32051 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
32052 * config/sparc/linux.h (ASM_SPEC): Likewise.
32053 * config/sparc/linux64.h (ASM_SPEC): Likewise.
32054 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
32055 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
32056
6d6a23ae 320572011-01-26 Steve Ellcey <sje@cup.hp.com>
32058
32059 PR target/46997
32060 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
32061 (*mux2): Ditto.
32062 (vec_extract_evenodd_help): Ditto.
32063 (vec_extract_evenv4hi): Ditto.
32064 (vec_extract_oddv4hi): Ditto.
32065 (vec_interleave_lowv2si): Ditto.
32066 (vec_interleave_highv2si): Ditto.
32067 (vec_extract_evenv2si): Ditto.
32068 (vec_extract_oddv2si: Ditto.
32069 (vec_pack_trunc_v2si): Ditto.
32070
269b8d98 320712011-01-22 Jan Hubicka <jh@suse.cz>
32072
32073 PR target/47237
32074 * cgraph.h (cgraph_local_info): New field can_change_signature.
32075 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
32076 signature can change.
32077 (ipcp_estimate_growth): Call sequence simplify only if calle signature
32078 can change.
32079 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
32080 (cgraph_function_versioning): We can not change signature of functions
32081 that don't allow that.
32082 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
32083 (lto_input_node): Likewise.
2e8ba7b3 32084 * ipa-inline.c (compute_inline_parameters): Compute
32085 local.can_change_signature.
269b8d98 32086 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
2e8ba7b3 32087 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
32088 functions that can not change signature.
269b8d98 32089 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
2e8ba7b3 32090 init_cumulative_args): Do not use local calling conventions
32091 for functions that can not change signature.
269b8d98 32092
781e865e 320932011-01-22 Jan Hubicka <jh@suse.cz>
32094
32095 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
32096
d05db70d 320972011-01-26 Richard Guenther <rguenther@suse.de>
32098
32099 PR tree-optimization/47190
3968fd16 32100 * cgraphunit.c (process_common_attributes): New function.
32101 (process_function_and_variable_attributes): Use it.
d05db70d 32102
b13addbf 321032011-01-26 Richard Guenther <rguenther@suse.de>
32104
32105 PR lto/47423
32106 * cgraphbuild.c (record_eh_tables): Record reference to personality
32107 function.
32108
995ca335 321092011-01-26 Alexandre Oliva <aoliva@redhat.com>
32110
32111 PR debug/45454
32112 * sel-sched.c (moveup_expr): Don't let debug insns prevent
32113 non-debug insns from moving up.
32114
abfe0c5b 321152011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
32116
32117 PR target/40125
32118 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
32119 t-dlldir{,-x} fragment for build and add it to tmake_file.
32120 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
32121 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
32122 * config/i386/t-dlldir: New file.
32123 (SHLIB_DLLDIR): Define.
32124 * config/i386/t-dlldir-x: New file.
32125 (SHLIB_DLLDIR): Define.
32126 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
32127 (SHLIB_INSTALL): Use it.
32128
06a9ac97 321292011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
32130
32131 PR target/47246
32132 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
32133 lower bound of the allowed Thumb-2 coprocessor load/store
32134 index range to -256. Add explaining comment.
32135
509475fd 321362011-01-25 Ian Lance Taylor <iant@google.com>
32137
32138 * godump.c (go_define): Improve lexing of macro expansion to only
32139 accept expressions which match Go spec.
32140
0675168d 321412011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
32142
e8911163 32143 PR c++/43601
0675168d 32144 * tree.c (handle_dll_attribute): Handle it.
32145 * doc/extend.texi (@item dllexport): Mention it.
32146 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
32147
f583ffd4 321482011-01-25 Ian Lance Taylor <iant@google.com>
32149
32150 PR tree-optimization/26854
32151 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
32152 (decl_jump_unsafe): Move higher in file, with no other change.
32153 (bind): Set has_jump_unsafe_decl if appropriate.
32154 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
32155 (check_earlier_gotos): Likewise.
32156 (c_check_switch_jump_warnings): Likewise.
32157
f6c6eba4 321582011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
32159
32160 * doc/invoke.texi (Warning Options): Add missing hyphen.
32161 (-fprofile-dir): Minor grammatical fixes.
32162 (-fbranch-probabilities): Likewise.
32163
ce784932 321642011-01-25 Alexandre Oliva <aoliva@redhat.com>
32165
32166 PR debug/45136
32167 PR debug/45130
32168 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
32169 debug insns.
32170 (no_real_insns_p, schedule_block, set_priorities): Drop special
32171 treatment of boundary debug insns.
2e8ba7b3 32172 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ce784932 32173 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
32174 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
32175 (BOUNDARY_DEBUG_INSN_P): Likewise.
32176 (SCHEDULE_DEBUG_INSN_P): Likewise.
32177 * sched-rgn.c (init_ready_list): Drop special treatment of
32178 boundary debug insns.
32179 * final.c (rest_of_clean-state): Clear notes' BB.
32180
e01f9f1f 321812011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32182
32183 * Makefile.in (LAMBDA_H): Removed.
32184 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
32185 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
32186 lambda-trans.o, and tree-loop-linear.o.
32187 (lto-symtab.o): Remove dependence on LAMBDA_H.
32188 (tree-loop-linear.o): Remove rule.
32189 (lambda-mat.o): Same.
32190 (lambda-trans.o): Same.
32191 (lambda-code.o): Same.
32192 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
32193 (tree-vect-slp.o): Same.
32194 * hwint.h (gcd): Moved here.
32195 (least_common_multiple): Same.
32196 * lambda-code.c: Removed.
32197 * lambda-mat.c: Removed.
32198 * lambda-trans.c: Removed.
32199 * lambda.h: Removed.
32200 * tree-loop-linear.c: Removed.
32201 * lto-symtab.c: Do not include lambda.h.
32202 * omega.c (gcd): Removed.
32203 * passes.c (init_optimization_passes): Remove pass_linear_transform.
32204 * tree-data-ref.c (print_lambda_vector): Moved here.
32205 (lambda_vector_copy): Same.
32206 (lambda_matrix_copy): Same.
32207 (lambda_matrix_id): Same.
32208 (lambda_vector_first_nz): Same.
32209 (lambda_matrix_row_add): Same.
32210 (lambda_matrix_row_exchange): Same.
32211 (lambda_vector_mult_const): Same.
32212 (lambda_vector_negate): Same.
32213 (lambda_matrix_row_negate): Same.
32214 (lambda_vector_equal): Same.
32215 (lambda_matrix_right_hermite): Same.
32216 * tree-data-ref.h: Do not include lambda.h.
32217 (lambda_vector): Moved here.
32218 (lambda_matrix): Same.
32219 (dependence_level): Same.
32220 (lambda_transform_legal_p): Removed declaration.
32221 (lambda_collect_parameters): Same.
32222 (lambda_compute_access_matrices): Same.
32223 (lambda_vector_gcd): Same.
32224 (lambda_vector_new): Same.
32225 (lambda_vector_clear): Same.
32226 (lambda_vector_lexico_pos): Same.
32227 (lambda_vector_zerop): Same.
32228 (lambda_matrix_new): Same.
32229 * tree-flow.h (least_common_multiple): Removed declaration.
32230 * tree-parloops.c (lambda_trans_matrix): Moved here.
32231 (LTM_MATRIX): Same.
32232 (LTM_ROWSIZE): Same.
32233 (LTM_COLSIZE): Same.
32234 (LTM_DENOMINATOR): Same.
32235 (lambda_trans_matrix_new): Same.
32236 (lambda_matrix_vector_mult): Same.
32237 (lambda_transform_legal_p): Same.
32238 * tree-pass.h (pass_linear_transform): Removed declaration.
32239 * tree-ssa-loop.c (tree_linear_transform): Removed.
32240 (gate_tree_linear_transform): Removed.
32241 (pass_linear_transform): Removed.
32242 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
32243 flag_loop_interchange.
32244
628ce22b 322452011-01-25 Jakub Jelinek <jakub@redhat.com>
32246
32247 PR tree-optimization/47265
32248 PR tree-optimization/47443
32249 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
32250 if name still has some uses.
32251
114227c3 322522011-01-25 Martin Jambor <mjambor@suse.cz>
32253
32254 PR tree-optimization/47382
32255 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
32256 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
32257
ba6ea72b 322582011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
16a1c7a3 32259
32260 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
32261 sjlj_except_unwind_info.
32262
12d9baf9 322632011-01-25 Richard Guenther <rguenther@suse.de>
32264
32265 PR tree-optimization/47426
32266 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
32267 visible functions results escape.
32268
37f09426 322692011-01-25 Jakub Jelinek <jakub@redhat.com>
32270
32271 PR target/45701
32272 * config/arm/arm.c (any_sibcall_uses_r3): New function.
32273 (arm_get_frame_offsets): Use it.
32274
5790abbc 322752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32276 Jakub Jelinek <jakub@redhat.com>
32277
32278 PR tree-optimization/47271
32279 * tree-if-conv.c (bb_postdominates_preds): New.
32280 (if_convertible_bb_p): Call bb_postdominates_preds.
32281 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
32282 (predicate_scalar_phi): Call bb_postdominates_preds.
32283
02f06d23 322842011-01-25 Nick Clifton <nickc@redhat.com>
32285
32286 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
32287 * config/rx/rx.c (rx_function_value): Likewise.
32288 (rx_promote_function_mode): Likewise.
32289 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
32290 in order to make it legitimate.
2e8ba7b3 32291 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
32292 make sure that the first operand is the same as the result register.
02f06d23 32293 (addsi3_unspec): Delete.
32294 (subdi3): Do not accept immediate operands.
32295 (subdi3_internal): Likewise.
32296
fad2bf3e 322972011-01-25 Jeff Law <law@redhat.com>
32298
32299 PR rtl-optimization/37273
32300 * ira-costs.c (scan_one_insn): Detect constants living in memory and
32301 handle them like argument loads from stack slots. Do not double
32302 count memory for memory constants and argument loads from stack slots.
32303
3e101e60 323042011-01-25 Jakub Jelinek <jakub@redhat.com>
32305
32306 PR tree-optimization/47427
32307 PR tree-optimization/47428
32308 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
32309 coalesce if the new root var would be TREE_READONLY.
32310
c2af9e57 323112011-01-25 Richard Guenther <rguenther@suse.de>
32312
32313 PR middle-end/47414
32314 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
32315 correct type for TBAA.
32316
fa6ed0e9 323172011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32318
32319 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
32320 (close_phi_written_to_memory): Call for_each_index with
32321 dr_indices_valid_in_loop.
32322
93f9c161 323232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32324
32325 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
32326 when it is initialized.
32327
221a697e 323282011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32329
32330 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
32331 call to graphite_find_data_references_in_stmt.
32332 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
32333 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
32334 call to graphite_find_data_references_in_stmt.
32335 (analyze_drs_in_stmts): Same.
32336 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
32337 in which the scalar analysis of indices is performed.
32338 (create_data_ref): Same. Update call to dr_analyze_indices.
32339 (find_data_references_in_stmt): Update call to create_data_ref.
32340 (graphite_find_data_references_in_stmt): Same.
32341 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
32342 declaration.
32343 (create_data_ref): Same.
32344 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
32345 call to create_data_ref.
32346
c5409e1f 323472011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32348
32349 * graphite-sese-to-poly.c (build_poly_scop): Move
2e8ba7b3 32350 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
c5409e1f 32351
041f1b34 323522011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32353
32354 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
32355 VAR_DECL, PARM_DECL, and RESULT_DECL.
32356
fc2372d9 323572011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32358
32359 * graphite-dependences.c (reduction_dr_1): Allow several reductions
32360 in a reduction PBB.
32361 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
32362 that have already been marked as PBB_IS_REDUCTION.
32363
3225ff53 323642011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32365
32366 * graphite-scop-detection.c (same_close_phi_node): New.
32367 (remove_duplicate_close_phi): New.
32368 (make_close_phi_nodes_unique): New.
32369 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
32370
a0630a8d 323712011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32372
32373 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
32374 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
32375 of both data references to be the same.
32376
07141610 323772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32378
2e8ba7b3 32379 * graphite-dependences.c (build_lexicographical_constraint): Remove
32380 the gdim parameter.
32381 (build_lexicographical_constraint): Adjust call to
32382 ppl_powerset_is_empty.
07141610 32383 (dependence_polyhedron): Same.
32384 (graphite_legal_transform_dr): Same.
32385 (graphite_carried_dependence_level_k): Same.
2e8ba7b3 32386 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
32387 parameter.
07141610 32388 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
32389
53b5bc41 323902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32391
32392 * graphite-sese-to-poly.c
32393 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
32394 (close_phi_written_to_memory): New.
32395 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
32396 and unshare_expr.
32397
11ce391e 323982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32399
32400 * doc/install.texi: Update the expected version number of PPL to 0.11.
32401 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
32402 #if PPL_VERSION_MINOR < 11.
32403
1877ea6b 324042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32405
32406 * graphite-dependences.c: Include graphite-cloog-util.h.
32407 (new_poly_ddr): Inlined into dependence_polyhedron.
32408 (free_poly_ddr): Moved close by new_poly_ddr.
32409 (dependence_polyhedron_1): Renamed dependence_polyhedron.
32410 Early return NULL when ppl_powerset_is_empty returns true.
32411 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
32412 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
32413 (graphite_legal_transform_dr): Call new_poly_ddr.
32414 (graphite_carried_dependence_level_k): Same.
32415 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
32416 (dot_transformed_deps_stmt_1): Removed.
32417 (dot_deps_stmt_1): Call dot_deps_stmt_2.
32418 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
32419 (dot_deps_1): Call dot_deps_2.
32420 * Makefile.in (graphite-dependences.o): Add missing dependence on
32421 graphite-cloog-util.h.
32422
b40e3432 324232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32424
32425 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
32426 (build_lexicographical_constraint): Same.
32427 (dependence_polyhedron_1): Same.
32428 (graphite_legal_transform_dr): Same.
32429 (graphite_carried_dependence_level_k): Same.
32430 * graphite-ppl.c (ppl_powerset_is_empty): New.
32431 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
32432 * tree-data-ref.c (dump_data_reference): Print the basic block index.
32433
37578f49 324342011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32435
32436 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
32437 the "a followed by b" relation and document it.
32438
c4b17226 324392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32440
32441 * graphite-dependences.c (build_lexicographical_constraint): Stop the
32442 iteration when the bag of constraints is empty.
32443
eb165288 324442011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32445
32446 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
32447
8f1020f8 324482011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32449
32450 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
32451 nest and two loop depths as parameters.
32452 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
32453 lst_perfect_nestify.
32454
a3936cf6 324552011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32456
32457 * graphite-dependences.c (print_pddr): Call
32458 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
32459
f093228e 324602011-01-25 Sebastian Pop <sebastian.pop@amd.com>
32461
32462 * graphite-ppl.c (debug_gmp_value): New.
32463 * graphite-ppl.h (debug_gmp_value): Declared.
32464
20ec32e2 324652011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
32466
32467 * doc/install.texi: Document availability of cloog-0.16.
32468
2acf5550 324692011-01-25 Vladimir Kargov <kargov@gmail.com>
32470
32471 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
32472 invalid postdominance info.
32473
fbdda6a7 324742011-01-24 Jan Hubicka <jh@suse.cz>
32475
32476 PR c/21659
32477 * doc/extend.texi (weak pragma): Drop claim that it must
32478 appear before definition.
32479 * varasm.c (merge_weak, declare_weak): Only sanity check
32480 that DECL is not output at a time it is declared weak.
32481
7f24e187 324822011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
32483
32484 * machmode.def: Fixed comments.
2acf5550 32485
e19e0a33 324862011-01-24 Kai Tietz <kai.tietz@onevision.com>
32487
32488 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
32489
324902011-01-24 Paul Koning <ni1d@arrl.net>
ad8f8e52 32491
32492 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
2acf5550 32493 WORDS_BIG_ENDIAN.
ad8f8e52 32494
bc189236 324952011-01-24 H.J. Lu <hongjiu.lu@intel.com>
32496
32497 PR target/46519
32498 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
32499 (block_info): Add scanned and prev.
32500 (move_or_delete_vzeroupper_2): Return if the basic block
32501 has been scanned and the upper 128bit state is unchanged
32502 from the last scan.
32503 (move_or_delete_vzeroupper_1): Return true if the exit
32504 state is changed.
32505 (move_or_delete_vzeroupper): Visit basic blocks using the
32506 work-list based algorithm based on vt_find_locations in
32507 var-tracking.c.
32508
32509 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
32510
fabc2065 325112011-01-24 Nick Clifton <nickc@redhat.com>
32512
32513 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
32514 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
32515 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
32516 then define __v850e1__.
32517 * doc/invoke.texi: Document -mv850es.
32518
d9b5adbb 325192011-01-24 Richard Henderson <rth@redhat.com>
32520
32521 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
32522 compound unordered comparisons.
32523 * config/rx/rx.c (rx_split_fp_compare): Remove.
32524 * config/rx/rx-protos.h: Update.
32525 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
32526 (cbranchsf4): Don't call rx_split_fp_compare.
32527 (*cbranchsf4): Use rx_split_cbranch.
32528 (*cmpsf): Don't accept "i" constraint.
32529 (*conditional_branch): Only valid after reload.
32530 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
32531
18aeab2a 325322011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
32533
32534 PR target/47385
32535 * config/rs6000/altivec.md (vector constant splitters): Add
32536 support for creating vector single precision constants if -mvsx is
32537 used and we would create the constant using Altivec primitives.
32538
a10441ee 325392011-01-23 Bernd Schmidt <bernds@codesourcery.com>
32540 Richard Sandiford <rdsandiford@googlemail.com>
32541
32542 PR rtl-optimization/47166
32543 * reload1.c (emit_reload_insns): Disable the spill_reg_store
32544 mechanism for PRE_MODIFY and POST_MODIFY.
32545 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
32546 reloadreg.
32547
97c6ec6a 325482011-01-23 Andreas Schwab <schwab@linux-m68k.org>
32549
ab78ddd4 32550 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
97c6ec6a 32551
efa5dc14 325522011-01-22 Jan Hubicka <jh@suse.cz>
32553
32554 PR lto/47333
32555 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
32556
dcfc8dc0 325572011-01-22 Jan Hubicka <jh@suse.cz>
32558
32559 PR tree-optimization/43884
32560 PR lto/44334
ab78ddd4 32561 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
dcfc8dc0 32562 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
32563
fa7a995b 325642011-01-22 Anatoly Sokolov <aesok@post.ru>
32565
32566 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
32567 * config/s390/s390.c (s390_register_move_cost,
32568 s390_memory_move_cost): New.
32569 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
32570
e5aa6e8b 325712011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32572
32573 PR middle-end/47401
32574 * except.c (sjlj_assign_call_site_values): Move setting the
32575 crtl->uses_eh_lsda flag to ...
32576 (sjlj_mark_call_sites): ... here.
32577 (sjlj_emit_function_enter): Support NULL dispatch label.
32578 (sjlj_build_landing_pads): In a function with no landing pads
32579 that still has must-not-throw regions, generate code to register
32580 a personality function with empty LSDA.
32581
a50372fe 325822011-01-21 Richard Henderson <rth@redhat.com>
32583
77de4b78 32584 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
32585
08207c2f 32586 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
32587
a50372fe 32588 * compare-elim.c: New file.
32589 * Makefile.in (OBJS-common): Add it.
32590 (compare-elim.o): New.
32591 * common.opt (fcompare-elim): New.
32592 * opts.c (default_options_table): Add OPT_fcompare_elim.
32593 * tree-pass.h (pass_compare_elim_after_reload): New.
32594 * passes.c (init_optimization_passes): Add it.
32595 * recog.h: Protect against re-inclusion.
32596 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
32597 * doc/invoke.texi (-fcompare-elim): Document it.
32598 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
32599 * doc/tm.texi: Rebuild.
32600
13f89fe5 326012011-01-22 Nick Clifton <nickc@redhat.com>
32602
32603 * config/rx/rx.md (cstoresf4): Pass comparison operator to
32604 rx_split_fp_compare.
32605
95272799 326062011-01-22 Nick Clifton <nickc@redhat.com>
32607
32608 * config/rx/rx.md (UNSPEC_CONST): New.
32609 (deallocate_and_return): Wrap the amount popped off the stack in
32610 an UNSPEC_CONST in order to stop it being rejected by
32611 -mmax-constant-size.
32612 (pop_and_return): Add a "(return)" rtx.
32613 (call): Drop the immediate operand.
32614 (call_internal): Likewise.
32615 (call_value): Likewise.
32616 (call_value_internal): Likewise.
32617 (sibcall_internal): Likewise.
32618 (sibcall_value_internal): Likewise.
32619 (sibcall): Likewise. Generate an explicit call using
32620 sibcall_internal.
32621 (sibcall_value): Likewise.
32622 (mov<>): FAIL if a constant operand is not legitimate.
32623 (addsi3_unpsec): New pattern.
13f89fe5 32624
2e8ba7b3 32625 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
95272799 32626 (ok_for_max_constant): New function.
32627 (gen_safe_add): New function.
32628 (rx_expand_prologue): Use gen_safe_add.
32629 (rx_expand_epilogue): Likewise.
32630 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
32631 UNSPEC CONSTs.
32632
d02c8339 326332011-01-21 Jeff Law <law@redhat.com>
32634
32635 PR tree-optimization/47053
32636 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
32637 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
32638 statements are deleted.
32639 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
32640 is nonempty, then purge dead edges and cleanup the CFG.
32641
81598b62 326422011-01-21 Alexandre Oliva <aoliva@redhat.com>
32643
32644 PR debug/47402
32645 Temporarily revert:
32646 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
32647 PR debug/47106
32648 * tree-dfa.c (create_var_ann): Mark variable as used.
32649
f9460785 326502011-01-21 Jakub Jelinek <jakub@redhat.com>
32651
e30ff7b1 32652 PR middle-end/45566
32653 * except.c (convert_to_eh_region_ranges): Emit queued no-region
32654 notes from other section in hot/cold partitioning even if
32655 last_action is -3. Increment call_site_base.
32656
f9460785 32657 PR rtl-optimization/47366
32658 * fwprop.c (forward_propagate_into): Return bool. If
32659 any changes are made, -fnon-call-exceptions is used and
32660 REG_EH_REGION note is present, call purge_dead_edges
32661 and return true if it purged anything.
32662 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
32663 any EH edges were purged.
32664
0268f1d4 326652011-01-21 Jeff Law <law@redhat.com>
32666
32667 PR rtl-optimization/41619
32668 * caller-save.c (setup_save_areas): Break out code to determine
32669 which hard regs are live across calls by examining the reload chains
32670 so that it is always used.
32671 Eliminate code which checked REG_N_CALLS_CROSSED.
32672
6e21b2e0 326732011-01-21 Jakub Jelinek <jakub@redhat.com>
32674
32675 PR tree-optimization/47355
32676 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
32677 NOP has non-debug uses beyond PHIs in new_bb.
32678
1bc4cf65 326792011-01-21 Alexandre Oliva <aoliva@redhat.com>
32680
32681 PR debug/47106
32682 * cfgexpand.c (account_used_vars_for_block): Only account vars
32683 that are annotated as used.
32684 (estimated_stack_frame_size): Don't set TREE_USED.
32685 * tree-dfa.c (create_var_ann): Mark variable as used.
32686
da82f093 326872011-01-21 Richard Guenther <rguenther@suse.de>
32688
32689 PR middle-end/47395
32690 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
32691
8ecc6b38 326922011-01-21 Richard Guenther <rguenther@suse.de>
32693
32694 PR tree-optimization/47365
32695 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
32696 (vn_reference_lookup_pieces): Adjust.
32697 (vn_reference_lookup): Likewise.
32698 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
32699 (vn_reference_lookup_3): Only look through kills if in
32700 VN_WALKREWRITE mode.
32701 (vn_reference_lookup_pieces): Adjust.
32702 (vn_reference_lookup): Likewise.
32703 (visit_reference_op_load): Likewise.
32704 (visit_reference_op_store): Likewise.
32705 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
32706 (compute_avail): Likewise.
32707 (eliminate): Likewise.
32708
2d8c1786 327092011-01-21 Jakub Jelinek <jakub@redhat.com>
32710
32711 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
32712 DECL_IGNORED_P non-reg vars if they are used.
32713
2fbbab30 32714 PR tree-optimization/47391
32715 * varpool.c (const_value_known_p): Return false if
32716 decl is volatile.
32717
6a457a13 327182011-01-21 Kai Tietz <kai.tietz@onevision.com>
32719
32720 PR bootstrap/47215
32721 * config/i386/i386.c (ix86_local_alignment): Handle
32722 case for va_list_type_node is nil.
32723 (ix86_canonical_va_list_type): Likewise.
32724
17681ddd 327252011-01-21 Alan Modra <amodra@gmail.com>
32726
32727 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
32728 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
32729
013b9671 327302011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32731
32732 * config/arm/arm.md (define_attr type): Rename f_load
32733 and f_store to f_fpa_load and f_fpa_store. Update.
32734 (write_conflict): Deal with rename fallout.
32735 (*push_fp_multi): Likewise.
32736 * config/arm/fpa.md (f_load): Use f_fpa_load.
32737 (f_store): Use f_fpa_store.
32738 (*movsf_fpa): Likewise.
32739 (*movdf_fpa): Likewise.
32740 (*movxf_fpa): Likewise.
32741 (*thumb2_movsf_fpa): Likewise.
32742 (*thumb2_movdf_fpa): Likewise.
32743 (*thumb2_movxf_fpa): Likewise.
32744 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
32745 f_loadd and f_stored.
32746 (*thumb2_movdi_vfp): Likewise.
32747 (*thumb2_movsf_vfp): Fix attribute to f_loads.
32748 (*thumb2_movsi_vfp): Likewise.
32749 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
32750 Use f_loads instead of f_load.
32751 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
32752
5cae3439 327532011-01-20 Anatoly Sokolov <aesok@post.ru>
32754
32755 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
32756 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
32757 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
32758 (xtensa_mode_dependent_address_p): New function.
32759 (constantpool_address_p): Make static. Change return type to bool.
32760 Change argument type to const_rtx. Use CONST_INT_P predicate.
32761
29bcbc13 327622011-01-20 Alexandre Oliva <aoliva@redhat.com>
32763
32764 PR debug/46583
32765 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
32766
f87ea39e 327672011-01-20 Jakub Jelinek <jakub@redhat.com>
32768
32769 PR debug/47283
32770 * cfgexpand.c (expand_debug_expr): Instead of generating
32771 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
32772 etc. handling.
32773
7003a7e5 327742011-01-20 Richard Guenther <rguenther@suse.de>
32775
32776 PR middle-end/47370
32777 * tree-inline.c (remap_gimple_op_r): Recurse manually for
32778 the pointer operand of MEM_REFs.
32779
9aa9c1e6 327802011-01-20 Jakub Jelinek <jakub@redhat.com>
32781
32782 PR tree-optimization/46130
32783 * ipa-split.c (consider_split): If return_bb contains non-virtual
32784 PHIs other than for retval or if split_function would not adjust it,
32785 refuse to split.
32786
34d5f36d 327872011-01-20 Richard Guenther <rguenther@suse.de>
32788
32789 PR tree-optimization/47167
32790 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
32791 Revert previous change, only avoid enumeral type changes.
32792
18695bc1 327932011-01-19 Mike Stump <mikestump@comcast.net>
32794
32795 * doc/tm.texi.in (BRANCH_COST): Englishify.
32796 * doc/tm.texi (BRANCH_COST): Likewise.
32797
02db81fa 327982011-01-19 Dodji Seketeli <dodji@redhat.com>
32799
32800 PR c++/47291
32801 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
3968fd16 32802 (gen_scheduled_generic_parms_dies): New functions.
32803 (gen_struct_or_union_type_die): Schedule template parameters DIEs
32804 generation for the end of CU compilation.
32805 (dwarf2out_finish): Generate template parameters DIEs here.
02db81fa 32806
36a2709b 328072011-01-19 Alexandre Oliva <aoliva@redhat.com>
32808
32809 PR debug/46240
32810 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
32811 debug bind stmt on merge edges.
32812
95b985e5 328132011-01-19 Alexandre Oliva <aoliva@redhat.com>
32814
32815 PR debug/47079
32816 PR debug/46724
32817 * function.c (instantiate_expr): Instantiate incoming rtl of
32818 implicit arguments, and recurse on VALUE_EXPRs.
32819 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
32820 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
32821
65d95190 328222011-01-19 Alexandre Oliva <aoliva@redhat.com>
32823
32824 * c-parser.c (c_parser_for_statement): Initialize
32825 collection_expression.
32826
82a4f0ea 328272011-01-19 Joseph Myers <joseph@codesourcery.com>
32828
32829 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
32830
111de144 328312011-01-19 Joseph Myers <joseph@codesourcery.com>
32832
32833 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
32834 (LINK_SHLIB_SPEC): Don't use %(link_path).
32835 (SUBTARGET_EXTRA_SPECS): Remove link_path.
32836
4e62d313 328372011-01-19 Joseph Myers <joseph@codesourcery.com>
32838
32839 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
32840 (NO_SHARED_LIB_SUPPORT): Remove.
32841 (LINK_SHLIB_SPEC): Remove one conditional definition.
32842
1572b5b7 328432011-01-19 Joseph Myers <joseph@codesourcery.com>
32844
32845 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
32846 %{call_shared}.
32847 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
32848 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
32849 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
32850 %{call_shared} and conditionals on these options not being passed.
32851 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
32852 %{call_shared}.
32853
574c4ab5 328542011-01-19 Jakub Jelinek <jakub@redhat.com>
32855
b234c94d 32856 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
32857 simplify.
32858
574c4ab5 32859 * ipa-split.c: Spelling fixes.
32860
e1a5ebc0 328612011-01-19 Richard Henderson <rth@redhat.com>
32862
32863 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
32864 (*mulsi3): Likewise.
32865
8d596102 32866 * longlong.h [__mn10300__] (count_leading_zeros): New.
32867 [__mn10300__] (umul_ppmm, smul_ppmm): New.
32868 [__mn10300__] (add_ssaaaa, subddmmss): New.
32869 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
32870 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
32871
fd1ec18e 328722011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32873
32874 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
32875
edad0637 328762011-01-19 Richard Henderson <rth@redhat.com>
32877
cff84f05 32878 * config/mn10300/mn10300.md (addsi3_flags): New.
32879 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
32880 (subsi3_flags, subc_internal, subdi3): New.
32881 (subdi3_internal, *subdi3_degenerate): New.
32882 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
32883
ad3e6900 32884 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
32885 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
32886 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
32887 * config/mn10300/mn10300-protos.h: Update.
32888 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
32889 (return_ret): Likewise. Rename from return_internal_regs.
32890 (return_internal): Remove.
32891
6f22c3b4 32892 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
32893 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
32894 (mn10300_legitimate_constant_p): Likewise.
32895 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
32896 (mn10300_frame_size): New.
32897 (mn10300_expand_prologue): Use it.
32898 (mn10300_expand_epilogue): Likewise.
32899 (mn10300_initial_offset): Likewise.
32900 * config/mn10300/mn10300-protos.h: Update.
32901 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
32902 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
32903 (prologue, epilogue, return_internal): Tidy output code.
32904 (mn10300_store_multiple_operation, return): Likewise.
32905 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
32906 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
32907 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
32908 (load_pic, am33_load_pic): New.
32909 (mn10300_load_pic0, mn10300_load_pic1): New.
32910
990679af 32911 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
32912 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
32913 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
32914 (cc_flags_for_mode, cc_flags_for_code): New.
32915 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
32916 overflow flag is not valid. Validate that the flags we need
32917 for the comparison are valid.
32918 (mn10300_output_cmp): Remove.
32919 (mn10300_output_add): New.
32920 (mn10300_select_cc_mode): Use cc_flags_for_code.
32921 (mn10300_split_cbranch): New.
32922 (mn10300_match_ccmode): New.
32923 (mn10300_split_and_operand_count): New.
32924 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
32925 to the function.
32926 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
32927 (addsi3): ... here. Use mn10300_output_add.
32928 (*addsi3_flags): New.
32929 (*am33_subsi3, *mn10300_subsi3): Merge...
32930 (subsi3): ... here. Use attribute isa.
32931 (*subsi3_flags): New.
32932 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
32933 when possible.
32934 (*am33_andsi3, *mn10300_andsi3): Merge...
32935 (andsi3): ... here.
32936 (*andsi3_flags): New.
32937 (andsi3 splitters): New.
32938 (*am33_iorsi3, *mn10300_iorsi3): Merge...
32939 (iorsi3): ... here.
32940 (*iorsi3_flags): New.
32941 (*am33_xorsi3, *mn10300_xorsi3): Merge...
32942 (xorsi3): ... here.
32943 (*xorsi3_flags): New.
32944 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
32945 (one_cmplsi2): ... here.
32946 (*one_cmplsi2_flags): New.
32947 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
32948 instead of "dax" in constraints. Use mn10300_split_cbranch.
32949 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
32950 use matching constraints to eliminate a self-comparison.
32951 (*integer_conditional_branch): Rename from integer_conditional_branch.
32952 Use int_mode_flags to match CC_REG.
32953 (*cbranchsi4_btst, *btstsi): New.
32954 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
32955 mn10300_split_cbranch.
32956 (*am33_cmpsf): Rename from am33_cmpsf.
32957 (*float_conditional_branch): Rename from float_conditional_branch.
32958 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
32959 (zero_extendqisi2): ... here.
32960 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
32961 (zero_extendhisi2): ... here.
32962 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
32963 (extendqisi2): ... here.
32964 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
32965 (extendhisi2): ... here.
32966 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
32967 (ashlsi3): ... here.
32968 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
32969 (lshrsi3): ... here.
32970 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
32971 (ashrsi3): ... here.
32972 (consecutive add peephole): Remove.
32973 * config/mn10300/predicates.md (label_ref_operand): New.
32974 (int_mode_flags): New.
32975 (CCZN_comparison_operator): New.
32976
5babaf81 32977 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
32978 (throughput_42_latency_43): New reservation.
32979 (mulsidi3, umulsidi3): New expanders.
32980 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
32981 the MDR register to allocation; separately allocate the low and
32982 high parts of the DImode result.
32983 (umulsidi3_internal): Similarly.
32984 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
32985 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
32986 (udivsi3, umodsi3): Remove.
32987 (udivmodsi4, divmodsi4): New expanders.
32988 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
32989 (*divmodsi4): Simiarly.
32990 (ext_internal): New.
32991
85a6eed4 32992 * config/mn10300/constraints.md ("z"): New constraint.
32993 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
32994 (FIXED_REGISTERS): Don't fix MDR.
32995 (CALL_USED_REGSITERS): Reformat nicely.
32996 (REG_ALLOC_ORDER): Add MDR.
32997 (enum regclass): Add MDR_REGS.
32998 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
32999 (IRA_COVER_CLASSES): Add MDR_REGS.
33000 (REGNO_REG_CLASS): Handle MDR_REG.
33001 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
33002 (mn10300_register_move_cost): Likewise.
33003 * config/mn10300/mn10300.md (MDR_REG): New.
33004 (*movsi_internal): Handle moves to/from MDR_REGS.
33005
c8a596d6 33006 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
33007 POST_MODIFY.
33008 (mn10300_secondary_reload): Tidy combination reload classes.
33009 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
33010 addresses for AM33. Allow symbolic offsets for reg+imm.
33011 (mn10300_regno_in_class_p): New.
33012 (mn10300_legitimize_reload_address): New.
33013 * config/mn10300/mn10300.h (enum reg_class): Remove
33014 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
33015 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
33016 SP_OR_GENERAL_REGS.
33017 (REG_CLASS_NAMES): Update to match.
33018 (REG_CLASS_CONTENTS): Likewise.
33019 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
33020 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
33021 (REGNO_IN_RANGE_P): Remove.
33022 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
33023 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
33024 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
33025 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
33026 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
33027 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
33028 (REGNO_GENERAL_P): New.
33029 (HAVE_POST_MODIFY_DISP): New.
33030 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
33031 (LEGITIMIZE_RELOAD_ADDRESS): New.
33032 * config/mn10300/mn10300-protos.h: Update.
33033
c78ac668 33034 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
33035 DATA_REGS for AM33 stack-pointer destination.
33036 (mn10300_preferred_output_reload_class): Likewise.
33037 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
33038 into a form appropriate for ...
33039 (TARGET_SECONDARY_RELOAD): New.
33040 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
33041 * config/mn10300/mn10300-protos.h: Update.
33042 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
33043 reload_insi; use the "A" constraint for the scratch; handle AM33
33044 moves of sp to non-address registers.
33045
edad0637 33046 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
33047 (*movqi_internal): ... here.
33048 (*am33_movhi, *mn10300_movhi): Merge into...
33049 (*movhi_internal): ... here.
33050 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
33051 as the source/destination of moves from/to SP.
33052 (movsf): Only allow for AM33-2.
2acf5550 33053 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
edad0637 33054 any integer constant constraint. Only allow for AM33-2. Tidy
33055 all of the alternative outputs.
33056 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
33057 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
33058 for MN103.
33059 (udivsi3, umodsi3): New patterns for MN103 only.
33060
15edf55e 330612011-01-19 Joern Rennecke <amylaar@spamcop.net>
33062
33063 * doc/tm.texi.in: Spell out that a lack of register class unions
33064 can lead to ICEs.
33065 * doc/tm.texi: Regenerate.
33066
a9309f85 330672011-01-19 Jakub Jelinek <jakub@redhat.com>
33068
85e2842b 33069 PR rtl-optimization/47337
33070 * dce.c (check_argument_store): New function.
33071 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
33072
a9309f85 33073 PR tree-optimization/47290
33074 * tree-eh.c (infinite_empty_loop_p): New function.
33075 (cleanup_empty_eh): Use it.
33076
b6315407 330772011-01-18 Steve Ellcey <sje@cup.hp.com>
33078
33079 PR target/46997
33080 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
33081 (a64_expand_widen_sum): Ditto.
33082 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
33083 (vec_extract_evenodd_help): Ditto.
33084 (vec_extract_evenv4hi): Ditto.
33085 (vec_extract_oddv4hi): Ditto.
33086 (vec_extract_evenv2si): Ditto.
33087 (vec_extract_oddv2si): Ditto.
33088 (vec_extract_evenv2sf): Ditto.
33089 (vec_extract_oddv2sf): Ditto.
33090 (vec_pack_trunc_v4hi: Ditto.
33091 (vec_pack_trunc_v2si): Ditto.
33092 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
33093 (vec_interleave_highv8qi): Ditto.
33094 (mix1_r): Ditto.
33095 (vec_extract_oddv8qi): Ditto.
33096 (vec_interleave_lowv4hi): Ditto.
33097 (vec_interleave_highv4hi): Ditto.
33098 (vec_interleave_lowv2si): Ditto.
33099 (vec_interleave_highv2si): Ditto.
33100
0f9c87cc 331012011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33102
33103 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
33104 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
33105 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
33106 (pa_c_mode_for_suffix): New.
33107 (TARGET_EXPAND_BUILTIN): Define.
33108 (TARGET_C_MODE_FOR_SUFFIX): Define.
33109 (pa_builtins): Define.
33110 (pa_init_builtins): Register __float128 type and init new support
33111 builtins.
33112 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
33113 * config/pa/quadlib.c (_U_Qfcopysign): New.
33114
156512c1 331152011-01-18 Eric Botcazou <ebotcazou@adacore.com>
33116
33117 PR middle-end/46894
33118 * explow.c (allocate_dynamic_stack_space): Do not assume more than
33119 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
33120 are defined.
33121
329c1e4e 331222011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
33123
33124 PR tree-optimization/47179
33125 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
33126 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
33127
73eb0a09 331282011-01-18 Richard Guenther <rguenther@suse.de>
33129
33130 PR rtl-optimization/47216
33131 * emit-rtl.c: Include tree-flow.h.
33132 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
33133 of replicating it with different semantics.
33134 * Makefile.in (emit-rtl.o): Adjust.
33135
c54f1e1f 331362011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33137
2e8ba7b3 33138 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
3968fd16 33139 (cortex_a9_dp): Handle neon types correctly.
c54f1e1f 33140
38ba30bf 331412011-01-18 Jakub Jelinek <jakub@redhat.com>
33142
33143 PR rtl-optimization/47299
33144 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
2e8ba7b3 33145 subtarget. Use normal multiplication if both operands are constants.
38ba30bf 33146 * expmed.c (expand_widening_mult): Don't try to optimize constant
33147 multiplication if op0 has VOIDmode. Convert op1 constant to mode
33148 before using it.
33149
304fe4ff 331502011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
33151
33152 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
33153 spacing after 'e.g.', typos, comma, hyphenation.
33154
8b8777b9 331552011-01-17 Richard Henderson <rth@redhat.com>
33156
9b192813 33157 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
33158 (rx_restricted_mem_operand): New.
33159 (rx_shift_operand): Use register_operand.
33160 (rx_source_operand, rx_compare_operand): Likewise.
33161 * config/rx/rx.md (addsi3_flags): New expander.
33162 (adddi3): Rewrite as expander.
33163 (adc_internal, *adc_flags, adddi3_internal): New patterns.
33164 (subsi3_flags): New expander.
33165 (subdi3): Rewrite as expander.
33166 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
33167
cefd18fa 33168 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
33169 (rx_init_builtins): Remove sat builtin.
33170 (rx_expand_builtin): Likewise.
33171 * config/rx/rx.md (ssaddsi3): New.
33172 (*sat): Rename from sat. Represent the CC_REG input.
33173
f0fcb36d 33174 * config/rx/predicates.md (rshift_operator): New.
33175 * config/rx/rx.c (rx_expand_insv): Remove.
33176 * config/rx/rx-protos.h: Update.
33177 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
33178 operand to the canonical position.
33179 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
33180 (*bitclr, *bitclr_in_memory): Similarly.
33181 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
33182 (insv): Retain the zero_extract in the expansion.
33183
2eccffc4 33184 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
33185 (bswaphi2, bitinvert, revw): Likewise.
33186
51e241f8 33187 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
33188 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
33189 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
33190 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
33191 (bitset, bitset_in_memory): Likewise.
33192 (bitinvert, bitinvert_in_memory): Likewise.
33193 (bitclr, bitclr_in_memory): Likewise.
33194 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
33195 (rx_strend, rx_cmpstrn): Likewise.
33196 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
33197 (bitop peep2 patterns): Remove.
33198
fc3b02a9 33199 * config/rx/rx.c (rx_match_ccmode): New.
33200 * config/rx/rx-protos.h: Update.
33201 * config/rx/rx.md (abssi2): Clobber, don't set flags.
33202 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
33203 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
33204 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
33205 (fix_truncsfsi2, floatsisf2): Likewise.
33206 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
33207 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
33208 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
33209 (*subsi3_flags, *xorsi3_flags): New.
33210
2e978fdc 33211 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
33212
6f04f6f0 33213 * config/rx/rx.c (rx_print_operand): Remove workaround for
33214 unsplit comparison operations.
33215
71a06535 33216 * config/rx/rx.md (movsicc): Split after reload.
33217 (*movsicc): Merge *movsieq and *movsine via match_operator.
33218 (*stcc): New pattern.
33219
39a76221 33220 * config/rx/rx.c (rx_float_compare_mode): Remove.
33221 * config/rx/rx.h (rx_float_compare_mode): Remove.
33222 * config/rx/rx.md (cstoresi4): Split after reload.
33223 (*sccc): New pattern.
33224
ccfccd66 33225 * config/rx/predicates.md (label_ref_operand): New.
33226 (rx_z_comparison_operator): New.
33227 (rx_zs_comparison_operator): New.
33228 (rx_fp_comparison_operator): New.
33229 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
33230 Validate that the flags are set properly for the comparison.
33231 (rx_gen_cond_branch_template): Remove.
33232 (rx_cc_modes_compatible): Remove.
33233 (mode_from_flags): New.
33234 (flags_from_code): Rename from flags_needed_for_conditional.
33235 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
33236 (rx_select_cc_mode): Likewise.
33237 (rx_split_fp_compare): New.
33238 (rx_split_cbranch): New.
33239 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
33240 (*cbranchsi4): Use match_operator and rx_split_cbranch.
33241 (*cbranchsf4): Similarly.
33242 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
33243 match_operator and rx_split_cbranch.
33244 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
33245 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
33246 (*cmpsi): Rename from cmpsi.
33247 (*tstsi): Rename from tstsi.
33248 (*cmpsf): Rename from cmpsf; use CC_Fmode.
33249 (*conditional_branch): Rename from conditional_branch.
33250 (*reveresed_conditional_branch): Remove.
33251 (b<code>): Remove expander.
33252 * config/rx/rx-protos.h: Update.
33253
f1ccf245 33254 * config/rx/rx.c (rx_compare_redundant): Remove.
33255 * config/rx/rx.md (cmpsi): Don't use it.
33256 * config/rx/rx-protos.h: Update.
33257
8b8777b9 33258 * config/rx/rx-modes.def (CC_F): New mode.
33259 * config/rx/rx.c (rx_select_cc_mode): New.
33260 * config/rx/rx.h (SELECT_CC_MODE): Use it.
33261 * config/rx/rx-protos.h: Update.
33262
6b8f34b9 332632011-01-17 Richard Henderson <rth@redhat.com>
33264
33265 * except.c (dump_eh_tree): Fix stray ; after for statement.
33266
c6ba6fb8 332672011-01-17 Richard Guenther <rguenther@suse.de>
33268
33269 PR tree-optimization/47313
33270 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
33271 handling before copying the body. Properly deal with
33272 by-reference result in SSA form.
33273
07133e98 332742011-01-17 Ian Lance Taylor <iant@google.com>
33275
6b2039df 33276 PR target/47219
07133e98 33277 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
33278 (struct_value_alias_set): Don't define.
33279 (sparc_option_override): Don't set sparc_sr_alias_set and
33280 struct_value_alias_set.
33281 (save_or_restore_regs): Use gen_frame_mem rather than calling
33282 set_mem_alias_set.
33283 (sparc_struct_value_rtx): Likewise.
33284
8196f263 332852011-01-17 H.J. Lu <hongjiu.lu@intel.com>
33286
33287 PR target/47318
656e2b9d 33288 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
8196f263 33289 (_mm_maskstore_pd): Likewise.
33290 (_mm_maskload_ps): Likewise.
33291 (_mm_maskstore_ps): Likewise.
33292 (_mm256_maskload_pd): Change mask to __m256i.
33293 (_mm256_maskstore_pd): Likewise.
33294 (_mm256_maskload_ps): Likewise.
33295 (_mm256_maskstore_ps): Likewise.
33296
33297 * config/i386/i386-builtin-types.def: Updated.
33298 (ix86_expand_special_args_builtin): Likewise.
33299
33300 * config/i386/i386.c (bdesc_special_args): Update
33301 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
33302 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
33303 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
33304 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
33305
33306 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
33307 Use <avxpermvecmode> on mask register.
33308 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
33309
37e66d5b 333102011-01-17 Olivier Hainque <hainque@adacore.com>
3968fd16 33311 Michael Haubenwallner <michael.haubenwallner@salomon.at>
33312 Eric Botcazou <ebotcazou@adacore.com>
37e66d5b 33313
33314 PR target/46655
33315 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
33316 if <= USHRT_MAX in 32-bit mode.
33317
a9efefe1 333182011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
33319
33320 * doc/install.texi (Configuration, Specific): Wrap long
33321 lines in examples. Allow line wrapping in long options
33322 and URLs where beneficial for PDF output.
33323
e84c8ab1 333242011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
33325
33326 * config/mips/mips.c (mips_classify_symbol): Don't return
33327 SYMBOL_PC_RELATIVE for nonlocal labels.
33328
e9d410bb 333292011-01-15 Eric Botcazou <ebotcazou@adacore.com>
6e6aba5d 33330
e9d410bb 33331 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
33332
333332011-01-15 Jan Hubicka <jh@suse.cz>
33334
33335 PR tree-optimization/47276
6e6aba5d 33336 * ipa.c (function_and_variable_visibility): Do not try to mark alias
33337 declarations as needed.
33338
16358a63 333392011-01-15 Martin Jambor <mjambor@suse.cz>
33340
33341 * common.opt (fdevirtualize): New flag.
33342 * doc/invoke.texi (Option Summary): Document it.
33343 * opts.c (default_options_table): Add devirtualize flag.
33344 * ipa-prop.c (detect_type_change): Return immediately if
33345 devirtualize flag is not set.
33346 (detect_type_change_ssa): Likewise.
33347 (compute_known_type_jump_func): Likewise.
33348 (ipa_analyze_virtual_call_uses): Likewise.
33349
7af23aa4 333502011-01-14 Martin Jambor <mjambor@suse.cz>
33351
33352 PR tree-optimization/45934
33353 PR tree-optimization/46302
33354 * ipa-prop.c (type_change_info): New type.
33355 (stmt_may_be_vtbl_ptr_store): New function.
33356 (check_stmt_for_type_change): Likewise.
33357 (detect_type_change): Likewise.
33358 (detect_type_change_ssa): Likewise.
33359 (compute_complex_assign_jump_func): Check for dynamic type change.
33360 (compute_complex_ancestor_jump_func): Likewise.
33361 (compute_known_type_jump_func): Likewise.
33362 (compute_scalar_jump_functions): Likewise.
33363 (ipa_analyze_virtual_call_uses): Likewise.
33364 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
33365
89222b99 333662011-01-14 Joseph Myers <joseph@codesourcery.com>
33367
33368 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
33369 * config/i386/i386.opt (msse5): New Alias.
33370
40ccd6e8 333712011-01-14 Joseph Myers <joseph@codesourcery.com>
33372
33373 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
33374 * config/sparc/linux64.h (CC1_SPEC): Likewise.
33375 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
33376 * config/sparc/sparc.h (CC1_SPEC): Likewise.
33377
a03467a2 333782011-01-14 Joseph Myers <joseph@codesourcery.com>
33379
33380 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
33381 -mcpu options.
33382 * config/sparc/linux64.h (CC1_SPEC): Likewise.
33383 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
33384 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
33385 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
33386 Likewise.
33387 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
33388
229e169b 333892011-01-14 Joseph Myers <joseph@codesourcery.com>
33390
2e8ba7b3 33391 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
229e169b 33392
102f9f10 333932011-01-14 Mike Stump <mikestump@comcast.net>
33394
33395 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
33396 * config/fr30/fr30.md: Likweise
33397 (movsi_push): Likewise.
33398 (movsi_pop): Likewise.
33399 (enter_func): Likewise.
33400 * config/moxie/moxie.md (movsi_push): Likewise.
33401 (movsi_pop): Likewise.
33402
4792d6fe 334032011-01-14 Joseph Myers <joseph@codesourcery.com>
33404
33405 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
33406 %{no_archive} %{exact_version}.
33407 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
33408 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
33409 %{no_archive} %{exact_version}.
33410 * config/mips/openbsd.h (LINK_SPEC): Likewise.
33411 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
33412 * config/mips/vxworks.h: Likewise.
33413
3ca0b262 334142011-01-14 Joseph Myers <joseph@codesourcery.com>
33415
2e8ba7b3 33416 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
3ca0b262 33417
c7e8df0a 334182011-01-14 Joseph Myers <joseph@codesourcery.com>
33419
33420 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
33421 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
33422
ced834db 334232011-01-14 Joseph Myers <joseph@codesourcery.com>
33424
33425 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
33426 -nodefaultlib.
33427
8fe30b37 334282011-01-14 Joseph Myers <joseph@codesourcery.com>
33429
33430 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
33431 for mcpu not cpu.
33432 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
33433 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
33434 not cpu.
33435 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
33436 Don't handle -shlib.
33437
d89fb5e4 334382011-01-14 Joseph Myers <joseph@codesourcery.com>
33439
33440 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
33441 (CC1_SPEC): Don't handle -profile.
33442
68952919 334432011-01-14 Joseph Myers <joseph@codesourcery.com>
33444
33445 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
33446 * config/mips/mips.h (CC1_SPEC): Likewise.
33447
ebd5c429 334482011-01-14 Joseph Myers <joseph@codesourcery.com>
33449
33450 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
33451 * config/mips/mips.h (CC1_SPEC): Likewise.
33452
137caf9f 334532011-01-14 Joseph Myers <joseph@codesourcery.com>
33454
33455 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
33456 * config/m32r/linux.h (LINK_SPEC): Likewise.
33457 * config/mips/linux.h (LINK_SPEC): Likewise.
33458 * config/mips/linux64.h (LINK_SPEC): Likewise.
33459 * config/sparc/linux.h (LINK_SPEC): Likewise.
33460 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
33461 LINK_SPEC): Likewise.
33462 * config/xtensa/linux.h (LINK_SPEC): Likewise.
33463
0dfe0898 334642011-01-14 Joseph Myers <joseph@codesourcery.com>
33465
33466 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
33467 %{version:-v}.
33468 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
33469
5fd4e2f4 334702011-01-14 Joseph Myers <joseph@codesourcery.com>
33471
33472 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
33473 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
33474
8495a137 334752011-01-14 Joseph Myers <joseph@codesourcery.com>
33476
33477 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
33478
92ff09c4 334792011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33480
33481 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
33482 supports -Bstatic/-Bdynamic.
33483 * configure: Regenerate.
33484
f067760b 334852011-01-14 Jan Hubicka <jh@suse.cz>
ba6ea72b 33486 Jack Howarth <howarth@bromo.med.uc.edu>
f067760b 33487
33488 PR target/46037
33489 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
33490 when checking debug_info_level. Test write_symbols instead of
33491 debug_hooks->var_location when setting flag_var_tracking_uninit.
33492
be97d4b6 334932011-01-14 Richard Guenther <rguenther@suse.de>
33494
33495 PR tree-optimization/47179
33496 * target.def (ref_may_alias_errno): New target hook.
33497 * targhooks.h (default_ref_may_alias_errno): Declare.
33498 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
33499 (default_ref_may_alias_errno): New function.
33500 * target.h (struct ao_ref_s): Declare.
33501 * tree-ssa-alias.c: Include target.h.
33502 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
33503 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
33504 (targhooks.o): Likewise.
33505 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
33506 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
33507
8de57388 335082011-01-14 Richard Guenther <rguenther@suse.de>
33509
33510 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
33511
b69d1cb6 335122011-01-14 Richard Guenther <rguenther@suse.de>
33513
33514 PR tree-optimization/47280
33515 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
33516 return CFG changes.
33517 (tree_ssa_forward_propagate_single_use_vars): Deal with
33518 CFG changes from associate_plusminus.
33519
0e020218 335202011-01-14 Richard Guenther <rguenther@suse.de>
33521
33522 PR middle-end/47281
33523 Revert
33524 2011-01-11 Richard Guenther <rguenther@suse.de>
33525
43f05945 33526 PR tree-optimization/46076
33527 * tree-ssa.c (useless_type_conversion_p): Conversions from
33528 unprototyped to empty argument list function types are useless.
0e020218 33529
72210aa1 335302011-01-14 Richard Guenther <rguenther@suse.de>
33531
33532 PR tree-optimization/47286
43f05945 33533 * tree-ssa-structalias.c (new_var_info): Register variables are global.
72210aa1 33534
b819947c 335352011-01-14 Martin Jambor <mjambor@suse.cz>
33536
33537 PR middle-end/46823
33538 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
33539
7af7466c 335402011-01-13 Anatoly Sokolov <aesok@post.ru>
33541
33542 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
33543 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
33544 * config/xtensa/xtensa.c (xtensa_libcall_value,
33545 xtensa_function_value_regno_p): New functions.
33546 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
33547
de0e5a52 335482011-01-13 Kai Tietz <kai.tietz@onevision.com>
33549
33550 PR c++/47213
33551 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
33552 PE specific hook.
33553 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
33554 New function prototype.
33555 * config/i386/winnt.c (i386_pe_assemble_visibility):
33556 Warn only if attribute was specified by user.
33557
6a0b65d3 335582011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
33559
33560 PR target/47251
33561 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
33562 floating point.
33563 (floatunsdidf2_fcfidu): Ditto.
33564
902602ef 335652011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33566
33567 * config/s390/s390.c (print_operand_address): Replace 'error' with
33568 'output_operand_lossage'.
33569 (print_operand): Likewise.
33570
b89c219c 335712011-01-13 Jeff Law <law@redhat.com>
33572
43f05945 33573 PR rtl-optimization/39077
b89c219c 33574 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
33575 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
33576 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
33577 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
33578 * gcse.c (prune_insertions_deletions): New function.
33579 (compute_pre_data): Use it.
33580
49a8ca48 335812011-01-13 Dodji Seketeli <dodji@redhat.com>
33582
33583 PR debug/PR46973
33584 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
33585 static function.
3968fd16 33586 (prune_unused_types_mark): Use it.
49a8ca48 33587
946d6c2b 335882011-01-13 Andrey Belevantsev <abel@ispras.ru>
33589
33590 PR rtl-optimization/45352
2acf5550 33591 * sel-sched.c: Update copyright years.
946d6c2b 33592 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
2acf5550 33593 in the advancing loop when we have issued issue_rate insns.
946d6c2b 33594
3562cea7 335952011-01-12 Richard Henderson <rth@redhat.com>
33596
7de3ada8 33597 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
33598 (TARGET_MD_ASM_CLOBBERS): New.
33599
4c6c308e 33600 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
33601 (TARGET_DELEGITIMIZE_ADDRESS): New.
33602
ae011785 33603 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
33604 (clzsi2, *bsch): New patterns.
33605
1a5a7888 33606 * config/mn10300/mn10300.md (INT): New mode iterator.
33607 (*mov<INT>_clr): New pattern, and peep2 to generate it.
33608
731049b6 33609 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
33610 flag_split_wide_types.
33611
3562cea7 33612 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
33613 (mn10300_trampoline_init): Rewrite without a template, an immediate
33614 load and a direct branch.
33615 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
33616
1a561788 336172011-01-12 Anatoly Sokolov <aesok@post.ru>
33618
33619 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
33620 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
33621 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
33622 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
33623
f2278eba 336242011-01-12 Kai Tietz <kai.tietz@onevision.com>
33625
33626 PR debug/47209
33627 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
33628 of type.
33629
0f8cfb36 336302011-01-12 Jan Hubicka <jh@suse.cz>
33631
33632 PR driver/47244
33633 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
33634 (PLUGIN_COND_CLOSE): New macro.
33635 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
33636
30eff873 336372011-01-12 Richard Guenther <rguenther@suse.de>
33638
33639 PR lto/47259
33640 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
33641 register variables in a MEM_REF.
33642
deb14f24 336432011-01-12 Joseph Myers <joseph@codesourcery.com>
33644
33645 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
33646 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
33647 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
33648 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
33649 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
33650 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
33651 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
33652 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
33653 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
33654 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
33655 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
33656 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
33657 * config/gnu-user.h: New. Copied from linux.h.
33658 (LINUX_TARGET_STARTFILE_SPEC): Rename to
33659 GNU_USER_TARGET_STARTFILE_SPEC.
33660 (LINUX_TARGET_ENDFILE_SPEC): Rename to
33661 GNU_USER_TARGET_ENDFILE_SPEC.
33662 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
33663 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
33664 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
33665 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
33666 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
33667 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
33668 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
33669 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
33670 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
33671 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
33672 * config/arm/linux-eabi.h (CC1_SPEC): Use
33673 GNU_USER_TARGET_CC1_SPEC.
33674 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
33675 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
33676 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
33677 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
33678 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
33679 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
33680 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
33681 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
33682
5c70c066 336832011-01-12 Richard Guenther <rguenther@suse.de>
33684
33685 PR other/46946
33686 * doc/invoke.texi (ffast-math): Document it is turned on
33687 with -Ofast.
33688
02a5f2b9 336892011-01-12 Jan Hubicka <jh@suse.cz>
33690
33691 PR tree-optimization/47233
17da0372 33692 * opts.c (common_handle_option): Disable ipa-reference with profile
33693 feedback.
02a5f2b9 33694
2acf5550 336952011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
ffbb3d61 33696
33697 * c-parser.c (c_parser_objc_at_property_declaration): Improved
17da0372 33698 error message.
33699
ffbb3d61 337002011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
33701
33702 * c-parser.c (c_lex_one_token): Updated and reindented some
33703 comments. No changes in code.
33704
3c6b311d 337052011-01-11 Ian Lance Taylor <iant@google.com>
33706
33707 * godump.c (go_output_var): Don't output the variable if there is
33708 already a type with the same name.
33709
5070eb47 337102011-01-11 Ian Lance Taylor <iant@google.com>
33711
33712 * godump.c (go_format_type): Don't generate float80.
33713
5d4ffb1c 337142011-01-11 Richard Henderson <rth@redhat.com>
33715
28f32607 33716 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
33717 declaration. Rewrite for both speed and size.
33718 (mn10300_address_cost_1): Remove.
33719 (mn10300_register_move_cost): New.
33720 (mn10300_memory_move_cost): New.
33721 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
33722 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
33723 extensions, shifts, BSWAP, CLZ.
33724 (mn10300_wide_const_load_uses_clr): Remove.
33725 (TARGET_REGISTER_MOVE_COST): New.
33726 (TARGET_MEMORY_MOVE_COST): New.
33727 * config/mn10300/mn10300-protos.h: Update.
33728 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
33729
59328a09 33730 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
33731 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
33732 * config/mn10300/mn10300-protos.h: Update.
33733 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
33734 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
33735 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
33736 (*test_int_bitfield, *test_byte_bitfield): Remove.
33737 (*bit_test, *subreg_bit_test): Remove.
c8196a0c 33738 * config/mn10300/predicates.md (const_8bit_operand): Remove.
59328a09 33739
2225047a 33740 * config/mn10300/constraints.md ("c"): Rename from "A".
33741 ("A", "D"): New constraint letters.
33742 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
33743 (fmssf4, fnmasf4, fnmssf4): Likewise.
33744
8af291b5 33745 * config/mn10300/mn10300.md (isa): New attribute.
33746 (enabled): New attribute.
33747
361bb6ad 33748 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
33749 (abssf2, negsf2): Define only for hardware fp.
33750 (sqrtsf2): Reformat.
33751 (addsf3, subsf3, mulsf3): Merge expander and insn.
33752
224cda8f 33753 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
33754 (DEBUGGER_AUTO_OFFSET): Remove.
33755 (DEBUGGER_ARG_OFFSET): Remove.
33756
32f9c04a 33757 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
33758 Emit register stores with the same offsets as the hardware.
33759 (mn10300_store_multiple_operation): Don't check that the register
33760 save offsets are monotonic.
33761 * config/mn10300/mn10300-protos.h: Update.
33762
059593e3 33763 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
33764
5d4ffb1c 33765 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
33766 in terms of the value on the stack, not the MDR register.
33767
232c9ac7 337682011-01-11 Jan Hubicka <jh@suse.cz>
33769
33770 PR lto/45721
33771 PR lto/45375
33772 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
33773 (symbol_alias_set_destroy, symbol_alias_set_contains,
33774 propagate_aliases_backward): Declare.
33775 * lto-streamer-out.c (struct sets): New sturcture.
33776 (trivally_defined_alias): New function.
33777 (output_alias_pair_p): Rewrite.
33778 (output_unreferenced_globals): Fix output of alias pairs.
33779 (produce_symtab): Likewise.
33780 * ipa.c (function_and_variable_visibility): Set weak alias destination
33781 as needed in lto.
33782 * varasm.c (symbol_alias_set_t): Remove.
33783 (symbol_alias_set_destroy): Export.
33784 (propagate_aliases_forward, propagate_aliases_backward): New functions
33785 based on ...
33786 (compute_visible_aliases): ... this one; remove.
33787 (trivially_visible_alias): New
33788 (trivially_defined_alias): New.
33789 (remove_unreachable_alias_pairs): Rewrite.
33790 (finish_aliases_1): Reorganize code checking if alias is defined.
33791 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
33792 in LTO mode.
33793
25fe7e3d 337942011-01-11 Richard Guenther <rguenther@suse.de>
33795
33796 PR tree-optimization/46076
33797 * tree-ssa.c (useless_type_conversion_p): Conversions from
33798 unprototyped to empty argument list function types are useless.
33799
a33a5782 338002011-01-11 Richard Guenther <rguenther@suse.de>
33801
33802 PR middle-end/45235
33803 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
33804 volatile MEMs as MEM_READONLY_P.
33805
57862ab5 338062011-01-11 Richard Guenther <rguenther@suse.de>
33807
33808 PR tree-optimization/47239
33809 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
33810
6623b33f 338112011-01-11 Jeff Law <law@redhat.com>
33812
c6d146ce 33813 PR tree-optimization/47086
6623b33f 33814 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
33815 IVs from statements that might throw.
33816
a3efa241 338172011-01-10 Jan Hubicka <jh@suse.cz>
33818
33819 PR lto/45375
33820 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
33821
566d3fc7 338222011-01-10 Jan Hubicka <jh@suse.cz>
33823
33824 PR lto/45375
33825 * profile.c (read_profile_edge_counts): Ignore profile inconistency
33826 when correcting profile.
33827
3ef2cbcf 338282011-01-10 Jan Hubicka <jh@suse.cz>
33829
33830 PR lto/46083
33831 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
33832 DECL_FINI_PRIORITY.
33833 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
33834 Restore DECL_FINI_PRIORITY.
33835
3580a9f3 338362011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
33837
33838 * doc/gimple.texi: Fix quoting of multi-word return values in
33839 @deftypefn statements. Ensure presence of return value. Wrap
33840 overlong @deftypefn lines.
33841 (is_gimple_operand, is_gimple_min_invariant_address): Remove
33842 descriptions of removed functions.
33843 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
33844 of multi-word return value in @deftypefn statement.
33845
cd8dcc05 338462011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
33847
33848 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
33849 (Conditional Expressions, Logical Operators)
33850 (Statement and operand traversals): Do not indent smallexample
33851 code. Fix duplicate function argument in example.
33852
c13d6d8f 338532011-01-10 Jeff Law <law@redhat.com>
33854
c6d146ce 33855 PR tree-optimization/47141
c13d6d8f 33856 * ipa-split.c (split_function): Handle case where we are
33857 returning a value and the return block has a virtual operand phi.
33858
a15d5ede 338592011-01-10 Jan Hubicka <jh@suse.cz>
33860
2acf5550 33861 PR tree-optimization/47234
a15d5ede 33862 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
33863 (pass_feedback_split_functions): Declare.
33864 * passes.c (init_optimization_passes): Add ipa-split as subpass of
33865 tree-profile.
33866 * ipa-split.c (gate_split_functions): Update comments; disable
33867 split-functions for profile_arc_flag and branch_probabilities.
33868 (gate_feedback_split_functions): New function.
33869 (execute_feedback_split_functions): New function.
33870 (pass_feedback_split_functions): New global var.
33871
759a30b2 338722011-01-10 H.J. Lu <hongjiu.lu@intel.com>
33873
33874 PR lto/46760
33875 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
33876 calling gimple_call_set_cannot_inline.
33877
1f65a68a 338782011-01-10 Iain Sandoe <iains@gcc.gnu.org>
33879
33880 * config/darwin-sections.def: Remove unused section.
33881
aed6e608 338822011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
33883
33884 PR c++/47218
33885 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
33886
3b77900e 338872011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
33888
33889 PR objc/47232
33890 * c-parser.c (c_parser_declaration_or_fndef): Improved
33891 error message.
33892
c32bb9a3 338932011-01-09 Kai Tietz <kai.tietz@onevision.com>
33894
33895 * config/i386/winnt.c (i386_pe_start_function): Make sure
33896 to switch back to function's section.
33897
bbcdd327 338982011-01-09 Iain Sandoe <iains@gcc.gnu.org>
33899
33900 PR gcc/46902
33901 PR testsuite/46912
33902 * plugin.c: Move include of dlfcn.h from here...
33903 * system.h: ... to here.
33904
339052011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7ac54e71 33906
33907 * doc/cpp.texi (C++ Named Operators): Fix markup for header
33908 file name.
33909 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
33910 two extra empty pages in PDF output.
33911
14a3bc63 339122011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
33913
33914 PR objc/47078
33915 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
33916 for error recovery purposes behave as if it was not specified so
33917 that the default type is usd.
33918
87ac7f21 339192011-01-07 Jan Hubicka <jh@suse.cz>
33920
33921 PR tree-optmization/46469
33922 * ipa.c (function_and_variable_visibility): Clear needed flags on
33923 nodes with external decls; handle weakrefs merging correctly.
33924
ae6f03e2 339252011-01-07 Joseph Myers <joseph@codesourcery.com>
33926
33927 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
33928 not false.
33929
de4d280b 339302011-01-07 Jan Hubicka <jh@suse.cz>
33931
dcab66ec 33932 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
de4d280b 33933 and no longer claim that gold is required for linker plugin.
33934 * configure: Regenerate.
33935 * gcc.c (PLUGIN_COND): New macro.
33936 (LINK_COMMAND_SPEC): Use it.
33937 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
33938 * config.in (HAVE_LTO_PLUGIN): New.
33939 * configure.ac (--with-lto-plugin): New parameter; autodetect
33940 HAVE_LTO_PLUGIN.
33941
01765fa2 339422011-01-07 Jan Hubicka <jh@suse.cz>
33943
33944 PR tree-optimization/46367
33945 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
33946 when we can update original.
33947 (cgraph_mark_inline_edge): Sanity check.
33948 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
33949
49397308 339502011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
33951
33952 * config/spu/spu.h (ASM_COMMENT_START): Define.
33953
5c1421d7 339542011-01-07 H.J. Lu <hongjiu.lu@intel.com>
33955
33956 PR driver/42445
33957 * gcc.c (%>S): New.
33958 (SWITCH_KEEP_FOR_GCC): Likewise.
33959 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
33960 (do_spec_1): Handle "%>".
33961
33962 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
33963
bb217be2 339642011-01-07 Jakub Jelinek <jakub@redhat.com>
33965
a0b41ee2 33966 PR target/47201
33967 * config/i386/i386.c (ix86_delegitimize_address): If
33968 simplify_gen_subreg fails, return orig_x.
33969
bb217be2 33970 PR bootstrap/47187
33971 * value-prof.c (gimple_stringop_fixed_value): Handle
33972 lhs of the call properly.
33973
cee60343 339742011-01-07 Jan Hubicka <jh@suse.cz>
33975
33976 PR lto/45375
33977 * lto-opt.c (lto_reissue_options): Set flag_shlib.
33978
3b3edcd4 339792011-01-07 Iain Sandoe <iains@gcc.gnu.org>
33980
63e7c5f4 33981 * target.def (function_switched_text_sections): New hook.
33982 * doc/tm.texi: Regenerated.
33983 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
3b3edcd4 33984 * final.c (default_function_switched_text_sections): New.
63e7c5f4 33985 (final_scan_insn): Call function_switched_text_sections when a
33986 mid-function section change occurs.
3b3edcd4 33987 * output.h (default_function_switched_text_sections): Declare.
63e7c5f4 33988 * config/darwin-protos.h (darwin_function_switched_text_sections):
33989 Likewise.
3b3edcd4 33990 * config/darwin.c (darwin_function_switched_text_sections): New.
63e7c5f4 33991 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
3b3edcd4 33992
1fce10e8 339932011-01-07 Iain Sandoe <iains@gcc.gnu.org>
33994
33995 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
33996 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
33997 the secondary code fragment when outputting for DWARF == 2.
33998
77a69f9f 339992011-01-07 Anatoly Sokolov <aesok@post.ru>
34000
34001 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
34002 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
34003 Remove.
34004 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
34005 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
34006
0dcc88b6 340072011-01-06 Eric Botcazou <ebotcazou@adacore.com>
34008
34009 PR debug/46704
43f05945 34010 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
34011 when it is not empty.
0dcc88b6 34012
340132011-01-06 Changpeng Fang <changpeng.fang@amd.com>
a97faf6b 34014
5d1e0109 34015 Bobcat Enablement
a97faf6b 34016 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
5d1e0109 34017 (case ${target}): Add btver1.
a97faf6b 34018 * config/i386/driver-i386.c (host_detect_local_cpu): Let
5d1e0109 34019 -march=native recognize btver1 processors.
a97faf6b 34020 * config/i386/i386-c.c (ix86_target_macros_internal): Add
5d1e0109 34021 btver1 def_and_undef
a97faf6b 34022 * config/i386/i386.c (struct processor_costs btver1_cost): New
5d1e0109 34023 btver1 cost table.
34024 (m_BTVER1): New definition.
34025 (m_AMD_MULTIPLE): Includes m_BTVER1.
34026 (initial_ix86_tune_features): Add btver1 tune.
34027 (processor_target_table): Add btver1 entry.
34028 (static const char *const cpu_names): Add btver1 entry.
34029 (software_prefetching_beneficial_p): Add btver1.
34030 (ix86_option_override_internal): Add btver1 instruction sets.
34031 (ix86_issue_rate): Add btver1.
34032 (ix86_adjust_cost): Add btver1.
a97faf6b 34033 * config/i386/i386.h (TARGET_BTVER1): New definition.
5d1e0109 34034 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
34035 (enum processor_type): Add PROCESSOR_BTVER1.
a97faf6b 34036 * config/i386/i386.md (define_attr "cpu"): Add btver1.
34037
361905db 340382011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34039
34040 PR target/43309
34041 * config/i386/i386.c (legitimize_tls_address)
34042 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
34043 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
34044 (tls_initial_exec_64_sun): New pattern.
34045
056df0a5 340462011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
34047
34048 * doc/invoke.texi (Overall Options): Improve wording and markup
34049 of the description of -wrapper.
34050
fef758e3 340512011-01-06 Joseph Myers <joseph@codesourcery.com>
34052
34053 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
34054 rdynamic, threads): New Driver options.
34055
256aa638 340562011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34057
34058 PR target/38118
34059 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
34060 if coming from .tdata.
34061 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
34062
bcac4551 340632011-01-06 Jan Hubicka <jh@suse.cz>
34064
34065 PR lto/47188
34066 * collect2.c (main): Do not enable LTOmode when plugin is active.
34067
ecaf5e86 340682011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34069
34070 PR other/45915
34071 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
34072 --version output if supported.
34073 * configure: Regenerate.
34074
a2d308f3 340752011-01-06 Joseph Myers <joseph@codesourcery.com>
34076
34077 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
34078 Driver options.
34079
a7d4dc67 340802011-01-06 Jakub Jelinek <jakub@redhat.com>
34081
34082 PR c/47150
34083 * c-convert.c (convert): When converting a complex expression
34084 other than COMPLEX_EXPR to a different complex type, ensure
34085 c_save_expr is called instead of save_expr, unless in_late_binary_op.
34086 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
34087 when converting COMPLEX_TYPE.
34088
caf6df13 340892011-01-06 Ira Rosen <irar@il.ibm.com>
34090
34091 PR tree-optimization/47139
34092 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
34093 only the last reduction value is used outside the loop. Update
34094 documentation.
34095
d6959f51 340962011-01-05 Joseph Myers <joseph@codesourcery.com>
34097
34098 * config/rtems.opt: New.
34099 * config.gcc (*-*-rtems*): Use rtems.opt.
34100
b978e3c6 341012011-01-05 Changpeng Fang <changpeng.fang@amd.com>
34102
34103 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
34104 processors do not support 3DNow instructions.
34105
e0b840fc 341062011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34107
34108 * config/spu/spu.c (spu_option_override): Set parameter
34109 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
34110
c7d28f13 341112011-01-05 Jan Hubicka <jh@suse.cz>
34112
34113 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
34114 at the command line.
34115
2b36ac0b 341162011-01-05 Martin Jambor <mjambor@suse.cz>
34117
34118 PR lto/47162
34119 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
34120 deltas on streamed outgoing edges.
34121 (output_node_opt_summary): Output info for outgoing edges only when
34122 the node is in new parameter set.
34123 (output_cgraph_opt_summary): New parameter set, passed to the two
34124 aforementioned functions. Update its forward declaration and its
34125 callee too.
34126
fdd84b77 341272011-01-05 Tom Tromey <tromey@redhat.com>
34128
34129 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
34130 operator to c_finish_omp_atomic.
34131 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
34132 (build_unary_op): Update.
34133 (build_modify_expr): Update.
34134 (build_asm_expr): Update.
34135
2fbdf9ef 341362011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34137
34138 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
34139 newly inserted insns.
34140 (pad_bb): Likewise.
34141 (spu_emit_branch_hint): Likewise.
34142 (insert_hbrp_for_ilb_runout): Likewise.
34143 (spu_machine_dependent_reorg): Call df_finish_pass after
34144 schedule_insns returns.
34145
a512540d 341462011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34147
34148 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
34149
da1084b7 341502011-01-05 Eric Botcazou <ebotcazou@adacore.com>
34151
34152 PR tree-optimization/47005
34153 * tree-sra.c (struct access): Add 'non_addressable' bit.
34154 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
34155 (decide_one_param_reduction): Return 0 if the parameter is passed by
34156 reference and one of the accesses in the group is non_addressable.
34157
4c06d6f7 341582011-01-04 Eric Botcazou <ebotcazou@adacore.com>
34159
34160 PR tree-optimization/47056
34161 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
34162 (mark_load): Likewise. Handle FUNCTION_DECL specially.
34163 (mark_store): Likewise. Pass STMT to ipa_record_reference.
34164
8ce094c3 341652011-01-04 Eric Botcazou <ebotcazou@adacore.com>
34166
34167 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
34168 initializer. Skip view conversions from aggregate types.
34169
ee2c1561 341702011-01-04 Kai Tietz <kai.tietz@onevision.com>
34171
34172 PR bootstrap/47055
34173 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
34174
ba6ea72b 341752011-01-04 Philipp Thomas <pth@suse.de>
7cecf4c1 34176
34177 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
34178 obvious typo.
34179
11efe736 341802011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34181
34182 * function.c (thread_prologue_and_epilogue_insns): Do not crash
34183 on empty epilogue sequences.
34184
5db972bd 341852011-01-04 Joseph Myers <joseph@codesourcery.com>
34186
34187 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
34188 non-static): New Driver options.
34189
871aed8a 341902011-01-04 Jie Zhang <jie@codesourcery.com>
34191
34192 PR driver/47137
34193 * gcc.c (default_compilers[]): Set combinable field to 0
34194 for all assembly languages.
34195
a9790f8f 341962011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
34197
34198 * config/mips/loongson3a.md: New file.
34199 * config/mips/mips.md: Include loongson3a.md.
34200 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
34201 TUNE_LOONGSON_3A.
34202
86347018 342032011-01-03 Eric Botcazou <ebotcazou@adacore.com>
34204
34205 PR middle-end/47017
34206 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
34207 instead of convert_memory_address_addr_space on the base expression.
34208
8e181c9d 342092011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34210
34211 * config/spu/spu.c (spu_option_override): Update error text
34212 for bad -march= / -mtune= values.
34213
0ef14db8 342142011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
34215
34216 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
34217 if branch-hint optimization will be performed.
34218
af9b9305 342192011-01-03 Jakub Jelinek <jakub@redhat.com>
34220
e65564ab 34221 PR tree-optimization/47148
34222 * ipa-split.c (split_function): Convert arguments to
34223 DECL_ARG_TYPE if possible.
34224
c9831663 34225 PR tree-optimization/47155
34226 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
34227 when computing uns.
34228
af9b9305 34229 PR rtl-optimization/47157
34230 * combine.c (try_combine): If undobuf.other_insn becomes
34231 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
34232 and set *new_direct_jump_p too.
34233
a1b6cd6a 342342011-01-03 Sebastian Pop <sebastian.pop@amd.com>
34235
34236 PR tree-optimization/47021
34237 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
34238
e487a6af 342392011-01-03 Jakub Jelinek <jakub@redhat.com>
34240
34241 * gcc.c (process_command): Update copyright notice dates.
34242 * gcov.c (print_version): Likewise.
34243 * gcov-dump.c (print_version): Likewise.
34244 * mips-tfile.c (main): Likewise.
34245 * mips-tdump.c (main): Likewise.
34246
dac98159 342472011-01-03 Martin Jambor <mjambor@suse.cz>
34248
34249 PR tree-optimization/46801
34250 * tree-sra.c (type_internals_preclude_sra_p): Check whether
34251 aggregate fields start at byte boundary instead of the bit-field flag.
34252
9dbb005d 342532011-01-03 H.J. Lu <hongjiu.lu@intel.com>
34254
34255 PR driver/47137
34256 * gcc.c (main): Revert revision 168407.
34257
783bc09c 342582011-01-03 Martin Jambor <mjambor@suse.cz>
34259
34260 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
34261
948d7007 342622011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4d5b2207 34263
34264 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
34265 vector optab to expand vector/scalar shift, update gimple to vector.
34266
76f3f3ab 342672011-01-03 Martin Jambor <mjambor@suse.cz>
34268
34269 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
34270 a thunk.
34271
9bab6a70 342722011-01-03 Martin Jambor <mjambor@suse.cz>
34273
34274 PR tree-optimization/46984
34275 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
34276 HOST_WIDE_INT.
34277 (cgraph_create_indirect_edge): Fixed line length.
34278 (cgraph_indirect_call_info): Declare.
34279 (cgraph_make_edge_direct) Update declaration.
34280 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
34281 (cgraph_create_indirect_edge): Use it.
34282 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
34283 callees.
34284 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
34285 the new thunk_delta representation.
34286 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
34287 HOST_WIDE_INT.
34288 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
34289 (ipa_read_indirect_edge_info): Likewise.
34290 * lto-cgraph.c (output_edge_opt_summary): New function.
34291 (output_node_opt_summary): Call it on all outgoing edges.
34292 (input_edge_opt_summary): New function.
34293 (input_node_opt_summary): Call it on all outgoing edges.
34294
4d81f9fa 342952011-01-02 H.J. Lu <hongjiu.lu@intel.com>
34296
34297 PR driver/47137
34298 * gcc.c (main): Don't check have_o when settting combine_inputs.
34299
9f3e3774 343002011-01-02 Eric Botcazou <ebotcazou@adacore.com>
34301
34302 * regrename.c: Add general comment describing the pass.
34303 (struct du_head): Remove 'length' field.
34304 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
34305 (regrename_optimize): Do not sort chains. Rework comments, add others.
34306 Force renaming to the preferred class (if any) in the first pass and do
34307 not consider registers that belong to it in the second pass.
34308 (create_new_chain): Do not set 'length' field.
34309 (scan_rtx_reg): Likewise.
34310
4547eca6 343112011-01-02 Jakub Jelinek <jakub@redhat.com>
34312
e47d81e0 34313 PR tree-optimization/47140
34314 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
34315 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
34316 to bit_value_binop.
34317
4547eca6 34318 PR rtl-optimization/47028
9f3e3774 34319 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
34320 parm_birth_insn instead of at the beginning of first bb.
4547eca6 34321
c22368c0 343222011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
1f071633 34323
34324 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
34325 Remove the word "see" before "@pxref".
34326 * doc/rtl.texi: Remove the word "see" before "@pxref".
34327
95f41c04 343282011-01-01 Jan Hubicka <jh@suse.cz>
34329
9f3e3774 34330 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
34331 memory.
95f41c04 34332
99a71bbc 343332011-01-01 Kai Tietz <kai.tietz@onevision.com>
34334
34335 PR target/38662
9f3e3774 34336 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
99a71bbc 34337
7dfbd804 34338\f
cd8b0daa 34339Copyright (C) 2011 Free Software Foundation, Inc.
7dfbd804 34340
34341Copying and distribution of this file, with or without modification,
34342are permitted in any medium without royalty provided the copyright
34343notice and this notice are preserved.