1 2011-08-22 Bernd Schmidt <bernds@codesourcery.com>
3 * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
4 to make computed_jump_p return true.
6 2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8 * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
9 (PICFLAG_FOR_TARGET): Substitute.
10 * aclocal.m4: Regenerate.
11 * configure: Regenerate.
13 2011-08-22 Dodji Seketeli <dodji@redhat.com>
15 * c-family/c-pch.c (c_common_read_pch): Re-set line table right
16 after reading in the pch.
18 2011-08-22 H.J. Lu <hongjiu.lu@intel.com>
20 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
22 * configure: Regenerated.
24 2011-08-22 Jakub Jelinek <jakub@redhat.com>
26 PR tree-optimization/50133
27 * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
28 from stmt instead of some statement around gsi.
31 * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
32 innerdecl is a VAR_DECL.
34 2011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
36 * config/i386/avx2intrin.h: New file.
37 * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
38 PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
39 V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
40 V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
41 V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
42 V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
43 V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
44 V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
45 V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
46 V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
47 V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
48 V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
49 V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
50 V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
51 V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
52 V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
53 V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
54 V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
55 VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
56 VOID_FTYPE_PV8SI_V8SI_V8SI,
57 V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
58 V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
59 V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
60 V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
61 V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
62 V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
63 V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
64 V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
65 V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
66 V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
67 V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
68 V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
69 V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
70 V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
71 V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
72 V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
73 V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
74 V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
75 V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
76 V4DI_FTYPE_V4DI_INT_CONVERT,
77 V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
78 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
79 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
80 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
81 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
82 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
83 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
84 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
85 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
86 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
87 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
88 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
89 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
90 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
91 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
92 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
93 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
94 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
95 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
96 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
97 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
98 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
99 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
100 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
101 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
102 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
103 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
104 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
105 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
106 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
107 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
108 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
109 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
110 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
111 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
112 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
113 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
114 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
115 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
116 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
117 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
118 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
119 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
120 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
121 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
122 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
123 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
124 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
125 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
126 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
127 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
128 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
129 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
130 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
131 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
132 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
133 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
134 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
135 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
136 IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
137 IX86_BUILTIN_VBROADCASTSS_PS256,
138 IX86_BUILTIN_VBROADCASTSD_PD256,
139 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
140 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
141 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
142 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
143 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
144 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
145 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
146 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
147 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
148 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
149 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
150 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
151 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
152 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
153 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
154 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
155 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
156 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
157 IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
158 IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
159 IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
160 IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
161 IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
162 IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
163 IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
164 IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
165 (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
166 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
167 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
168 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
169 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
170 (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
171 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
172 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
173 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
174 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
175 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
176 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
177 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
178 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
179 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
180 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
181 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
182 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
183 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
184 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
185 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
186 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
187 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
188 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
189 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
190 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
191 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
192 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
193 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
194 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
195 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
196 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
197 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
198 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
199 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
200 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
201 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
202 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
203 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
204 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
205 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
206 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
207 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
208 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
209 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
210 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
211 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
212 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
213 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
214 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
215 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
216 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
217 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
218 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
219 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
220 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
221 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
222 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
223 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
224 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
225 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
226 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
227 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
228 IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
229 IX86_BUILTIN_VBROADCASTSD_PD256,
230 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
231 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
232 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
233 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
234 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
235 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
236 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
237 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
238 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
239 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
240 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
241 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
242 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
243 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
244 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
245 IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
246 IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
247 IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
248 IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
249 IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
250 IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
251 IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
252 IX86_BUILTIN_GATHERDIV8SI.
253 (ix86_preferred_simd_mode): Support AVX2 modes.
254 (ix86_expand_args_builtin): Support AVX2 builtins.
255 (ix86_expand_special_args_builtin): Likewise.
256 (ix86_expand_builtin): Likewise.
257 * config/i386/i386.md (UNSPEC_VPERMSI): New.
258 (UNSPEC_VPERMDF): Likewise.
259 (UNSPEC_VPERMSF): Likewise.
260 (UNSPEC_VPERMDI): Likewise.
261 (UNSPEC_VPERMTI): Likewise.
262 (UNSPEC_GATHER): Likewise.
263 (ssemodesuffix): Extend.
264 * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
266 * config/i386/predicates.md (const1248_operand): New.
267 * config/i386/sse.md (VI_AVX2): New mode iterator.
268 (VI1_AVX2): Likewise.
269 (VI2_AVX2): Likewise.
270 (VI4_AVX2): Likewise.
271 (VI8_AVX2): Likewise.
272 (VIMAX_AVX2): Likewise.
273 (SSESCALARMODE): Likewise.
274 (VI12_AVX2): Likewise.
275 (VI24_AVX2): Likewise.
276 (VI124_AVX2): Likewise.
277 (VI248_AVX2): Likewise.
278 (VI48_AVX2): Likewise.
279 (VI4SD_AVX2): Likewise.
280 (V48_AVX2): Likewise.
281 (AVX256MODE2P): Likewise.
282 (AVXMODE48P_DI): Likewise.
283 (sse2_avx2): New mode attribute.
284 (ssse3_avx2): Likewise.
285 (sse4_1_avx2): Likewise.
286 (avx_avx2): Likewise.
287 (ssebytemode): Likewise.
288 (AVXTOSSEMODE): Likewise.
289 (AVXMODE48P_DI): Likewise.
290 (gthrfirstp): Likewise.
291 (gthrlastp): Likewise.
292 (lshift): New code_iterator
293 (lshift): New code attribute.
295 (ssescalarmodesuffix): Update.
296 (sseunpackmode): Likewise.
297 (ssepackmode): Likewise.
298 (avx2_vec_dupv4sf): New insn pattern.
299 (avx2_vec_dupv8sf): Likewise.
300 (avx2_interleave_highv4di): Likewise.
301 (avx2_interleave_lowv4di): Likewise.
302 (avx2_umulv4siv4di3): Likewise
303 (*avx2_umulv4siv4di3): Likewise
304 (avx2_pmaddwd): Likewise.
305 (*avx2_pmaddwd): Likewise.
306 (avx2_lshrqv4di3): Likewise.
307 (avx2_lshlqv4di3): Likewise.
308 (avx2_lshl<mode>3): Likewise.
309 (avx2_<umaxmin:code><mode>3): Likewise.
310 (*avx2_<umaxmin:code><mode>3): Likewise.
311 (avx2_<smaxmin:code><mode>3): Likewise.
312 (*avx2_<smaxmin:code><mode>3): Likewise.
313 (avx2_eq<mode>3): Likewise.
314 (*avx2_eq<mode>3): Likewise.
315 (avx2_gt<mode>3): Likewise.
316 (avx2_interleave_highv32qi): New.
317 (avx2_interleave_lowv32qi): Likewise.
318 (avx2_interleave_highv16hi): Likewise.
319 (avx2_interleave_lowv16hi): Likewise.
320 (avx2_interleave_highv8si): Likewise.
321 (avx2_interleave_lowv8si): Likewise.
322 (avx2_pshufd): Likewise.
323 (avx2_pshufd_1): Likewise.
324 (avx2_pshuflwv3): Likewise.
325 (avx2_pshuflw_1): Likewise.
326 (avx2_pshufhwv3): Likewise.
327 (avx2_pshufhw_1): Likewise.
328 (avx2_uavgv32qi3): Likewise.
329 (*avx2_uavgv32qi3): Likewise.
330 (avx2_uavgv16hi3): Likewise.
331 (*avx2_uavgv16hi3): Likewise.
332 (avx2_pmovmskb): Likewise.
333 (avx2_phaddwv16hi3): Likewise.
334 (avx2_phadddv8si3): Likewise.
335 (avx2_phaddswv16hi3): Likewise.
336 (avx2_phsubwv16hi3): Likewise.
337 (avx2_phsubdv8si3): Likewise.
338 (avx2_phsubswv16hi3): Likewise.
339 (avx2_pmaddubsw256): Likewise.
340 (avx2_umulhrswv16hi3): Likewise.
341 (*avx2_umulhrswv16hi3): Likewise.
342 (avx2_packusdw): Likewise.
343 (avx2_pblendd<mode>): Likewise.
344 (avx2_<code>v16qiv16hi2): Likewise.
345 (avx2_<code>v8qiv8si2): Likewise.
346 (avx2_<code>v8hiv8si2): Likewise.
347 (avx2_<code>v4qiv4di2): Likewise.
348 (avx2_<code>v4hiv4di2): Likewise.
349 (avx2_<code>v4siv4di2): Likewise.
350 (avx2_pbroadcast<mode>): Likewise.
351 (avx2_permvarv8si): Likewise.
352 (avx2_permv4df): Likewise.
353 (avx2_permvarv8sf): Likewise.
354 (avx2_permv4di): Likewise.
355 (avx2_permv2ti): Likewise.
356 (avx2_vec_dupv4df): Likewise.
357 (avx2_vbroadcasti128_<mode>): Likewise.
358 (avx2_vec_set_lo_v4di): Likewise.
359 (avx2_vec_set_hi_v4di): Likewise.
360 (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
361 (avx2_extracti128): Likewise.
362 (avx2_inserti128): Likewise.
363 (avx2_ashrvv8si): Likewise.
364 (avx2_ashrvv4si): Likewise.
365 (avx2_<lshift>vv8si): Likewise.
366 (avx2_<lshift>v<mode>): Likewise.
367 (avx2_<lshift>vv2di): Likewise.
368 (avx2_gathersi<mode>): Likewise.
369 (*avx2_gathersi<mode>): Likewise.
370 (avx2_gatherdi<mode>): Likewise.
371 (*avx2_gatherdi<mode>): Likewise.
372 (avx2_gatherdi<mode>256): Likewise.
373 (*avx2_gatherdi<mode>256): Likewise.
374 (*<plusminus_insn><mode>3): Update for AVX2.
375 (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
376 sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
377 (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
378 *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
379 (mul<mode>3): Rename from mulv8hi3. Use VI4_AVX2 mode iterator.
380 (*mul<mode>3): Rename from *mulv8hi3. Use VI4_AVX2 mode iterator.
382 (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
383 Use VI2_AVX2 mode iterator.
384 (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
385 Use VI2_AVX2 mode iterator. Update for AVX2.
386 (*sse4_1_mulv2siv2di3): Update for AVX2.
387 (ashr<mode>3): Use VI24_AVX2 mode iterator. Update for AVX2.
388 (lshr<mode>3): Use VI248_AVX2 mode iterator. Update for AVX2.
389 (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3. Use VIMAX_AVX2
390 mode iterator. Update for AVX2.
391 (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3. Use VI
393 (*andnot<mode>3): Likewise. Update for AVX2.
394 (<any_logic:code><mode>3): Use VI mode iterator.
395 (*<any_logic:code><mode>3): Likewise. Update for AVX2.
396 (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
397 Use VI1_AVX mode iterator. Update for AVX2.
398 (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
399 Use VI2_AVX mode iterator. Update for AVX2.
400 (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
401 Use VI1_AVX mode iterator. Update for AVX2.
402 (<sse2_avx2>_psadbw): Rename from sse2_psadbw. Use VI8_AVX2
403 mode iterator. Update for AVX2.
404 (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3. Use
405 Vi1_AVX2 mode iterator. Update for AVX2.
406 (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3. Use
407 VI124_AVX2 mode iterator. Update for AVX2.
408 (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti. Use
409 SSESCALARMODE mode iterator. Update for AVX2.
410 (abs<mode>2): Use VI124_AVX2 mode iterator. Update for AVX2.
411 (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa. Use VI8_AVX2
412 mode iterator. Update for AVX2.
413 (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw. Use VI1_AVX2
414 mode iterator. Update for AVX2.
415 (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb. Use VI1_AVX2
416 mode iterator. Update for AVX2.
417 (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb. Use VI2_AVX2
418 mode iterator. Update for AVX2.
419 (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
420 avx_maskload<ssemodesuffix><avxsizesuffix>. Use VI48_AVX2
422 (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
423 avx_maskstore<ssemodesuffix><avxsizesuffix>. Use VI48_AVX2
425 * doc/extend.texi: Document AVX2 built-in functions.
426 * doc/invoke.texi: Document -mavx2.
428 2011-08-22 Matthias Klose <doko@debian.org>
431 2011-07-11 Arthur Loiret <aloiret@debian.org>
432 Matthias Klose <doko@debian.org>
433 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
434 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
436 * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
438 2011-08-22 Mikael Pettersson <mikpe@it.uu.se>
441 * ira-color.c (assign_hard_reg): Move saved_nregs declaration
442 to #ifndef HONOR_REG_ALLOC_ORDER block.
444 2011-08-21 Richard Henderson <rth@redhat.com>
446 * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
447 * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
448 * resource.c (next_insn_no_annul): Likewise.
449 (mark_set_resources): Likewise.
450 * reorg.c (delete_from_delay_slot): Likewise.
451 (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
452 (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
454 2011-08-21 Uros Bizjak <ubizjak@gmail.com>
456 * config/i386/i386.md (any_div): Remove.
457 (sgnprefix): Update for removal.
460 2011-08-20 Vladimir Makarov <vmakarov@redhat.com>
462 * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
463 for ira_reg_class_max_nregs. Increase pressure by 1.
464 (mark_pseudo_regno_subword_dead): Use allocno class
465 for ira_reg_class_max_nregs.
467 2011-08-20 Richard Henderson <rth@redhat.com>
469 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
470 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
471 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
472 config/c6x/ltf.c: Adjust include path for soft-fp.
474 2011-08-20 H.J. Lu <hongjiu.lu@intel.com>
477 * config.gcc (tm_file): Add initfini-array.h if
478 .init_arrary/.fini_array are supported.
480 * crtstuff.c: Don't generate .ctors nor .dtors sections if
481 USE_INITFINI_ARRAY is defined.
483 * output.h (default_elf_init_array_asm_out_constructor): New.
484 (default_elf_fini_array_asm_out_destructor): Likewise.
485 * varasm.c (elf_init_array_section): Likewise.
486 (elf_fini_array_section): Likewise.
487 (get_elf_initfini_array_priority_section): Likewise.
488 (default_elf_init_array_asm_out_constructor): Likewise.
489 (default_elf_fini_array_asm_out_destructor): Likewise.
491 * config/initfini-array.h: New.
493 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
495 * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
496 OK for ST_REGS and FP_REGS before taking those classes into account.
498 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
500 * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
501 before checking for annulled branches.
503 2011-08-20 Uros Bizjak <ubizjak@gmail.com>
505 * config/i386/i386.c (ix86_binary_operator_ok): Use
506 satisfies_constraint_L.
508 2011-08-20 Uros Bizjak <ubizjak@gmail.com>
509 Michael Matz <matz@suse.de>
511 * config/i386/i386.c (ix86_expand_round_sse4): Expand as
512 trunc (a + copysign (nextafter (0.5, 0.0), a)).
514 2011-08-20 Anatoly Sokolov <aesok@post.ru>
516 * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
517 * doc/tm.texi: Regenerate.
518 * targhooks.c (default_preferred_output_reload_class): Don't use
519 PREFERRED_OUTPUT_RELOAD_CLASS macro.
520 * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
522 2011-08-20 Jakub Jelinek <jakub@redhat.com>
524 PR tree-optimization/48739
525 * tree-ssa.c: Include cfgloop.h.
526 (execute_update_addresses_taken): When updating ssa, if in loop closed
527 SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
528 * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
530 2011-08-19 Vladimir Makarov <vmakarov@redhat.com>
532 PR rtl-optimization/49936
533 * ira.c (ira_init_register_move_cost): Ignore too small subclasses
534 for calculation of max register move costs.
536 2011-08-19 Joseph Myers <joseph@codesourcery.com>
538 * c-parser.c (c_parser_postfix_expression): Convert operands of
539 __builtin_complex to their semantic types.
541 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
544 * explow.c (convert_memory_address_addr_space): Also permute the
545 conversion and addition of constant for zero-extend.
547 2011-08-19 Joseph Myers <joseph@codesourcery.com>
549 * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
550 * doc/extend.texi (__builtin_complex): Document.
552 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
554 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
556 (convert_mult_to_widen): Convert constant inputs to the right type.
557 (convert_plusminus_to_widen): Don't automatically reject inputs that
559 Convert constant inputs to the right type.
561 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
563 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
566 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
568 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
569 unsigned inputs of different modes.
570 (convert_plusminus_to_widen): Likewise.
572 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
574 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
576 Use 'type' from caller, not inferred from 'rhs'.
577 Don't reject non-conversion statements. Do return lhs in this case.
578 (is_widening_mult_p): Add new argument 'type'.
579 Use 'type' from caller, not inferred from 'stmt'.
580 Pass type to is_widening_mult_rhs_p.
581 (convert_mult_to_widen): Pass type to is_widening_mult_p.
582 (convert_plusminus_to_widen): Likewise.
584 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
586 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
587 Ensure the the larger type is the first operand.
589 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
591 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
592 unsupported unsigned multiplies to signed.
593 (convert_plusminus_to_widen): Likewise.
595 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
597 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
598 conversion statement separating multiply-and-accumulate.
600 2011-08-19 Richard Guenther <rguenther@suse.de>
602 PR tree-optimization/50067
603 * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
604 offset only if we accounted for it.
606 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
608 * config/arm/arm.md (maddhidi4): Remove '*' from name.
609 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
610 * optabs.c (find_widening_optab_handler_and_mode): New function.
611 (expand_widen_pattern_expr): Use find_widening_optab_handler.
612 (expand_binop_directly): Likewise.
613 (expand_binop): Likewise.
614 * optabs.h (find_widening_optab_handler): New macro define.
615 (find_widening_optab_handler_and_mode): New prototype.
616 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
617 type precision rules.
618 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
619 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
620 (is_widening_mult_rhs_p): Allow widening by more than one mode.
621 Explicitly disallow mis-matched input types.
622 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
623 input types to fit the new handler.
624 (convert_plusminus_to_widen): Likewise.
626 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
628 * expr.c (expand_expr_real_2): Use widening_optab_handler.
629 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
630 (gen_insn): $N now means $a must be wider than $b, not consecutive.
631 * optabs.c (widened_mode): New function.
632 (expand_widen_pattern_expr): Use widening_optab_handler.
633 (expand_binop_directly): Likewise.
634 (expand_binop): Likewise.
635 * optabs.h (widening_optab_handlers): New struct.
636 (optab_d): New member, 'widening'.
637 (widening_optab_handler): New function.
638 (set_widening_optab_handler): New function.
639 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
640 widening_optab_handler.
641 (convert_plusminus_to_widen): Likewise.
643 2011-08-19 Joseph Myers <joseph@codesourcery.com>
645 * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
647 * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
648 * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
650 2011-08-19 Joseph Myers <joseph@codesourcery.com>
652 * opth-gen.awk: Do not declare target save/restore structures and
653 functions if IN_RTS defined.
655 2011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
658 * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
659 when stack was realigned in interrupt handler prologue.
661 2011-08-18 Joseph Myers <joseph@codesourcery.com>
663 * c-decl.c (shadow_tag_warned): Check for _Noreturn.
664 (quals_from_declspecs): Assert _Noreturn not present.
665 (grokdeclarator): Handle _Noreturn.
666 (build_null_declspecs): Initialize noreturn_p.
667 (declspecs_add_scspec): Handle RID_NORETURN.
668 * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
669 (c_parser_attributes): Handle RID_NORETURN.
670 * c-tree.h (struct c_declspecs): Add noreturn_p.
671 * ginclude/stdnoreturn.h: New.
672 * Makefile.in (USER_H): Add stdnoreturn.h.
674 2011-08-18 Kirill Yukhin <kirill.yukhin@intel.com>
676 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
677 (OPTION_MASK_ISA_AVX_UNSET): Update.
678 (OPTION_MASK_ISA_AVX2_UNSET): New.
679 (ix86_handle_option): Handle OPT_mavx2 case.
680 * config/i386/cpuid.h (bit_AVX2): New.
681 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
683 * config/i386/i386-c.c (ix86_target_macros_internal):
684 Conditionally define __AVX2__.
685 * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
686 Define "core-avx2" processor alias. Handle avx2 option.
687 (ix86_valid_target_attribute_inner_p): Handle avx2 option.
688 * config/i386/i386.h (TARGET_AVX2): New.
689 * config/i386/i386.opt (mavx2): New.
690 * doc/invoke.texi: Document -mavx2.
692 2011-08-18 Vladimir Makarov <vmakarov@redhat.com>
694 PR rtl-optimization/49890
695 * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
696 subclasses of class which is superset of a pressure class.
698 2011-08-18 H.J. Lu <hongjiu.lu@intel.com>
699 Igor Zamyatin <igor.zamyatin@intel.com>
701 * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
702 with HOST_WIDE_INT for isa_flag.
703 (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
706 * config/i386/i386.c (ix86_target_string): Replace int with
707 HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa.
708 (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
709 (pta_flags): Removed.
710 (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
711 (pta): Use HOST_WIDE_INT on flags.
712 (builtin_isa): Use HOST_WIDE_INT on isa.
713 (ix86_add_new_builtins): Likewise.
714 (def_builtin): Use HOST_WIDE_INT on mask.
715 (def_builtin_const): Likewise.
716 (builtin_description): Likewise.
718 * config/i386/i386.opt (ix86_isa_flags): Replace int with
720 (ix86_isa_flags_explicit): Likewise.
721 (x_ix86_isa_flags_explicit): Likewise.
723 2011-08-17 Vladimir Makarov <vmakarov@redhat.com>
725 PR rtl-optimization/50107
726 * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
727 (ira_hard_reg_in_set_p): New.
729 * ira-color.c (calculate_saved_nregs): New.
730 (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all
732 (allocno_reload_assign, fast_allocation): Use
733 ira_hard_reg_set_intersection_p instead of
734 ira_hard_reg_not_in_set_p.
736 * ira.c (setup_reg_renumber): Use
737 ira_hard_reg_set_intersection_p instead of
738 ira_hard_reg_not_in_set_p.
739 (setup_allocno_assignment_flags, calculate_allocation_cost): Use
740 ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
742 * ira-costs.c (ira_tune_allocno_costs): Use
743 ira_hard_reg_set_intersection_p instead of
744 ira_hard_reg_not_in_set_p.
746 2011-08-18 H.J. Lu <hongjiu.lu@intel.com>
747 Igor Zamyatin <igor.zamyatin@intel.com>
749 * hwint.h (HOST_WIDE_INT_1): New.
751 * opt-functions.awk (switch_bit_fields): Initialize the
753 (host_wide_int_var_name): New.
754 (var_type_struct): Check and return HOST_WIDE_INT.
756 * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
758 * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
760 * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly
761 check masks for HOST_WIDE_INT.
763 * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
764 (option_enabled): Likewise.
765 (get_option_state): Likewise.
767 * opts.h (cl_option): Add cl_host_wide_int. Change var_value
770 2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
771 Marc Glisse <marc.glisse@normalesup.org>
774 * target.def (decl_mangling_context): New C++ hook.
775 * doc/tm.texi: Regenerate.
776 * config/sol2-cxx.c, config/sol2-stubs.c: New files.
777 * config/sol2-protos.h: Group by source file.
778 (solaris_cxx_decl_mangling_context): Declare.
779 * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
780 * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
782 * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
783 Add sol2-stubs.o to extra_objs.
785 2011-08-18 Jakub Jelinek <jakub@redhat.com>
788 * stor-layout.c (update_alignment_for_field): Don't ICE on
789 packed flexible array members if ms_bitfield_layout_p.
792 * config/i386/i386.c (assign_386_stack_local): Call validize_mem
793 on the result before returning it.
796 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
797 is a debug stmt, use location of the first non-debug stmt after it.
799 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
801 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
802 (arm_size_rtx_costs): Likewise.
804 2011-08-18 Richard Guenther <rguenther@suse.de>
806 * tree.h (tree_int_cst_msb): Remove.
807 * tree.c (tree_int_cst_msb): Likewise.
808 (tree_int_cst_sign_bit): Move from ...
809 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
811 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
813 * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
814 * doc/tm.texi: Regenerate.
815 * target.def (rtx_costs): Add an opno parameter.
816 * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
817 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
818 * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
819 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
820 * cse.c (COST_IN): Add an opno parameter.
821 (notreg_cost): Likewise. Update call to rtx_cost.
822 (COST, fold_rtx): Update accordingly.
823 * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
824 * expmed.c (emit_store_flag): Likewise.
825 * optabs.c (avoid_expensive_constant): Add an opno parameter.
826 Update call to rtx_cost.
827 (expand_binop_directly, expand_binop): Likewise.
828 (expand_twoval_binop, prepare_cmp_insn): Likewise.
829 * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
830 (set_src_cost, get_full_set_src_cost): Update accordingly.
831 * rtlanal.c (rtx_cost): Add an opno parameter. Update call
833 (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
834 (default_adress_cost): Update calls to rtx_cost.
836 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
837 (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
838 (arm_rtx_costs): Add an opno parameter.
839 * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
840 adjust any recursive rtx-cost calls.
841 * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
842 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
843 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
844 * config/cris/cris.c (cris_rtx_costs): Likewise.
845 * config/frv/frv.c (frv_rtx_costs): Likewise.
846 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
847 * config/i386/i386.c (ix86_rtx_costs): Likewise.
848 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
849 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
850 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
851 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
852 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
853 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
854 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
855 * config/mep/mep.c (mep_rtx_cost): Likewise.
856 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
857 * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
858 (mips_zero_extend_cost): Add an opno parameter.
859 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
860 * config/mn10300/mn10300.c (mn10300_address_cost): Update call
862 (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
864 * config/pa/pa.c (hppa_rtx_costs): Likewise.
865 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
866 * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
867 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
868 (rs6000_debug_rtx_costs): Likewise.
869 * config/s390/s390.c (s390_rtx_costs): Likewise.
870 * config/score/score-protos.h (score_rtx_costs): Likewise.
871 * config/score/score.c (score_rtx_costs): Likewise.
872 * config/sh/sh.c (andcosts): Update call to rtx_cost.
873 (sh_rtx_costs): Add an opno parameter.
874 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
875 * config/spu/spu.c (spu_rtx_costs): Likewise.
876 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
877 * config/v850/v850.c (v850_rtx_costs): Likewise.
878 * config/vax/vax.c (vax_rtx_costs): Likewise.
879 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
881 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
883 * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
884 * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
886 * calls.c (precompute_register_parameters): Likewise.
887 * combine.c (expand_compound_operation, make_extraction): Likewise.
888 (force_to_mode, distribute_and_simplify_rtx): Likewise.
889 * dse.c (find_shift_sequence): Likewise.
890 * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
891 * expr.c (compress_float_constant): Likewise.
892 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
893 * gcse.c (want_to_gcse_p): Likewise.
894 * ifcvt.c (noce_try_sign_mask): Likewise.
895 * loop-doloop.c (doloop_optimize): Likewise.
896 * loop-invariant.c (create_new_invariant): Likewise.
897 * optabs.c (avoid_expensive_constant): Likewise.
898 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
899 (try_replace_in_use, reload_cse_move2add): Likewise.
900 * reload1.c (calculate_elim_costs_all_insns): Likewise.
901 (note_reg_elim_costly): Likewise.
902 * rtlanal.c (insn_rtx_cost): Likewise.
903 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
904 * stmt.c (lshift_cheap_p): Likewise.
905 * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
906 * config/avr/avr.c (final_prescan_insn): Likewise.
907 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
908 * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
910 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
912 * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
913 * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
914 * cfgloopanal.c (seq_cost): Likewise.
915 * loop-invariant.c (create_new_invariant): Likewise.
916 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
917 (reload_cse_move2add): Use get_full_set_rtx_cost.
919 2011-08-18 Richard Guenther <rguenther@suse.de>
921 * expr.c (get_inner_reference): Fix typo in last change.
923 2011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
924 Joseph Myers <joseph@codesourcery.com>
926 PR tree-optimization/49963
927 * hwint.c (absu_hwi): Define.
928 * hwint.h (absu_hwi): Declare.
929 * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
931 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
932 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
934 2011-08-18 Richard Guenther <rguenther@suse.de>
936 * expr.c (get_inner_reference): Sign-extend the constant
937 twos-complement offset before doing arbitrary precision
939 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
940 (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
941 to get_constraint_for_ptr_offset.
943 2011-08-17 Kaz Kojima <kkojima@gcc.gnu.org>
946 * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
948 2011-08-17 Richard Guenther <rguenther@suse.de>
950 * tree.h (convert_to_ptrofftype_loc): New function.
951 (convert_to_ptrofftype): Define.
952 * builtins.c (expand_builtin_bzero): Use size_type_node.
953 (fold_builtin_bzero): Likewise.
954 (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
955 * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
956 * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
957 (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
958 * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
959 * fold-const.c (build_range_check): Negate using the original type.
960 (fold_unary_loc): Use fold_build_pointer_plus_loc.
961 * gimple-fold.c (gimple_adjust_this_by_delta): Use
962 convert_to_ptrofftype.
963 * gimplify.c (gimplify_self_mod_expr): Likewise.
964 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
965 (graphite_create_new_loop_guard): Likewise.
966 * graphite-sese-to-poly.c (my_long_long): Remove.
967 (scop_ivs_can_be_represented): Adjust.
968 * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
969 * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
970 * tree-loop-distribution.c (build_size_arg_loc): Use
972 (generate_memset_zero): Simplify.
973 * tree-mudflap.c: Use fold_convert, not convert.
974 * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
976 (determine_offset): Likewise for DR_STEP.
977 (valid_initializer_p): Likewise.
978 * tree-profile.c (prepare_instrumented_value): Convert the pointer
979 to an integer type of same size.
980 * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
981 to sizetype without need.
982 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
983 * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
984 * tree-ssa-loop-manip.c (create_iv): Likewise.
985 (determine_exit_conditions): Adjust comment.
986 * tree-ssa-pre.c (create_expression_by_pieces): Use
987 convert_to_ptrofftype.
988 * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
989 * varasm.c (array_size_for_constructor): Compute using double_ints.
991 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
993 * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
994 when generating an integer result where possible. Short-cut
995 comparison against 0 also for QImode.
997 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
999 * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
1000 * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
1002 * config/spu/spu.c (spu_legitimize_reload_address): New function.
1003 (spu_legitimate_address_p): Do not check displacement if the base
1004 is an eliminable stack register.
1006 2011-08-16 Anatoly Sokolov <aesok@post.ru>
1008 * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
1009 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1010 * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
1011 m32c_preferred_output_reload_class): Remove.
1012 * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
1013 Change rclass argument and return types to reg_class_t. Use
1014 reg_class_subset_p instead of class_sizes.
1015 (m32c_preferred_output_reload_class): Make static. Change rclass
1016 argument and return types to reg_class_t.
1017 (TARGET_PREFERRED_RELOAD_CLASS,
1018 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1020 2011-08-16 Kai Tietz <ktietz@redhat.com>
1022 * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
1024 2011-08-16 Richard GUenther <rguenther@suse.de>
1026 PR tree-optimization/50082
1027 * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
1028 warnings here, instead of ...
1029 (ssa_forward_propagate_and_combine): ... here.
1030 (forward_propagate_into_comparison_1): Adjust.
1031 (forward_propagate_into_comparison): Likewise.
1032 (forward_propagate_into_gimple_cond): Likewise.
1033 (forward_propagate_into_cond): Likewise.
1035 2011-08-16 Andreas Schwab <schwab@redhat.com>
1037 * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
1038 instead of ggc_alloc_zone_vec_rtvec_def.
1040 2011-08-16 Richard Guenther <rguenther@suse.de>
1042 * tree.h (ptrofftype_p): New helper function.
1043 * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
1044 offset verification.
1045 (verify_gimple_assign_binary): Likewise.
1046 * tree.c (build2_stat): Likewise.
1047 * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
1048 (reset_evolution_in_loop): Likewise.
1049 * tree-chrec.h (build_polynomial_chrec): Likewise.
1051 2011-08-16 Liang Wang <lwang1@marvell.com>
1053 * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
1054 ggc_alloc_zone_vec_rtvec_def.
1056 2011-08-16 Richard Guenther <rguenther@suse.de>
1058 * tree-vrp.c (extract_range_from_multiplicative_op_1): New
1059 helper factored out from ...
1060 (extract_range_from_binary_expr_1): ... here. Re-structure
1061 to not glob handling too different tree codes.
1063 2011-08-15 Richard Henderson <rth@redhat.com>
1066 * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
1067 setting out to include allocate_stack named pattern as well.
1068 * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
1069 * stmt.c (expand_stack_restore): Likewise.
1071 2011-08-15 Richard Guenther <rguenther@suse.de>
1074 * fold-const.c (maybe_canonicalize_comparison_1): Properly
1075 convert the modified operand to the other operand type.
1076 (fold_comparison): Call maybe_canonicalize_comparison_1 with
1077 useless conversions stripped from comparison operands.
1079 2011-08-15 Richard Guenther <rguenther@suse.de>
1081 * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
1082 (extract_range_from_unary_expr_1): Restructure.
1084 2011-08-15 Richard Guenther <rguenther@suse.de>
1086 PR tree-optimization/50058
1087 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
1090 2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1093 * config/arm/arm.c (output_move_double): Add 2 parameters
1094 to count the number of insns emitted and whether to emit or not.
1095 Use the flag to decide when to emit and count number of instructions
1096 that will be emitted.
1097 Handle case where output_move_double might be called for calculating
1098 lengths with an invalid constant.
1099 (arm_count_output_move_double_insns): Define.
1100 * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
1101 (output_move_double): Adjust prototype.
1102 * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
1104 ("*movdi_vfp_cortexa8"): Likewise and add attribute
1106 * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
1107 ("*movdf_soft_insn"): Likewise.
1108 * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
1109 ("*cirrus_thumb2_movdi"): Likewise.
1110 ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
1111 ("*cirrus_movdf_hard_insn"): Likewise.
1112 * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
1113 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
1114 ("mov<mode>_internal VMMX"): Likewise.
1115 * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
1117 2011-08-14 Uros Bizjak <ubizjak@gmail.com>
1119 * config/i386/i386.c (ix86_expand_round_sse4): New function.
1120 * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
1121 * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
1124 (rint<mode>2): Simplify TARGET_ROUND check.
1125 (floor<mode>2): Ditto.
1126 (ceil<mode>2): Ditto.
1127 (btrunc<mode>2): Ditto.
1129 2011-08-14 Anatoly Sokolov <aesok@post.ru>
1131 * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
1132 as mmix_preferred_output_reload_class.
1134 2011-08-14 Georg-Johann Lay <avr@gjlay.de>
1137 * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
1138 (branch_unspec): New insn.
1139 (branch): Beauty farm.
1140 * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC
1142 (avr_compare_pattern, avr_reorg_remove_redundant_compare):
1143 New static functions.
1144 (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN.
1145 Use CONST_INT_P. Beauty.
1147 2011-08-12 Richard Henderson <rth@redhat.com>
1150 * sched-init.h (struct deps_desc): Add sched_before_next_jump.
1151 * sched-deps.c (init_deps): Clear it.
1152 (deps_analyze_insn): Consume it.
1153 (sched_analyze_insn): Fill it.
1155 2011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1158 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
1159 for tbh instructions.
1161 2011-08-12 Diego Novillo <dnovillo@google.com>
1163 * data-streamer.h (streamer_write_zero): Rename from output_zero.
1164 (streamer_write_uhwi): Rename from lto_output_uleb128.
1165 (streamer_write_hwi): Rename from output_sleb128.
1166 (streamer_write_string): Rename from lto_output_string.
1167 (streamer_string_index): Rename from lto_string_index.
1168 (streamer_write_string_with_length): Rename from
1169 lto_output_string_with_length.
1170 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
1171 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
1172 (streamer_read_string): Rename from lto_input_string.
1173 (streamer_read_indexed_string): Rename from input_string_internal.
1174 (streamer_read_uhwi): Rename from lto_input_uleb128.
1175 (streamer_read_hwi): Rename from lto_input_sleb128.
1176 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
1177 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
1178 (streamer_write_enum): Rename from lto_output_enum.
1179 (streamer_read_enum): Rename from lto_input_enum.
1180 (streamer_write_record_start): Rename from output_record_start.
1181 (streamer_read_record_start): Rename from input_record_start.
1182 (streamer_write_bitpack): Rename from lto_output_bitpack.
1183 (streamer_read_bitpack): Rename from lto_input_bitpack.
1184 (streamer_write_char_stream): Rename from lto_output_1_stream.
1185 (streamer_read_uchar): Rename from lto_input_1_unsigned.
1186 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
1187 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
1188 (streamer_read_string_cst): Rename from input_string_cst.
1189 (streamer_read_chain): Rename from lto_input_chain.
1190 (streamer_alloc_tree): Rename from lto_materialize_tree.
1191 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
1192 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
1193 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
1194 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
1195 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
1196 (streamer_write_chain): Rename from lto_output_chain.
1197 (streamer_write_tree_header): Rename from lto_output_tree_header.
1198 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
1199 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
1200 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
1201 (streamer_write_builtin): Rename from lto_output_builtin_tree.
1202 (streamer_check_handled_ts_structures): Rename from
1203 check_handled_ts_structures.
1204 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
1205 (streamer_tree_cache_insert_at): Rename from
1206 lto_streamer_cache_insert_at.
1207 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
1208 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
1209 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
1210 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
1211 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
1212 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
1213 (write_identifier): Rename from output_identifier.
1214 (write_ts_common_tree_pointers): Rename from
1215 lto_output_ts_common_tree_pointers.
1216 (write_ts_vector_tree_pointers): Rename from
1217 lto_output_ts_vector_tree_pointers.
1218 (write_ts_complex_tree_pointers): Rename from
1219 lto_output_ts_complex_tree_pointers.
1220 (write_ts_decl_minimal_tree_pointers): Rename from
1221 lto_output_ts_decl_minimal_tree_pointers.
1222 (write_ts_decl_common_tree_pointers): Rename from
1223 lto_output_ts_decl_common_tree_pointers.
1224 (write_ts_decl_non_common_tree_pointers): Rename from
1225 lto_output_ts_decl_non_common_tree_pointers.
1226 (write_ts_decl_with_vis_tree_pointers): Rename from
1227 lto_output_ts_decl_with_vis_tree_pointers.
1228 (write_ts_field_decl_tree_pointers): Rename from
1229 lto_output_ts_field_decl_tree_pointers.
1230 (write_ts_function_decl_tree_pointers): Rename from
1231 lto_output_ts_function_decl_tree_pointers.
1232 (write_ts_type_common_tree_pointers): Rename from
1233 lto_output_ts_type_common_tree_pointers.
1234 (write_ts_type_non_common_tree_pointers): Rename from
1235 lto_output_ts_type_non_common_tree_pointers.
1236 (write_ts_list_tree_pointers): Rename from
1237 lto_output_ts_list_tree_pointers.
1238 (write_ts_vec_tree_pointers): Rename from
1239 lto_output_ts_vec_tree_pointers.
1240 (write_ts_exp_tree_pointers): Rename from
1241 lto_output_ts_exp_tree_pointers.
1242 (write_ts_block_tree_pointers): Rename from
1243 lto_output_ts_block_tree_pointers.
1244 (write_ts_binfo_tree_pointers): Rename from
1245 lto_output_ts_binfo_tree_pointers.
1246 (write_ts_constructor_tree_pointers): Rename from
1247 lto_output_ts_constructor_tree_pointers.
1248 (write_ts_target_option): Rename from lto_output_ts_target_option.
1249 (write_ts_translation_unit_decl_tree_pointers): Rename from
1250 lto_output_ts_translation_unit_decl_tree_pointers.
1251 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
1252 Rename from lto_streamer_cache_add_to_node_array.
1253 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
1254 (record_common_node): Rename from lto_record_common_node.
1256 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
1258 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
1260 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
1262 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
1263 (ipa-reference.o): Likewise.
1264 * lto-section-out.c: Include data-streamer.h.
1265 * ipa-reference.c: Include data-streamer.h.
1267 2011-08-12 Nick Clifton <nickc@redhat.com>
1269 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
1270 * doc/md.texi (cmpstrn): Note that the comparison stops if both
1271 fetched bytes are zero.
1273 (cmpmem): Note that the comparison does not stop if both of the
1274 fetched bytes are zero.
1276 2011-08-12 Uros Bizjak <ubizjak@gmail.com>
1278 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
1279 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
1280 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
1281 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
1282 to integer_type_node.
1283 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
1284 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
1285 * builtins.c (expand_builtin_in): Ditto.
1286 (mathfn_built_in_1): Ditto.
1287 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
1289 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
1291 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
1292 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
1293 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
1295 2011-08-12 Richard Guenther <rguenther@suse.de>
1297 * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
1299 2011-08-12 Romain Geissler <romain.geissler@gmail.com>
1301 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
1303 2011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
1305 * config/arm/arm.c (get_label_padding): New function.
1306 (create_fix_barrier, arm_reorg): Use it.
1308 2011-08-11 Uros Bizjak <ubizjak@gmail.com>
1311 * config/i386/i386.md (*lea_5_zext): New.
1312 (*lea_6_zext): Ditto.
1313 * config/i386/predicates.md (const_32bit_mask): New predicate.
1314 (lea_address_operand): Reject AND.
1315 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
1316 const_32bit_mask immediate.
1317 (ix86_print_operand_address): Handle AND.
1318 (memory_address_length): Ditto.
1320 2011-08-11 Romain Geissler <romain.geissler@gmail.com>
1321 Brian Hackett <bhackett1024@gmail.com>
1323 * plugin.def: Add event for finish_decl.
1324 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
1325 * c-decl.c (finish_decl): Invoke callbacks on above event.
1326 * doc/plugins.texi: Document above event.
1328 2011-08-11 Richard Guenther <rguenther@suse.de>
1330 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
1331 lookups, make looking through aggregate copies stronger.
1333 2011-08-11 Richard Henderson <rth@redhat.com>
1336 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
1338 2011-08-11 Richard Guenther <rguenther@suse.de>
1340 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
1341 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
1342 (vrp_visit_stmt): Likewise.
1344 2011-08-11 Richard Guenther <rguenther@suse.de>
1347 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
1348 load of the other piece with TREE_NO_WARNING.
1349 * tree-flow.h (warn_uninit): Adjust prototype.
1350 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
1351 the base variable and the expression that is used separately.
1352 Properly query all TREE_NO_WARNING flags.
1353 (struct walk_data): Remove.
1354 (warn_uninitialized_var): Likewise.
1355 (warn_uninitialized_vars): Do not walk gimple pieces but simply
1356 look at all SSA uses of the statement. Handle unused memory
1358 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
1360 2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
1362 * config/rx/rx.md (movsicc): Allow register to register transfers.
1363 (*movsicc): Likewise.
1364 (*stcc): Restrict this pattern to EQ and NE compares.
1365 (*stcc_reg): New pattern. Works for any comparison but only for
1368 2011-08-11 Diego Novillo <dnovillo@google.com>
1370 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
1371 Call stream_write_tree instead of output_record_start.
1372 (lto_output_ts_binfo_tree_pointers): Likewise.
1374 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
1375 Convert it to a macro.
1376 (stream_read_tree): Likewise.
1378 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
1379 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
1381 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
1382 and tree_read_bitfields.
1383 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
1384 (lto_write_tree): Call it.
1385 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
1386 * streamer-hooks.h (struct streamer_hooks): Remove fields
1387 name, is_streamable and alloc_tree. Update all users.
1388 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
1389 (lto_materialize_tree): ... here.
1390 Handle CALL_EXPR codes.
1391 Remove call to lto_streamer_cache_append.
1392 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
1393 * tree-streamer.h (tree_read_bitfields): Declare.
1395 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
1396 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
1397 * tree-streamer.h (stream_read_tree): New. Replace all calls
1398 to lto_input_tree with it.
1399 (stream_write_tree): New. Replace all calls to lto_output_tree,
1400 lto_output_tree_ref and lto_output_tree_or_ref with it.
1401 * lto-streamer-in.c (lto_read_tree): Inline code from
1402 lto_streamer_read_tree.
1403 (lto_input_tree): Move from tree-streamer-in.c.
1404 * lto-streamer-out.c (lto_output_tree_ref): Make static.
1405 Remove handling of NULL values for EXPR.
1406 Do not handle EXPRs that are not indexable.
1407 (lto_write_tree): Move from tree-streamer-out.c.
1408 Inline lto_streamer_write_tree.
1409 (lto_output_tree): Move from tree-streamer-out.c.
1410 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
1411 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
1412 (lto_preload_common_nodes): Likewise.
1413 Remove assertions and adjustments for nodes
1414 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
1415 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
1416 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
1417 * lto-streamer.h (lto_input_tree): Declare.
1418 (lto_output_tree_ref): Remove.
1419 * streamer-hooks.h (struct streamer_hooks): Remove fields
1420 preload_common_nodes, indexable_with_decls_p,
1421 pack_value_fields, unpack_value_fields and output_tree_header.
1423 * tree-streamer-in.c (lto_materialize_tree): Make extern.
1424 (lto_input_tree_pointers): Likewise.
1425 (lto_read_tree): Move to lto-streamer-in.c.
1426 (lto_input_integer_cst): Make extern.
1427 (lto_get_pickled_tree): Likewise.
1428 (lto_get_builtin_tree): Likewise.
1429 (lto_input_tree): Move to lto-streamer-in.c.
1430 * tree-streamer-out.c (pack_value_fields): Make extern.
1431 (lto_output_tree_or_ref): Remove. Replace all callers with
1432 calls to stream_write_tree.
1433 (lto_output_builtin_tree): Make extern.
1434 (lto_streamer_write_tree): Inline into lto_write_tree.
1435 (lto_output_tree_pointers): Make extern.
1436 (lto_output_tree_header): Likewise.
1437 (lto_output_integer_cst): Likewise.
1438 (lto_write_tree): Move to lto-streamer-out.c.
1439 (lto_output_tree): Likewise.
1440 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
1441 (preload_common_nodes): Likewise.
1442 (lto_streamer_cache_create): Call it.
1443 * tree-streamer.h: Include streamer-hooks.h.
1444 (stream_write_tree): New.
1445 (stream_read_tree): New.
1446 (lto_input_tree): Remove.
1447 (lto_materialize_tree): Declare.
1448 (lto_input_tree_pointers): Declare.
1449 (lto_get_pickled_tree): Declare.
1450 (lto_get_builtin_tree): Declare.
1451 (lto_input_integer_cst): Declare.
1452 (lto_output_tree_header): Declare.
1453 (pack_value_fields): Declare.
1454 (lto_output_tree_pointers): Declare.
1455 (lto_output_integer_cst): Declare.
1456 (lto_output_builtin_tree): Declare.
1458 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1460 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
1461 only if producer writes to the register given by regno.
1463 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1464 Alexander Monakov <amonakov@ispras.ru>
1466 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
1467 (sched_get_condition_with_rev_uncached): ... this. Factor out
1468 condition caching logic into ...
1469 (sched_get_condition_with_rev): ... this. Reimplement. Do not
1470 attempt to use cache for instructions with zero luid.
1471 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
1472 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
1474 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1476 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
1477 get_seqno_for_a_jump. Update the caller.
1478 (get_seqno_by_succs): New. Use it ...
1479 (get_seqno_for_a_jump): ... here to find a seqno if looking at
1480 predecessors was not sufficient.
1481 (get_seqno_by_preds): Include head in iteration range, exclude insn.
1483 2011-08-11 Dmitry Melnik <dm@ispras.ru>
1485 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
1487 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1489 * sel-sched-ir.h (register_unavailable_p): Declare.
1490 * sel-sched-ir.c (register_unavailable_p): New. Use it...
1491 (set_unavailable_target_for_expr): ... here to properly test
1492 availability of a register.
1493 (speculate_expr): Ditto.
1494 * sel-sched.c (substitute_reg_in_expr): Ditto.
1495 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
1497 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
1499 * sel-sched.c (verify_target_availability): Fix usage of
1502 2011-08-11 Dmitry Melnik <dm@ispras.ru>
1504 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
1505 recognized by cannot_copy_insn_p hook and volatile instructions.
1507 2011-08-11 Dmitry Melnik <dm@ispras.ru>
1509 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
1511 2011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
1513 * doc/md.texi (define_bypass): Say that the instruction names can
1514 be filename-style globs.
1515 * Makefile.in (FNMATCH_H): Define.
1516 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
1517 * genattrtab.c: Include fnmatch.h.
1518 (bypass_list): Change field name from "insn" to "pattern".
1519 (gen_bypass_1): Update accordingly.
1520 (process_bypasses): Use fnmatch to check for matches between
1521 insn reservations and define_bypasses.
1522 * genautomata.c: Include fnmatch.h.
1523 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
1524 and out_pattern respectively.
1525 (gen_bypass, insert_bypass): Update accordingly.
1526 (for_each_matching_insn, process_bypass_2, process_bypass_1)
1527 (process_bypass): New functions.
1528 (process_decls): Use process_bypass. Update after field name changes.
1530 2011-08-11 Georg-Johann Lay <avr@gjlay.de>
1533 * config/avr/avr.md (smulqi3_highpart): New insn.
1534 (umulqi3_highpart): New insn.
1535 (*subqi3.ashiftrt7): New insn.
1536 (smulhi3_highpart): New expander.
1537 (umulhi3_highpart): Nex expander.
1538 (*smulhi3_highpart_call): New insn.
1539 (*umulhi3_highpart_call): New insn.
1540 (extend_u): New code attribute.
1541 (extend_prefix): Rename code attribute to extend_su.
1542 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
1543 widening QI/HI multiply.
1545 2011-08-11 Ira Rosen <ira.rosen@linaro.org>
1547 PR tree-optimization/50039
1548 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
1549 that DEF_STMT has a stmt_vec_info.
1551 2011-08-10 Richard Guenther <rguenther@suse.de>
1553 * tree.h (can_trust_pointer_alignment): Remove.
1554 * builtins.c (can_trust_pointer_alignment): Remove.
1556 2011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
1558 * c-typeck.c (scalar_to_vector): New function. Try scalar to
1560 (stv_conv): New enum for scalar_to_vector return type.
1561 (build_binary_op): Adjust.
1562 * doc/extend.texi: Description of scalar to vector expansion.
1564 2011-08-10 Richard Guenther <rguenther@suse.de>
1566 * tree.h (get_pointer_alignment): Remove max-align argument.
1567 (get_object_alignment): Likewise.
1568 * builtins.c (get_object_alignment_1): Adjust.
1569 (get_object_alignment): Remove max-align argument.
1570 (get_pointer_alignment): Likewise.
1571 (expand_builtin_strlen): Adjust.
1572 (expand_builtin_memcpy): Likewise.
1573 (expand_builtin_mempcpy_args): Likewise.
1574 (expand_builtin_strncpy): Likewise.
1575 (expand_builtin_memset_args): Likewise.
1576 (expand_builtin_memcmp): Likewise.
1577 (expand_builtin_strcmp): Likewise.
1578 (expand_builtin_strncmp): Likewise.
1579 (get_builtin_sync_mem): Likewise.
1580 (fold_builtin_memset): Likewise.
1581 (fold_builtin_memory_op): Likewise.
1582 (expand_builtin_memory_chk): Likewise.
1583 * emit-rtl.c (get_mem_align_offset): Likewise.
1584 (set_mem_attributes_minus_bitpos): Likewise.
1585 * expr.c (expand_assignment): Likewise.
1586 (expand_expr_real_1): Likewise.
1587 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
1588 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
1589 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
1590 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
1591 * value-prof.c (gimple_stringops_transform): Likewise.
1593 2011-08-10 Paulo J. Matos <paulo.matos@csr.com>
1595 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
1596 * doc/tm.texi: Regenerate.
1598 2011-08-10 Georg-Johann Lay <avr@gjlay.de>
1601 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
1602 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
1603 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
1604 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
1605 shift target is unused.
1607 2011-08-10 Richard Guenther <rguenther@suse.de>
1609 PR tree-optimization/49937
1610 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
1611 using get_object_alignment_1.
1613 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
1615 * config/i386/i386.c (ix86_emit_i387_round): New function.
1616 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
1617 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
1618 Use ix86_emit_i387_round to expand round function for i387 math.
1619 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
1620 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
1622 2011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1624 * config/sync.c: Move to ../libgcc.
1625 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
1626 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
1629 2011-08-09 Anatoly Sokolov <aesok@post.ru>
1631 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
1632 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
1633 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
1634 Change 'from' and 'to' arguments type to reg_class_t.
1635 (TARGET_REGISTER_MOVE_COST): Define.
1637 2011-08-09 Vladimir Makarov <vmakarov@redhat.com>
1641 PR rtl-optimization/49990
1642 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
1643 ignore classes which can not change mode.
1644 (find_costs_and_classes): Ditto.
1646 2011-08-09 Richard Guenther <rguenther@suse.de>
1648 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
1649 information for ranges with only negative values.
1650 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
1651 BIT_AND_EXPR handling to handle ranges with negative values.
1653 2011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
1655 * config/i386/i386.c: Remove traling spaces.
1656 * config/i386/sse.md: Likewise.
1657 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
1658 (*fma_fmsub_<mode>): Likewise.
1659 (*fma_fnmadd_<mode>): Likewise.
1660 (*fma_fnmsub_<mode>): Likewise.
1662 2011-08-09 Nick Clifton <nickc@redhat.com>
1664 * config/rx/rx.md: Disable extender peepholes at -O3.
1666 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
1669 * config/i386/i386.md (reload_noff_load): New.
1670 (reload_noff_store): Ditto.
1671 * config/i386/i386.c (ix86_secondary_reload): Use
1672 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
1673 double-word moves from/to non-offsetable addresses instead of
1674 generating XMM temporary.
1676 2011-08-09 Anatoly Sokolov <aesok@post.ru>
1678 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
1680 2011-08-09 Ira Rosen <ira.rosen@linaro.org>
1682 PR tree-optimization/50014
1683 * tree-vect-loop.c (vectorizable_reduction): Get def type before
1684 calling vect_get_vec_def_for_stmt_copy ().
1686 2011-08-08 Vladimir Makarov <vmakarov@redhat.com>
1688 PR rtl-optimization/49990
1689 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
1690 ignore classes which can not change mode.
1691 (find_costs_and_classes): Ditto.
1693 2011-08-08 Richard Henderson <rth@redhat.com>
1696 * config/i386/i386.c (ix86_expand_prologue): Call
1697 for SEH target gen_prologue_use instead of gen_blockage
1700 2011-08-08 Martin Jambor <mjambor@suse.cz>
1703 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
1706 2011-08-08 Diego Novillo <dnovillo@google.com>
1708 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
1709 (DATA_STREAMER_H): New.
1710 (GIMPLE_STREAMER_H): New.
1711 (TREE_STREAMER_H): New.
1712 (STREAMER_HOOKS_H): New.
1713 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
1714 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
1715 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
1716 (data-streamer.o): New.
1717 (data-streamer-in.o): New.
1718 (data-streamer-out.o): New.
1719 (gimple-streamer-in.o): New.
1720 (gimple-streamer-out.o): New.
1721 (streamer-hooks.o): New.
1722 (tree-streamer.o): New.
1723 (tree-streamer-in.o): New.
1724 (tree-streamer-out.o): New.
1725 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
1726 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
1727 GIMPLE_STREAMER_H and TREE_STREAMER_H.
1728 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
1729 GIMPLE_STREAMER_H and TREE_STREAMER_H.
1730 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
1731 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
1732 (ipa-inline-analysis.o): Likewise.
1733 (ipa-pure-const.o): Likewise.
1734 * data-streamer-in.c: New.
1735 * data-streamer-out.c: New.
1736 * data-streamer.c: New.
1737 * data-streamer.h: New.
1738 * gimple-streamer-in.c: New.
1739 * gimple-streamer-out.c: New.
1740 * gimple-streamer.h: New.
1741 * ipa-inline-analysis.c: Include data-streamer.h.
1742 * ipa-prop.c: Include data-streamer.h.
1743 * ipa-pure-const.c: Include data-streamer.h.
1744 * lto-cgraph.c: Include data-streamer.h.
1745 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
1746 (lto_input_widest_uint_uleb128): Likewise.
1747 (lto_input_sleb128): Likewise.
1748 (bp_unpack_var_len_unsigned): Likewise.
1749 (bp_unpack_var_len_int): Likewise.
1750 * lto-section-out.c (lto_output_uleb128_stream): Move to
1751 data-streamer-out.c.
1752 (lto_output_widest_uint_uleb128_stream): Likewise.
1753 (lto_output_sleb128_stream): Likewise.
1754 (bp_pack_var_len_unsigned): Likewise.
1755 (bp_pack_var_len_int): Likewise.
1756 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
1757 (struct string_slot): Remove. Update all users.
1758 (lto_tag_check_set): Make extern.
1759 (lto_tag_check_range): Move to lto-streamer.h.
1760 (lto_tag_check): Likewise.
1761 (hash_string_slot_node): Remove. Update all users.
1762 (eq_string_slot_node): Remove. Update all users.
1763 (string_for_index): Move to data-streamer-in.c
1764 (input_string_internal): Likewise.
1765 (input_string_cst): Move to tree-streamer-in.c.
1766 (input_identifier): Likewise.
1767 (lto_input_string): Move to data-streamer-in.c
1768 (input_record_start): Move to data-streamer.h
1769 (canon_file_name): Use new definition of struct string_slot
1770 from data-streamer.h. Set S_SLOT.LEN.
1771 (lto_input_location): Make extern.
1772 (lto_input_chain): Move to tree-streamer-in.c.
1773 (lto_init_eh): Make extern.
1774 (input_phi): Move to gimple-streamer-in.c.
1775 (input_gimple_stmt): Likewise.
1776 (input_bb): Likewise.
1777 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
1778 (unpack_ts_real_cst_value_fields): Likewise.
1779 (unpack_ts_fixed_cst_value_fields): Likewise.
1780 (unpack_ts_decl_common_value_fields): Likewise.
1781 (unpack_ts_decl_wrtl_value_fields): Likewise.
1782 (unpack_ts_decl_with_vis_value_fields): Likewise.
1783 (unpack_ts_function_decl_value_fields): Likewise.
1784 (unpack_ts_type_common_value_fields): Likewise.
1785 (unpack_ts_block_value_fields): Likewise.
1786 (unpack_ts_translation_unit_decl_value_fields): Likewise.
1787 (unpack_value_fields): Likewise.
1788 (lto_materialize_tree): Likewise.
1789 (lto_input_ts_common_tree_pointers): Likewise.
1790 (lto_input_ts_vector_tree_pointers): Likewise.
1791 (lto_input_ts_complex_tree_pointers): Likewise.
1792 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
1793 (lto_input_ts_decl_common_tree_pointers): Likewise.
1794 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
1795 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
1796 (lto_input_ts_field_decl_tree_pointers): Likewise.
1797 (lto_input_ts_function_decl_tree_pointers): Likewise.
1798 (lto_input_ts_type_common_tree_pointers): Likewise.
1799 (lto_input_ts_type_non_common_tree_pointers): Likewise.
1800 (lto_input_ts_list_tree_pointers): Likewise.
1801 (lto_input_ts_vec_tree_pointers): Likewise.
1802 (lto_input_ts_exp_tree_pointers): Likewise.
1803 (lto_input_ts_block_tree_pointers): Likewise.
1804 (lto_input_ts_binfo_tree_pointers): Likewise.
1805 (lto_input_ts_constructor_tree_pointers): Likewise.
1806 (lto_input_ts_target_option): Likewise.
1807 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
1808 (lto_input_tree_pointers): Likewise.
1809 (lto_get_pickled_tree): Likewise.
1810 (lto_get_builtin_tree): Likewise.
1811 (lto_read_tree): Likewise.
1812 (lto_input_integer_cst): Likewise.
1813 (lto_input_tree): Likewise.
1814 * lto-streamer-out.c: Include data-streamer.h,
1815 gimple-streamer.h and streamer-hooks.h.
1816 (struct string_slot): Move to data-streamer.h.
1817 (hash_string_slot_node): Likewise.
1818 (eq_string_slot_node): Likewise.
1819 (lto_string_index): Move to data-streamer-out.c.
1820 (lto_output_string_with_length): Likewise.
1821 (lto_output_string): Likewise.
1822 (output_string_cst): Move to tree-streamer-out.c.
1823 (output_identifier): Likewise.
1824 (output_zero): Move to data-streamer-out.c
1825 (output_uleb128): Likewise.
1826 (output_sleb128): Likewise.
1827 (output_record_start): Move to data-streamer.h
1828 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
1829 (pack_ts_real_cst_value_fields): Likewise.
1830 (pack_ts_fixed_cst_value_fields): Likewise.
1831 (pack_ts_decl_common_value_fields): Likewise.
1832 (pack_ts_decl_wrtl_value_fields): Likewise.
1833 (pack_ts_decl_with_vis_value_fields): Likewise.
1834 (pack_ts_function_decl_value_fields): Likewise.
1835 (pack_ts_type_common_value_fields): Likewise.
1836 (pack_ts_block_value_fields): Likewise.
1837 (pack_ts_translation_unit_decl_value_fields): Likewise.
1838 (pack_value_fields): Likewise.
1839 (lto_output_chain): Likewise.
1840 (lto_output_ts_common_tree_pointers): Likewise.
1841 (lto_output_ts_vector_tree_pointers): Likewise.
1842 (lto_output_ts_complex_tree_pointers): Likewise.
1843 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
1844 (lto_output_ts_decl_common_tree_pointers): Likewise.
1845 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
1846 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
1847 (lto_output_ts_field_decl_tree_pointers): Likewise.
1848 (lto_output_ts_function_decl_tree_pointers): Likewise.
1849 (lto_output_ts_type_common_tree_pointers): Likewise.
1850 (lto_output_ts_type_non_common_tree_pointers): Likewise.
1851 (lto_output_ts_list_tree_pointers): Likewise.
1852 (lto_output_ts_vec_tree_pointers): Likewise.
1853 (lto_output_ts_exp_tree_pointers): Likewise.
1854 (lto_output_ts_block_tree_pointers): Likewise.
1855 (lto_output_ts_binfo_tree_pointers): Likewise.
1856 (lto_output_ts_constructor_tree_pointers): Likewise.
1857 (lto_output_ts_target_option): Likewise.
1858 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
1859 (lto_output_tree_pointers): Likewise.
1860 (lto_output_tree_header): Likewise.
1861 (lto_output_builtin_tree): Likewise.
1862 (lto_write_tree): Likewise.
1863 (lto_output_integer_cst): Likewise.
1864 (lto_output_tree): Likewise.
1865 (output_phi): Move to gimple-streamer-out.c.
1866 (output_gimple_stmt): Likewise.
1867 (output_bb): Likewise.
1868 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
1869 (streamer_hooks): Move to streamer-hooks.c.
1870 (check_handled_ts_structures): Move to tree-streamer.c
1871 (lto_streamer_cache_add_to_node_array): Likewise.
1872 (lto_streamer_cache_insert_1): Likewise.
1873 (lto_streamer_cache_insert): Likewise.
1874 (lto_streamer_cache_insert_at): Likewise.
1875 (lto_streamer_cache_append): Likewise.
1876 (lto_streamer_cache_lookup): Likewise.
1877 (lto_streamer_cache_get): Likewise.
1878 (lto_record_common_node): Likewise.
1879 (lto_preload_common_nodes): Likewise.
1880 (lto_streamer_cache_create): Likewise.
1881 (lto_streamer_cache_delete): Likewise.
1882 (streamer_hooks_init): Move to streamer-hooks.c.
1883 * lto-streamer.h: Include diagnostic.h
1884 (struct output_block, struct lto_input_block,
1885 struct data_in, struct bitpack_d): Remove forward declarations.
1886 (struct bitpack_d): Move to data-streamer.h.
1887 (struct lto_streamer_cache_d): Move to tree-streamer.h.
1888 (struct streamer_hooks): Move to streamer-hooks.h.
1889 (bp_pack_var_len_unsigned): Move to data-streamer.h.
1890 (bp_pack_var_len_int): Likewise.
1891 (bp_unpack_var_len_unsigned): Likewise.
1892 (bp_unpack_var_len_int): Likewise.
1893 (lto_input_location): Declare.
1894 (lto_tag_check_set): Declare.
1895 (lto_init_eh): Declare.
1896 (lto_output_tree_ref): Declare.
1897 (lto_output_location): Declare.
1898 (bitpack_create): Move to data-streamer.h.
1899 (bp_pack_value): Likewise.
1900 (lto_output_bitpack): Likewise.
1901 (lto_input_bitpack): Likewise.
1902 (bp_unpack_value): Likewise.
1903 (lto_output_1_stream): Likewise.
1904 (lto_input_1_unsigned): Likewise.
1905 (lto_output_int_in_range): Likewise.
1906 (lto_input_int_in_range): Likewise.
1907 (bp_pack_int_in_range): Likewise.
1908 (bp_unpack_int_in_range): Likewise.
1909 (lto_output_enum): Likewise.
1910 (lto_input_enum): Likewise.
1911 (bp_pack_enum): Likewise.
1912 (bp_unpack_enum): Likewise.
1913 * streamer-hooks.c: New.
1914 * streamer-hooks.h: New.
1915 * tree-streamer-in.c: New.
1916 * tree-streamer-out.c: New.
1917 * tree-streamer.c: New.
1918 * tree-streamer.h: New.
1920 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1922 * gthr-posix95.h: Remove.
1923 * gthr.h [_PTHREADS95]: Remove.
1924 * configure.ac (enable_threads): Remove posix95.
1925 * configure: Regenerate.
1926 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
1928 2011-08-08 Uros Bizjak <ubizjak@gmail.com>
1931 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
1933 (ix86_print_operand_address): Handle zero-extended addresses.
1934 (memory_address_length): Add length of addr32 prefix for
1935 zero-extended addresses.
1936 (ix86_secondary_reload): Handle moves to/from double-word general
1937 registers from/to zero-extended addresses.
1938 * config/i386/predicates.md (lea_address_operand): Reject
1939 zero-extended operands.
1941 2011-08-08 H.J. Lu <hongjiu.lu@intel.com>
1944 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
1946 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
1947 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
1949 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
1950 (_Unwind_Context_Reg_Val): Likewise.
1951 (_Unwind_Get_Unwind_Word): Likewise.
1952 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
1953 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
1954 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
1955 for EXTENDED_CONTEXT_BIT.
1956 (__frame_state_for): Likewise.
1957 (uw_init_context_1): Likewise.
1958 (_Unwind_GetGR): Updated.
1959 (_Unwind_SetGR): Likewise.
1960 (_Unwind_GetGRPtr): Likewise.
1961 (_Unwind_SetGRPtr): Likewise.
1962 (_Unwind_SetGRValue): Likewise.
1963 (_Unwind_GRByValue): Likewise.
1964 (uw_install_context_1): Likewise.
1966 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
1967 ASSUME_EXTENDED_UNWIND_CONTEXT.
1968 * doc/tm.texi: Regenerated.
1970 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1972 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
1974 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1976 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
1978 (DEC Alpha Options, -mtune): Likewise.
1979 (MIPS Options, -march): native is supported on IRIX.
1981 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1983 * config/sparc/driver-sparc.c: New file.
1984 * config/sparc/x-sparc: New file.
1985 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
1986 * config/sparc/sparc.opt (native): New value for enum processor_type.
1987 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
1988 * config/sparc/sparc.c (sparc_option_override): Abort if
1989 PROCESSOR_NATIVE gets here.
1990 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
1991 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
1992 DRIVER_SELF_SPECS): Define.
1993 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
1994 (SPARC Options, -mtune): Likewise.
1995 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
1997 * configure: Regenerate.
1998 * Makefile.in (EXTRA_GCC_LIBS): Set.
1999 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
2000 (cpp$(exeext)): Likewise.
2002 2011-08-08 Richard Guenther <rguenther@suse.de>
2004 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
2006 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
2009 2011-08-08 Mikael Pettersson <mikpe@it.uu.se>
2011 PR tree-optimization/50005
2012 * ipa-inline-analysis (remap_predicate): Add cast to
2013 silence signed/unsigned comparison warning.
2015 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
2017 * modulo-sched.c (get_sched_window): Use a table for the debug output.
2018 Print the current ii.
2019 (sms_schedule_by_order): Reduce whitespace in dump line.
2021 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
2023 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
2024 and one loop for successors. Fix upper bound of memory range.
2026 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
2029 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
2030 (TARGET_INSTANTIATE_DECLS): New define.
2032 2011-08-06 Paolo Bonzini <bonzini@gnu.org>
2033 Mikael Morin <mikael.morin@sfr.fr>
2035 * Makefile.in (INCLUDES_FOR_TARGET): New.
2036 (LIBGCC2_CFLAGS): Use it.
2037 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
2039 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
2041 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
2042 frame->save_regs_using_mov calculation.
2044 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
2046 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
2047 * config/i386/sse.md (castmode): New mode attribute.
2048 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
2049 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
2051 2011-08-05 Jan Hubicka <jh@suse.cz>
2054 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
2056 2011-08-05 Jan Hubicka <jh@suse.cz>
2059 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
2061 (create_emultls_var):New function.
2062 (ipa_lower_emutls): Handle aliases correctly.
2064 2011-08-05 Jan Hubicka <jh@suse.cz>
2067 * ipa-inline.c (recursive_inlining): Look through aliases.
2069 2011-08-05 Jason Merrill <jason@redhat.com>
2071 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
2072 declarations to beginning of function.
2074 2011-08-05 Bernd Schmidt <bernds@codesourcery.com>
2076 PR rtl-optimization/49900
2077 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
2078 ensure basic blocks stay in the same order.
2080 2011-08-05 Aldy Hernandez <aldyh@redhat.com>
2082 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
2084 (s390_expand_atomic): Same.
2086 2011-08-05 Richard Henderson <rth@redhat.com>
2089 * dwarf2cfi.c (scan_insn_after): Split out of ...
2090 (scan_trace): ... here. Correctly place notes wrt sequences.
2092 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
2093 Richard Henderson <rth@redhat.com>
2096 * expr.c (fixup_args_size_notes): Look through no-op moves.
2098 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
2100 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
2101 of "m" for operand 0. Add type and mode attribute.
2102 (*pushxf_nointeger"): Use "<" constraint for operand 0.
2103 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
2104 constraint instead of "o" for opreand 1.
2105 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
2106 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
2107 operand 0, alternative 4.
2108 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
2110 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
2112 * config/i386/predicates.md (lea_address_operand): Rename from
2113 no_seg_address_operand.
2114 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
2115 (*lea_1_zext): Ditto.
2117 (*lea_2_zext): Ditto.
2119 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
2121 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
2122 parts.base and parts.index.
2123 * config/i386/predicates.md (aligned_operand): Ditto.
2124 (cmpxchg8b_pic_memory_operand): Ditto.
2126 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2128 * config/soft-fp: Move to ../libgcc.
2129 * Makefile.in (SFP_MACHINE): Remove.
2130 (libgcc-support): Remove $(SFP_MACHINE) dependency.
2131 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
2132 * config/arm/t-arm-softfp: Move to
2133 ../libgcc/config/arm/t-softfp.
2134 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
2135 * config/c6x/t-c6x-softfp: Remove.
2136 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
2137 * config/i386/t-fprules-softfp: Move to
2138 ../libgcc/config/t-softfp-tf.
2139 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
2140 * config/ia64/t-fprules-softfp: Remove.
2141 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
2142 * config/lm32/t-fprules-softfp: Remove.
2143 * config/moxie/sfp-machine.h: Remove.
2144 * config/moxie/t-moxie-softfp: Remove.
2145 * config/rs6000/darwin-ldouble-format: Move to
2146 ../libgcc/config/rs6000/ibm-ldouble-format.
2147 * config/rs6000/darwin-ldouble.c: Move to
2148 ../libgcc/config/rs6000/ibm-ldouble.c
2149 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
2150 * config/rs6000/libgcc-ppc64.ver: Likewise.
2151 * config/rs6000/sfp-machine.h: Likewise.
2152 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
2153 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
2154 (LIB2FUNCS_EXTRA): Remove.
2155 (TARGET_LIBGCC2_CFLAGS): Remove.
2156 * config/rs6000/t-aix52: Likewise
2157 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2158 $(srcdir)/config/rs6000/darwin-ldouble.c.
2159 (SHLIB_MAPFILES): Remove.
2160 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
2161 $(srcdir)/config/rs6000/darwin-ldouble.c.
2162 * config/rs6000/t-fprules-softfp: Move to
2163 ../libgcc/config/t-softfp-sfdf.
2164 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
2165 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
2166 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
2167 $(srcdir)/config/rs6000/darwin-ldouble.c.
2168 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
2169 * config/score/t-score-softfp: Remove.
2170 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
2171 soft-fp/t-softfp from tmake_file.
2172 (arm*-*-uclinux*): Likewise.
2173 (arm*-*-ecos-elf): Likewise.
2174 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
2175 (arm*-*-rtems*): Likewise.
2176 (arm*-*-elf): Likewise.
2177 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
2179 (moxie-*-uclinux*): Likewise.
2180 (moxie-*-rtems*): Likewise.
2181 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
2183 (lm32-*-rtems*): Likewise.
2184 (lm32-*-uclinux*): Likewise.
2185 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
2186 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2187 (powerpc-*-linux*, powerpc64-*-linux*): Remove
2188 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
2189 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
2191 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
2193 (tic6x-*-uclinux): Likewise.
2194 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
2195 soft-fp/t-softfp from tmake_file.
2196 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
2197 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
2198 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
2199 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
2200 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
2202 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2204 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
2205 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
2206 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
2208 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
2209 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
2211 * config/arm/t-vxworks: Likewise.
2212 * config/arm/t-wince-pe: Likewise.
2213 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
2214 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2215 * config/bfin/t-bfin-elf: Likewise.
2216 * config/bfin/t-bfin-linux: Likewise.
2217 * config/bfin/t-bfin-uclinux: Likewise.
2218 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
2220 * config/fr30/t-fr30: Likewise.
2221 * config/frv/t-frv: Likewise.
2222 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
2223 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2224 * config/m32c/t-m32c: Likewise.
2225 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
2226 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2227 * config/mcore/t-mcore: Likewise.
2228 * config/mep/t-mep: Likewise.
2229 * config/microblaze/t-microblaze: Likewise.
2230 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
2231 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2232 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
2233 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2234 * config/mn10300/t-linux: Remove.
2235 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2236 * config/pdp11/t-pdp11: Likewise.
2237 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
2238 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
2239 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2240 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
2241 * config/rs6000/t-aix52: Likewise.
2242 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
2243 $(srcdir)/config/rs6000/ppc64-fp.c.
2244 * config/rs6000/t-fprules-fpbit: Remove.
2245 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
2246 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2247 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
2248 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2249 * config/sparc/t-elf: Likewise.
2250 * config/sparc/t-leon: Likewise.
2251 * config/sparc/t-leon3: Likewise.
2252 * config/spu/t-spu-elf: Likewise.
2253 (DPBIT_FUNCS): Remove.
2254 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
2255 * config/v850/t-v850: Likewise.
2256 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
2257 (avr-*-*): Likewise.
2258 (h8300-*-rtems*): Set libgcc_tm_file.
2259 (h8300-*-elf*): Likewise.
2260 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
2262 (powerpc-*-eabisim*): Likewise.
2263 (powerpc-*-elf*): Likewise.
2264 (powerpc-*-eabialtivec*): Likewise.
2265 (powerpc-xilinx-eabi*): Likewise.
2266 (powerpc-*-eabi*): Likewise.
2267 (powerpc-*-rtems*): Likewise.
2268 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
2269 (powerpcle-*-elf*): Likewise.
2270 (powerpcle-*-eabisim*): Likewise.
2271 (powerpcle-*-eabi*): Likewise.
2272 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
2273 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
2274 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
2277 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2279 * Makefile.in (UNWIND_H): Remove.
2280 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
2281 ../libgcc/Makefile.in.
2282 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
2283 (LIBUNWINDDEP): Remove.
2284 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
2285 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
2286 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
2287 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
2288 Don't copy $(UNWIND_H).
2289 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
2290 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
2291 * aclocal.m4: Regenerate.
2292 * configure: Regenerate.
2293 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
2294 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
2295 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
2296 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
2297 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
2298 * config/arm/libunwind.S, config/arm/pr-support.c,
2299 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
2300 ../libgcc/config/arm.
2301 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
2302 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
2303 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
2304 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
2305 ($(T)frvend$(objext)): Likewise.
2306 * config/ia64/t-glibc (LIB2ADDEH): Remove.
2307 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
2308 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
2309 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
2310 ../libgcc/config/ia64.
2311 * config/ia64/t-hpux (LIB2ADDEH): Remove.
2312 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
2313 * config/ia64/t-vms (LIB2ADDEH): Remove.
2314 * config/ia64/vms.h (UNW_IVMS_MODE,
2315 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
2316 * config/picochip/t-picochip (LIB2ADDEH): Remove.
2317 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
2318 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
2319 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
2320 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
2321 $(srcdir)/../libgcc to refer to unwinder sources.
2322 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
2323 * config/t-darwin (LIB2ADDEH): Remove.
2324 * config/t-freebsd (LIB2ADDEH): Remove.
2325 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
2326 * config/t-libunwind-elf: Move to ../libgcc/config.
2327 * config/t-linux (LIB2ADDEH): Remove.
2328 * config/t-sol2 (LIB2ADDEH): Remove.
2329 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
2330 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
2332 2011-08-05 H.J. Lu <hongjiu.lu@intel.com>
2334 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
2336 * doc/invoke.texi: Document core-avx-i.
2338 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2340 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
2342 2011-08-05 Ira Rosen <ira.rosen@linaro.org>
2344 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
2345 result of multiple results reduction when extracting the final
2346 value using scalar code.
2348 2011-08-05 Richard Guenther <rguenther@suse.de>
2350 PR tree-optimization/49984
2351 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
2353 2011-08-05 Richard Guenther <rguenther@suse.de>
2355 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
2356 return true for constant integer ranges.
2357 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
2358 BIT_IOR_EXPR handling.
2360 2011-08-04 Kai Tietz <ktietz@redhat.com>
2362 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
2363 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
2365 2011-08-04 Ira Rosen <ira.rosen@linaro.org>
2367 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
2368 pattern def statement, and its access macro.
2369 (NUM_PATTERNS): Set to 5.
2370 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
2371 pattern def statement.
2372 (vect_transform_loop): Likewise.
2373 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
2374 function vect_recog_over_widening_pattern ().
2375 (vect_operation_fits_smaller_type): New function.
2376 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
2378 (vect_pattern_recog_1): Move the code that marks pattern
2379 statements to vect_mark_pattern_stmts (), and call it. Update
2381 * tree-vect-stmts.c (vect_supportable_shift): New function.
2382 (vect_analyze_stmt): Handle pattern def statement.
2383 (new_stmt_vec_info): Initialize pattern def statement.
2385 2011-08-04 Richard Henderson <rth@redhat.com>
2388 * config/i386/i386.c (ix86_expand_call): Don't create nested
2389 PARALLELs for TARGET_VZEROUPPER.
2390 (ix86_split_call_vzeroupper): Fix extraction of the original call.
2391 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
2392 recognize nested PARALLELs.
2393 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
2394 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
2395 *sibcall_value_pop_vzeroupper): Likewise.
2397 2011-08-04 Richard Henderson <rth@redhat.com>
2400 * calls.c (expand_call): Use fixup_args_size_notes for
2402 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
2403 in non-standard modes.
2405 2011-08-04 Jakub Jelinek <jakub@redhat.com>
2407 * gcc.c (self_spec): New variable.
2408 (static_specs): Add self_spec.
2409 (main): Call do_self_spec on "self_spec" specs after reading
2410 user specs files. Move compare_debug handling right after that.
2412 2011-08-04 Richard Guenther <rguenther@suse.de>
2414 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
2415 (value_range_nonnegative_p): New function.
2416 (ssa_name_nonnegative_p): Use it.
2417 (value_range_constant_singleton): New function.
2418 (op_with_constant_singleton_value_range): Use it.
2419 (extract_range_from_binary_expr_1): New function, split out from ...
2420 (extract_range_from_binary_expr): ... this. Remove fallback
2421 constant folding done here.
2423 2011-08-04 Richard Guenther <rguenther@suse.de>
2425 PR tree-optimization/49806
2426 * tree-vrp.c (op_with_boolean_value_range_p): New function.
2427 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
2428 a new statement for a final conversion to bool.
2430 2011-08-04 Romain Geissler <romain.geissler@gmail.com>
2432 * gengtype-state.c: Include "bconfig.h" if
2433 GENERATOR_FILE is defined, "config.h" otherwise.
2434 * gengtype.c: Likewise.
2435 * gengtype-lex.l: Likewise.
2436 * gengtype-parse.c: Likewise.
2437 * Makefile.in (gengtype-lex.o-warn): New variable.
2438 (plugin_resourcesdir): Likewise.
2439 (plugin_bindir): Likewise.
2440 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
2441 (MOSTLYCLEANFILES): Add gengtype$(exeext).
2442 (native): Depend on gengtype$(exeext) is $enable_plugin
2444 (gtype.state): Depend on s-gtype. Use temporary file.
2445 (gengtype-lex.o): New rule.
2446 (gengtype-parse.o): Likewise.
2447 (gengtype-state.o): Likewise.
2448 (gengtype$(exeext)): Likewise.
2449 (install-gengtype): Likewise.
2450 (gengtype.o): Likewise.
2451 (build/gengtype.o): Depend on version.h.
2452 (build/gengtype-state): Depend on double-int.h, version.h,
2453 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
2454 (install-plugin): Depend on install-gengtype.
2456 2011-08-04 Jakub Jelinek <jakub@redhat.com>
2459 * tree.h (init_attributes): New prototype.
2460 * attribs.c (init_attributes): No longer static.
2462 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2464 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
2467 2011-08-03 David Li <davidxl@google.com>
2469 * tree-optimize.c (execute_fixup_cfg): Fix up entry
2470 outgoing edge counts after inlining.
2472 2011-08-03 David Li <davidxl@google.com>
2474 * profile.c (compute_branch_probabilities): Compute
2475 function frequency after profile annotation.
2477 2011-08-04 Alan Modra <amodra@gmail.com>
2479 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
2480 use_backchain_to_restore_sp initialisation.
2481 (rs6000_legitimate_offset_address_p): Simplify offset test.
2483 2011-08-03 Richard Henderson <rth@redhat.com>
2485 * config/spu/spu.md: Use define_c_enum instead of define_constants.
2486 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
2489 2011-08-03 Richard Henderson <rth@redhat.com>
2492 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
2494 2011-08-03 Jakub Jelinek <jakub@redhat.com>
2496 PR tree-optimization/49948
2497 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
2499 2011-08-03 Anatoly Sokolov <aesok@post.ru>
2501 * config/m32c/m32c.c (class_sizes): Remove.
2502 (reduce_class): Change arguments and return type to reg_class_t.
2503 Change type cc var to HARD_REG_SET. Change type best var to
2504 reg_class_t. Change type best_size var to unsigned int. Remove
2505 initialization class_sizes var. Use reg_class_size array instead
2506 of class_sizes. Use reg_class_contents array instead
2509 2011-08-03 Richard Guenther <rguenther@suse.de>
2512 * fold-const.c (fold_binary_loc): Only associate
2513 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
2516 2011-08-03 Alan Modra <amodra@gmail.com>
2518 PR rtl-optimization/49941
2519 * jump.c (mark_jump_label): Comment.
2520 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
2521 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
2522 (mark_used_flags): Don't mark RETURN.
2524 2011-08-03 Richard Guenther <rguenther@suse.de>
2526 PR tree-optimization/49938
2527 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
2528 deal with a POLYNOMIAL_CHREC.
2530 2011-08-03 Revital Eres <revital.eres@linaro.org>
2532 * modulo-sched.c (calculate_stage_count,
2533 calculate_must_precede_follow, get_sched_window,
2534 try_scheduling_node_in_cycle, remove_node_from_ps): Add
2536 (update_node_sched_params, set_must_precede_follow, optimize_sc):
2538 (reset_sched_times): Call update_node_sched_params.
2539 (sms_schedule): Call optimize_sc.
2540 (get_sched_window): Change function arguments.
2541 (sms_schedule_by_order): Update call to get_sched_window.
2542 Call set_must_precede_follow.
2543 (calculate_stage_count): Add function argument.
2545 2011-08-02 Richard Henderson <rth@redhat.com>
2549 * reg-notes.def (REG_ARGS_SIZE): New.
2550 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
2551 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
2552 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
2553 different stack levels.
2554 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
2555 (maybe_move_args_size_note): New.
2556 (combine_stack_adjustments_for_block): Use it.
2557 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
2558 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
2559 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
2560 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
2562 (queued_args_size): Remove.
2563 (add_cfi_args_size): Assert size is non-negative.
2564 (stack_adjust_offset, dwarf2out_args_size): Remove.
2565 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
2566 (notice_args_size, notice_eh_throw): New.
2567 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
2568 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2569 (dwarf2out_frame_debug_cfa_offset): Likewise.
2570 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
2571 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
2572 (change_cfi_row): Don't emit args_size.
2573 (maybe_record_trace_start_abnormal): Split out from ...
2574 (maybe_record_trace_start): Here. Set args_size_undefined.
2575 (create_trace_edges): Update to match.
2576 (scan_trace): Handle REG_ARGS_SIZE.
2577 (connect_traces): Connect args_size between EH insns.
2578 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
2579 * explow.c (suppress_reg_args_size): New.
2580 (adjust_stack_1): Split out from ...
2581 (adjust_stack): ... here.
2582 (anti_adjust_stack): Use it.
2583 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
2584 * expr.c (mem_autoinc_base): New.
2585 (fixup_args_size_notes): New.
2586 (emit_single_push_insn_1): Rename from emit_single_push_insn.
2587 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
2588 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
2589 * reload1.c (reload_as_needed): Likewise.
2590 * rtl.h (fixup_args_size_notes): Declare.
2592 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
2595 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
2597 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2598 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2600 2011-08-02 Richard Henderson <rth@redhat.com>
2602 * config/h8300/h8300.c (push, pop): Return the insn.
2603 (h8300_swap_into_er6): Generate correct unwind info.
2604 (h8300_swap_out_of_er6): Likewise.
2605 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
2606 complex cfa expression.
2607 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
2609 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
2611 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
2613 2011-08-02 Richard Henderson <rth@redhat.com>
2616 * config/h8300/h8300.c (h8300_move_ok): New.
2617 * config/h8300/h8300-protos.h: Declare it.
2618 * config/h8300/h8300.md (P): New mode iterator.
2619 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
2620 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
2621 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
2622 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
2623 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
2624 and pushqi1_h8300hs_normal; use PRE_MODIFY and
2625 register_no_sp_elim_operand.
2626 (*pushhi1_h8300hs_<P>): Similarly.
2627 (pushqi1, pushhi1, pushhi1_h8300): Remove.
2628 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
2630 2011-08-02 Richard Henderson <rth@redhat.com>
2633 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
2635 2011-08-02 Jakub Jelinek <jakub@redhat.com>
2637 * c-parser.c (enum c_parser_prec): New enum, moved from within
2638 c_parser_binary_expression.
2639 (c_parser_binary_expression): Add PREC argument. Stop parsing
2640 if operator has lower or equal precedence than PREC.
2641 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
2643 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
2644 Adjust c_finish_omp_atomic caller.
2645 (c_parser_omp_taskyield): New function.
2646 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
2647 (c_parser_omp_clause_name): Handle final and mergeable clauses.
2648 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
2650 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
2651 and PRAGMA_OMP_CLAUSE_MERGEABLE.
2652 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
2653 (c_parser_omp_clause_reduction): Handle min and max.
2654 * c-typeck.c (c_finish_omp_clauses): Don't complain about
2655 const qualified predetermined vars in firstprivate clause.
2656 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2657 Handle MIN_EXPR and MAX_EXPR.
2658 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
2659 and OMP_CLAUSE_MERGEABLE.
2660 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
2661 and OMP_ATOMIC_CAPTURE_NEW.
2662 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
2663 OMP_CLAUSE_MERGEABLE.
2664 (omp_clause_code_name): Likewise.
2665 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2666 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
2667 and OMP_CLAUSE_MERGEABLE.
2668 (OMP_CLAUSE_FINAL_EXPR): Define.
2669 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
2670 OMP_CLAUSE_MERGEABLE.
2671 (expand_task_call): Likewise.
2672 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
2673 (expand_omp_atomic_fetch_op): Handle cases where old or new
2674 value is needed afterwards.
2675 (expand_omp_atomic): Call expand_omp_atomic_load resp.
2676 expand_omp_atomic_store.
2677 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
2678 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
2679 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
2680 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2681 * tree-nested.c (convert_nonlocal_omp_clauses,
2682 convert_local_omp_clauses): Likewise.
2683 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
2684 OMP_ATOMIC_CAPTURE_NEW): New.
2685 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
2686 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
2688 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
2689 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
2690 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2692 2011-08-02 Kai Tietz <ktietz@redhat.com>
2694 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
2696 (ssa_forward_propagate_and_combine): Interprete result of
2697 forward_propagate_comparison.
2698 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
2699 boolean-typed operands for comparisons.
2701 2011-08-02 Georg-Johann Lay <avr@gjlay.de>
2703 * config/avr/libgcc.S: Gather related function in the
2705 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
2706 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
2708 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
2709 __udivmodsi4, __divmodsi4, __prologue_saves__,
2710 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
2711 __do_copy_data, __do_clear_bss, __do_global_ctors,
2712 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
2714 2011-08-02 Uros Bizjak <ubizjak@gmail.com>
2717 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
2718 (stack_protect_test): The pattern compares ptr_mode value.
2720 2011-08-02 Alan Modra <amodra@gmail.com>
2722 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
2723 note for save_LR_around_toc_setup sequence.
2725 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
2727 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
2729 2011-08-01 Sebastian Pop <sebastian.pop@amd.com>
2730 Joseph Myers <joseph@codesourcery.com>
2732 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
2733 * hwint.c: Include diagnostic-core.h.
2735 (gcd): Moved here...
2738 (least_common_multiple): Moved here...
2739 * hwint.h (gcd): ... from here.
2740 (least_common_multiple): ... from here.
2741 (HOST_WIDE_INT_MIN): New.
2742 (HOST_WIDE_INT_MAX): New.
2743 (abs_hwi): Declared.
2745 (pos_mul_hwi): Declared.
2746 (mul_hwi): Declared.
2747 (least_common_multiple): Declared.
2748 * omega.c (check_pos_mul): Removed.
2749 (check_mul): Removed.
2750 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
2751 mul_hwi instead of check_mul.
2753 2011-08-01 Richard Henderson <rth@redhat.com>
2756 * config/avr/avr.h (PUSH_ROUNDING): New.
2757 * config/avr/avr.md (pushqi1): Rename from *pushqi.
2758 (*pushhi, *pushsi, *pushsf): Remove.
2759 (MPUSH): New mode iterator.
2760 (push<MPUSH>1): New expander.
2762 2011-08-01 Anatoly Sokolov <aesok@post.ru>
2764 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
2765 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2766 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
2767 mmix_preferred_output_reload_class): Remove.
2768 * config/mmix/mmix.c (mmix_preferred_reload_class,
2769 mmix_preferred_output_reload_class): Make static. Change rclass
2770 argument and return type to reg_class_t.
2771 (TARGET_PREFERRED_RELOAD_CLASS,
2772 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2774 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
2776 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
2779 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
2782 * config/i386/i386.md (PTR): New.
2783 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
2784 (stack_protect_test): Likewise.
2785 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
2786 (stack_tls_protect_set_<mode>): Likewise.
2787 (stack_tls_protect_test_<mode>): Likewise.
2789 2011-08-01 Uros Bizjak <ubizjak@gmail.com>
2792 * config/i386/i386.c (ix86_address_subreg_operand): New.
2793 (ix86_decompose_address): Use ix86_address_subreg_operand.
2794 (ix86_legitimate_address_p): Do not assert that subregs satisfy
2795 register_no_elim_operand in DImode.
2797 2011-08-01 Ira Rosen <ira.rosen@linaro.org>
2799 PR tree-optimization/49926
2800 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
2801 in a chain doesn't have uses both inside and outside the loop.
2803 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
2805 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
2806 * config/avr/avr-devices.c (avr_mcu_types): Use it.
2807 * config/avr/avr-mcus.def (AVR_MCU): Use it.
2808 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
2809 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
2810 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
2811 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
2812 to detect if XJMP must not be skipped.
2814 2011-08-02 Alan Modra <amodra@gmail.com>
2816 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
2818 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
2819 (rs6000_emit_prologue): Don't prematurely return when
2820 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
2821 save_toc_in_prologue case.
2822 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
2825 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
2827 * config/avr/avr-devices.c: Delete SVN property svn:executable.
2828 * config/avr/predicates.md: Ditto.
2829 * config/avr/driver-avr.c: Ditto.
2830 * config/avr/genopt.sh: Set SVN property svn:executable to *.
2832 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
2834 * calls.c (emit_library_call_value_1): Declare size only if
2835 BLOCK_REG_PADDING is defined.
2837 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
2840 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
2841 (x86_64-*-*): Likewise.
2842 * config/i386/i386.opt (mlzcnt): New.
2843 * config/i386/abmintrin.h: File removed.
2844 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
2845 * config/i386/lzcntintrin.h: ... here. New file.
2846 (__lzcnt): Rename to ...
2847 (__lzcnt32): ... this.
2848 * config/i386/bmiintrin.h (head): Update copyright year.
2849 (__lzcnt_u16): Removed.
2850 (__lzcnt_u32): Likewise.
2851 (__lzcnt_u64): Likewise.
2852 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
2853 is defined, remove abmintrin.h.
2854 * config/i386/cpuid.h (bit_LZCNT): New.
2855 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2857 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2858 __LZCNT__ if needed.
2859 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
2860 (ix86_option_override_internal): Handle LZCNT option.
2861 (ix86_valid_target_attribute_inner_p): Likewise.
2862 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
2863 * config/i386/i386.h (TARGET_LZCNT): New.
2864 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
2865 * config/i386/i386.md (clz<mode>2): Update insn constraint.
2866 (clz<mode>2_lzcnt): Likewise.
2867 * doc/invoke.texi: Mention -mlzcnt option.
2868 * doc/extend.texi: Likewise.
2870 2011-08-01 Julian Brown <julian@codesourcery.com>
2872 * configure.ac (fixed-point): Add ARM support.
2873 * configure: Regenerate.
2874 * config/arm/arm.c (arm_fixed_mode_set): New struct.
2875 (arm_set_fixed_optab_libfunc): New.
2876 (arm_set_fixed_conv_libfunc): New.
2877 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
2879 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
2880 return values in SImode.
2881 (arm_return_in_msb): Return fixed-point types in the msb.
2882 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
2884 (arm_scalar_mode_supported_p): Support fixed-point modes.
2885 (arm_vector_mode_supported_p): Support vector fixed-point modes.
2886 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
2887 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
2888 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
2889 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
2890 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
2892 (qaddsub_suf): New mode attribute.
2893 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
2895 * config/arm/predicates.md (sat_shift_operator): New predicate.
2896 * config/arm/arm-fixed.md: New.
2897 * config/arm/arm.md: Include arm-fixed.md.
2898 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
2900 2011-08-01 Julian Brown <julian@codesourcery.com>
2902 * calls.c (emit_library_call_value_1): Support padding for libcall
2903 arguments and return values.
2904 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
2905 downwards in big-endian mode.
2907 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2910 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
2911 * config/sol2-protos.h: Likewise.
2912 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
2914 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
2915 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
2917 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
2919 2011-08-01 Julian Brown <julian@codesourcery.com>
2921 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
2923 2011-08-01 Julian Brown <julian@codesourcery.com>
2925 * final.c (output_addr_const): Print fixed-point constants as
2928 2011-08-01 Richard Guenther <rguenther@suse.de>
2930 * stor-layout.c (initialize_sizetypes): Properly sign-extend
2931 bitsiztype TYPE_MAX_VALUE.
2933 2011-08-01 Julian Brown <julian@codesourcery.com>
2935 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
2938 2011-07-31 Richard Henderson <rth@redhat.com>
2940 * config/h8300/crti.asm: Add flags to .section directive.
2941 * config/h8300/crtn.asm: Likewise.
2943 2011-07-31 Richard Henderson <rth@redhat.com>
2945 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
2946 * tree.c (build_common_tree_nodes): Likewise.
2948 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
2951 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
2952 (divsi3_i1): Likewise.
2954 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2956 PR tree-optimization/49749
2957 * tree-ssa-reassoc.c (get_rank): New forward declaration.
2958 (PHI_LOOP_BIAS): New macro.
2959 (phi_rank): New function.
2960 (loop_carried_phi): Likewise.
2961 (propagate_rank): Likewise.
2962 (get_rank): Add calls to phi_rank and propagate_rank.
2964 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
2966 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
2968 (PTRDIFF_TYPE): Likewise.
2970 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
2973 * config/i386/i386.md (strset): Do not expand strset_singleop
2974 when %eax or $edi are fixed.
2975 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
2976 (*strsetsi_1): Ditto.
2977 (*strsethi_1): Ditto.
2978 (*strsetqi_1): Ditto.
2979 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
2980 (*rep_stossi): Ditto.
2981 (*rep_stosqi): Ditto.
2982 (*strlenqi_1): Ditto.
2983 (cmpstrnsi): Also fail when %ecx is fixed.
2984 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
2985 (*cmpstrnqi_1): Ditto.
2986 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
2987 (*strmovsi_1): Ditto.
2988 (*strmovhi_1): Ditto.
2989 (*strmovqi_1): Ditto.
2990 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
2991 (*rep_movsi): Ditto.
2992 (*rep_movqi): Ditto.
2994 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
2997 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
2998 Disable instruction scheduling for non-ColdFire targets.
2999 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3001 2011-07-31 Revital Eres <revital.eres@linaro.org>
3003 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
3004 of anti-dep edge from a branch.
3005 (add_cross_iteration_register_deps): Create anti-dep edge from
3008 2011-07-31 Revital Eres <revital.eres@linaro.org>
3010 * modulo-sched.c: Change comment.
3011 (reset_sched_times): Fix print message.
3012 (print_partial_schedule): Add print info.
3014 2011-07-31 Tom de Vries <tom@codesourcery.com>
3017 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
3018 get_object_alignment and TYPE_ALIGN.
3020 2011-07-30 Tom de Vries <tom@codesourcery.com>
3023 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
3024 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
3026 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3028 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
3030 (cpu_types): New array.
3031 (cputype): New function.
3032 (host_detect_local_cpu): Only define buf, f if !__sgi__.
3033 Use scaninvent instead of /proc/cpuinfo if __sgi__.
3034 * config.host: Also use driver-native.o, mips/x-native on
3036 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
3037 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
3038 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
3040 2011-07-29 Jakub Jelinek <jakub@redhat.com>
3044 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
3045 in nested parallel and outer is a gimple_reg, mark it as addressable
3046 and set its bit in task_shared_vars bitmap too.
3048 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
3050 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
3052 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3054 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
3055 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
3056 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
3057 AMASK_LOCKPFTCHOK): Define.
3058 (host_detect_local_cpu): Remove buf, f, cpu_names.
3059 Define cpu_types, implver, amask.
3060 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
3062 * config.host: Also use driver-alpha.o, alpha/x-alpha on
3064 * config/alpha/osf5.h [__alpha__ || __alpha]
3065 (host_detect_local_cpu): Declare.
3066 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
3067 (DRIVER_SELF_SPECS): Define.
3069 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
3072 * config/i386/i386.md (*load_tp_x32): New.
3073 (*load_tp_x32_zext): Ditto.
3074 (*add_tp_x32): Ditto.
3075 (*add_tp_x32_zext): Ditto.
3076 (*load_tp_<mode>): Disable for TARGET_X32 targets.
3077 (*add_tp_<mode>): Ditto.
3078 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
3079 ptr_mode and convert to Pmode if needed.
3081 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
3084 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
3085 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
3086 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
3087 Add X to register footprint: Clobber r26/r27.
3089 2011-07-29 Richard Guenther <rguenther@suse.de>
3091 * builtins.c (fold_builtin_signbit): Build the comparison
3094 2011-07-29 Richard Guenther <rguenther@suse.de>
3096 PR tree-optimization/49893
3097 * tree-predcom.c (suitable_reference_p): Volatile references
3100 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
3103 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3104 (__ctzsi2): Result for 0 may be undefined.
3105 (__ctzhi2): Result for 0 may be undefined.
3106 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
3107 (__popcountsi2): Ditto. And don't clobber r26.
3108 (__popcountdi2): Ditto. And don't clobber r27.
3109 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
3110 (parityhi2): New expand.
3111 (paritysi2): New expand.
3112 (popcounthi2): New expand.
3113 (popcountsi2): New expand.
3114 (clzhi2): New expand.
3115 (clzsi2): New expand.
3116 (ctzhi2): New expand.
3117 (ctzsi2): New expand.
3118 (ffshi2): New expand.
3119 (ffssi2): New expand.
3120 (copysignsf3): New insn.
3121 (bswapsi2): New expand.
3122 (*parityhi2.libgcc): New insn.
3123 (*parityqihi2.libgcc): New insn.
3124 (*paritysihi2.libgcc): New insn.
3125 (*popcounthi2.libgcc): New insn.
3126 (*popcountsi2.libgcc): New insn.
3127 (*popcountqi2.libgcc): New insn.
3128 (*popcountqihi2.libgcc): New insn-and-split.
3129 (*clzhi2.libgcc): New insn.
3130 (*clzsihi2.libgcc): New insn.
3131 (*ctzhi2.libgcc): New insn.
3132 (*ctzsihi2.libgcc): New insn.
3133 (*ffshi2.libgcc): New insn.
3134 (*ffssihi2.libgcc): New insn.
3135 (*bswapsi2.libgcc): New insn.
3137 2011-07-29 Richard Guenther <rguenther@suse.de>
3139 * tree-vrp.c (get_value_range): Only set parameter default
3140 definitions to varying, leave others at undefined.
3141 (extract_range_from_binary_expr): Fix undefined handling.
3142 (vrp_visit_phi_node): Handle merged undefined state.
3144 2011-07-29 Wei Guozhi <carrot@google.com>
3146 PR rtl-optimization/49799
3147 * combine.c (make_compound_operation): Check if the bit field is valid
3148 before change it to bit field extraction.
3150 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
3152 PR rtl-optimization/49891
3153 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
3154 newly created returnjumps.
3156 2011-07-28 DJ Delorie <dj@redhat.com>
3158 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
3159 local frame in a naked function, and produce a suitable error for
3162 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
3163 registers to be reloaded in HI classes when the target is HI.
3165 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
3167 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
3168 bound_one, bound_two.
3170 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
3173 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
3175 (translate_clast): Same.
3176 (translate_clast_assignment): New.
3178 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
3180 PR tree-optimization/49876
3181 * sese.c (rename_uses): Do not return false on gloog_error: set
3182 the new_expr to integer_zero_node and continue code generation.
3183 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
3185 2011-07-28 Jakub Jelinek <jakub@redhat.com>
3188 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
3189 arguments also check if they aren't initialized with a MODE_INT
3190 mode of the same size.
3192 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
3194 * expr.c (get_bit_range): Handle *MEM_REF's.
3196 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
3198 * rtlanal.c (tablejump_p): False for returns.
3199 * reorg.c (first_active_target_insn): New static function.
3200 (find_end_label): Set JUMP_LABEL for a new returnjump.
3201 (optimize_skip, get_jump_flags, rare_destination,
3202 mostly_true_jump, get_branch_condition,
3203 steal_delay_list_from_target, own_thread_p,
3204 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
3205 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
3206 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
3207 * jump.c (delete_related_insns): Likewise.
3208 (jump_to_label_p): New function.
3209 (redirect_target): New static function.
3210 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
3211 (redirect_jump_1): Assert that the new label is nonnull.
3212 (redirect_jump): Likewise.
3213 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
3214 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
3216 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
3217 changed. Ensure that the right label is passed to redirect_jump.
3218 * function.c (emit_return_into_block,
3219 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
3220 ret_rtx in their JUMP_LABEL.
3221 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
3222 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
3223 pass ret_rtx as label.
3224 * cfglayout.c (fixup_reorder_chain): Use
3225 force_nonfallthru_and_redirect rather than force_nonfallthru.
3226 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
3227 * rtl.h (ANY_RETURN_P): New macro.
3228 (jump_to_label_p): Declare.
3229 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
3231 (mark_target_live_regs): Likewise.
3232 * basic-block.h (force_nonfallthru_and_redirect): Declare.
3233 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
3234 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
3235 alpha_tablejump_best_label): Remove functions.
3236 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
3237 alpha_tablejump_best_label): Remove declarations.
3238 * config/sh/sh.c (barrier_align, split_branches): Adjust for
3239 ret_rtx in JUMP_LABELs.
3240 * config/arm/arm.c (is_jump_table): Likewise.
3242 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
3244 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
3245 special predicate. Remove explicit mode checks.
3247 2011-07-28 Jakub Jelinek <jakub@redhat.com>
3249 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
3250 DW_AT_data_member_location containing just DW_OP_plus_uconst.
3253 * dwarf2out.c (size_of_die, value_format, output_die): Use
3254 DW_FORM_udata instead of DW_FORM_data[48] for
3255 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
3257 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3259 * config/i386/i386.md (*tls_global_dynamic_64): Update
3262 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
3265 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
3266 tls_symbolic_operand check. Update code sequence for TARGET_X32.
3267 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
3268 (tls_dynamic_gnu2_64): Ditto.
3269 (*tls_dynamic_gnu2_lea_64): Ditto.
3270 (*tls_dynamic_gnu2_call_64): Ditto.
3271 (*tls_dynamic_gnu2_combine_64): Ditto.
3273 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3275 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
3277 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
3280 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
3282 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3284 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
3285 before the core constraints. Adjust attributes.
3286 ("*thumb2_movdf_vfp"): Likewise.
3288 2011-07-28 Kai Tietz <ktietz@redhat.com>
3290 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
3291 (simplify_truth_ops_using_ranges): Likewise.
3292 (build_assert_expr_for): Likewise.
3293 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
3294 and handle BIT_NOT_EXPR for truth-operation.
3296 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
3299 Undo r176835 from trunk
3300 2011-07-27 Georg-Johann Lay
3302 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
3305 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
3306 Add _muluhisi3, _mulshisi3, _usmulhisi3.
3307 * config/avr/libgcc.S (__mulsi3): Rewrite.
3308 (__mulhisi3): Rewrite.
3309 (__umulhisi3): Rewrite.
3310 (__usmulhisi3): New.
3314 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
3316 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
3317 (pseudo_register_or_const_int_operand): New.
3318 (combine_pseudo_register_operand): New.
3322 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
3323 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
3324 (any_extend, any_extend2): New code iterators.
3325 (extend_prefix): New code attribute.
3326 (mulsi3): Rewrite. Turn insn to expander.
3329 (usmulhisi3): New expander.
3330 (*mulsi3): New insn-and-split.
3331 (mulu<mode>si3): New insn-and-split.
3332 (muls<mode>si3): New insn-and-split.
3333 (mulohisi3): New insn-and-split.
3334 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
3335 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
3336 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
3337 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
3339 (*mulsi3_call): Rewrite.
3340 (*mulhisi3_call): Rewrite.
3341 (*umulhisi3_call): Rewrite.
3342 (*usmulhisi3_call): New insn.
3343 (*muluhisi3_call): New insn.
3344 (*mulshisi3_call): New insn.
3345 (*mulohisi3_call): New insn.
3346 (extendqihi2): Use combine_pseudo_register_operand as predicate
3348 (extendqisi2): Ditto.
3349 (zero_extendqihi2): Ditto.
3350 (zero_extendqisi2): Ditto.
3351 (zero_extendhisi2): Ditto.
3352 (extendhisi2): Ditto. Don't early-clobber operand 0.
3354 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
3356 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
3358 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
3360 PR tree-optimization/49471
3361 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
3362 iv only when the largest type is unsigned. Do not call
3363 lang_hooks.types.type_for_size.
3365 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
3368 * graphite-poly.c (apply_poly_transforms): Disable legality check
3369 after an openscop read.
3371 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
3374 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
3375 copy_bb_and_scalar_dependences.
3376 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
3377 (graphite_copy_stmts_from_block): Update call to rename_uses.
3378 (copy_bb_and_scalar_dependences): Update call to
3379 graphite_copy_stmts_from_block.
3380 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
3382 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
3385 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
3386 (__ctzsi2): Result for 0 may be undefined.
3387 (__ctzhi2): Result for 0 may be undefined.
3388 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
3389 (__popcountsi2): Ditto. And don't clobber r26.
3390 (__popcountdi2): Ditto. And don't clobber r27.
3391 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
3392 (parityhi2): New expand.
3393 (paritysi2): New expand.
3394 (popcounthi2): New expand.
3395 (popcountsi2): New expand.
3396 (clzhi2): New expand.
3397 (clzsi2): New expand.
3398 (ctzhi2): New expand.
3399 (ctzsi2): New expand.
3400 (ffshi2): New expand.
3401 (ffssi2): New expand.
3402 (copysignsf3): New insn.
3403 (bswapsi2): New expand.
3404 (*parityhi2.libgcc): New insn.
3405 (*parityqihi2.libgcc): New insn.
3406 (*paritysihi2.libgcc): New insn.
3407 (*popcounthi2.libgcc): New insn.
3408 (*popcountsi2.libgcc): New insn.
3409 (*popcountqi2.libgcc): New insn.
3410 (*popcountqihi2.libgcc): New insn-and-split.
3411 (*clzhi2.libgcc): New insn.
3412 (*clzsihi2.libgcc): New insn.
3413 (*ctzhi2.libgcc): New insn.
3414 (*ctzsihi2.libgcc): New insn.
3415 (*ffshi2.libgcc): New insn.
3416 (*ffssihi2.libgcc): New insn.
3417 (*bswapsi2.libgcc): New insn.
3419 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
3421 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
3422 the mode of symbolic_opreand RTXes.
3424 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
3426 * config/i386/predicates.md (x86_64_movabs_operand): Return false
3427 for pic_32bit_operand RTXes.
3428 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
3431 2011-07-27 Kai Tietz <ktietz@redhat.com>
3433 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
3435 (ix86_handle_abi_attribute): Allow function attributes
3436 ms_abi/sysv_abi in 32-bit mode, too.
3437 * doc/extend.texi: Adjust attribute documentation.
3439 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
3440 expression handling.
3441 (and_var_with_comparison_1): Likewise.
3443 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
3445 * params.h (ALLOW_STORE_DATA_RACES): New.
3446 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
3447 * Makefile.in (expr.o): Depend on PARAMS_H.
3448 * machmode.h (get_best_mode): Add argument.
3449 * fold-const.c (optimize_bit_field_compare): Add argument to
3451 (fold_truthop): Same.
3452 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
3453 * expr.c (emit_group_store): Same.
3454 (copy_blkmode_from_reg): Same.
3455 (write_complex_part): Same.
3456 (optimize_bitfield_assignment_op): Add argument.
3457 Add argument to get_best_mode.
3458 (get_bit_range): New.
3459 (expand_assignment): Calculate maxbits and pass it down accordingly.
3460 (store_field): New argument.
3461 (expand_expr_real_2): New argument to store_field. Include params.h.
3462 * expr.h (store_bit_field): New argument.
3463 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
3464 into account maxbits.
3465 * calls.c (store_unaligned_arguments_into_pseudos): New argument
3467 * expmed.c (store_bit_field_1): New argument. Use it.
3468 (store_bit_field): Same.
3469 (store_fixed_bit_field): Same.
3470 (store_split_bit_field): Same.
3471 (extract_bit_field_1): Pass new argument to get_best_mode.
3472 (extract_bit_field): Same.
3473 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
3474 * doc/invoke.texi: Document parameter allow-store-data-races.
3476 2011-07-27 Jakub Jelinek <jakub@redhat.com>
3478 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
3480 2011-07-27 Kai Tietz <ktietz@redhat.com>
3482 * tree-vrp.c (extract_range_from_binary_expr): Remove
3483 TRUTH-binary cases and add new bitwise-cases.
3484 (extract_range_from_assignment): Likewise.
3485 (register_edge_assert_for_1): Likeiwise.
3486 (register_edge_assert_for): Likewise.
3487 (simplify_truth_ops_using_ranges): Likewise.
3488 (simplify_stmt_using_ranges): Likewise.
3490 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
3493 * config/i386/i386.c (ix86_delegitimize_address): Call
3494 simplify_gen_subreg for PIC with mode of x only if modes of
3495 x and orig_x are different.
3497 2011-07-26 Jakub Jelinek <jakub@redhat.com>
3499 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
3500 to GC allocated copy of the string.
3501 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
3502 before .debug_line, not after it.
3504 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3507 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
3508 evolution_function_is_affine_p on CHREC_RIGHT.
3510 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3512 * tree-data-ref.c (max_stmt_executions_tree): Do not call
3513 lang_hooks.types.type_for_size.
3515 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3518 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
3519 loops using wrapping semantics.
3521 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
3524 * tree-scalar-evolution.c (instantiate_scev_r): Return
3525 chrec_dont_know for ADDR_EXPR.
3527 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
3528 H.J. Lu <hongjiu.lu@intel.com>
3532 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
3533 if legitimize_tls_address returned operand in wrong mode. Allow
3534 SImode and DImode symbolic operand for PIC. Call convert_to_mode
3535 if legitimize_pic_address returned operand in wrong mode.
3537 2011-07-26 Martin Jambor <mjambor@suse.cz>
3539 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
3540 return false for invariants.
3542 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
3544 * config/i386/i386.md (add->lea splitter): Implement using SWI
3545 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
3546 (add->lea zext splitter): Change operand 2 predicate to
3547 x86_64_nonmemory_operand.
3549 2011-07-26 Richard Guenther <rguenther@suse.de>
3551 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
3552 frequency makes everything hot.
3554 2011-07-26 Richard Guenther <rguenther@suse.de>
3556 PR tree-optimization/49840
3557 * tree-vrp.c (range_fits_type_p): Properly handle full
3558 double-int precision.
3560 2011-07-26 Martin Jambor <mjambor@suse.cz>
3563 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
3565 (update_specialized_profile): Likewise.
3567 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
3568 H.J. Lu <hongjiu.lu@intel.com>
3573 * config/i386/i386.md (i): Change SImode attribute to "e".
3574 (g): Change SImode attribute to "rme".
3575 (di): Change SImode attribute to "nF".
3576 (general_operand): Change SImode attribute to x86_64_general_operand.
3577 (general_szext_operand): Change SImode attribute to
3578 x86_64_szext_general_operand.
3579 (immediate_operand): Change SImode attribute to
3580 x86_64_immediate_operand.
3581 (nonmemory_operand): Change SImode attribute to
3582 x86_64_nonmemory_operand.
3583 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
3584 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
3585 (*lea_1): Use SWI48 mode iterator.
3586 (*lea_1_zext): New insn pattern.
3587 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
3589 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
3590 Update operand constraints.
3591 (addsi_1_zext): Ditto.
3592 (*add<mode>2): Ditto.
3593 (*addsi_3_zext): Ditto.
3594 (*subsi_1_zext): Ditto.
3595 (*subsi_2_zext): Ditto.
3596 (*subsi_3_zext): Ditto.
3597 (*addsi3_carry_zext): Ditto.
3598 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
3599 (*mulsi3_1_zext): Ditto.
3601 (*andsi_1_zext): Ditto.
3602 (*andsi_2_zext): Ditto.
3603 (*<any_or:code>si_1_zext): Ditto.
3604 (*<any_or:code>si_2_zext): Ditto.
3605 (*test<mode>_1): Use <general_operand> predicate for operand 1.
3606 (*and<mode>_2): Ditto.
3607 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
3608 (add->lea splitter): Check operand modes in insn constraint. Extend
3609 operands less than SImode wide to SImode.
3610 (add->lea zext splitter): Do not extend input operands to DImode.
3611 (*lea_general_1): Handle only QImode and HImode operands.
3612 (*lea_general_2): Ditto.
3613 (*lea_general_3): Ditto.
3614 (*lea_general_1_zext): Remove.
3615 (*lea_general_2_zext): Ditto.
3616 (*lea_general_3_zext): Ditto.
3617 (*lea_general_4): Check operand modes in insn constraint. Extend
3618 operands less than SImode wide to SImode.
3619 (ashift->lea splitter): Ditto.
3620 * config/i386/i386.c (ix86_print_operand_address): Print address
3621 registers with 'q' modifier on 64bit targets.
3622 * config/i386/predicates.md (pic_32bit_opreand): Define as special
3623 predicate. Reject non-SI and non-DI modes.
3625 2011-07-25 Andrew Pinski <apinski@cavium.com>
3628 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
3629 TREE_THIS_NOTRAP into the inner most MEM_REF.
3630 Always copy TREE_THIS_VOLATILE.
3631 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
3632 arguments are not volatile references.
3634 2011-07-25 Richard Henderson <rth@redhat.com>
3636 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
3637 * final.c (final_scan_insn): Don't test for it.
3638 (rest_of_clean_state): Likewise.
3640 2011-07-25 Richard Henderson <rth@redhat.com>
3643 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
3644 (emit_frame_save): Likewise.
3645 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
3646 insn onto a dummy blockage insn after the join label.
3648 2011-07-25 Richard Henderson <rth@redhat.com>
3650 * dwarf2cfi.c (dw_trace_info): Add ID member.
3651 (get_trace_index): Remove. Change users to use ID member.
3652 (before_next_cfi_note): New.
3653 (connect_traces): Remove unreachable traces before the main loop.
3654 Look across one trace and generate remember/restore_state if needed.
3656 2011-07-25 Richard Henderson <rth@redhat.com>
3658 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
3660 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
3662 * genattr.c (write_upcase, gen_attr <enum definition writing>):
3664 * genattr-common.c ... here.
3665 (main): Call gen_attr.
3666 * optc-gen.awk: Make generated program include insn-attr-common.h .
3667 * Makefile.in (oprions.o): Depend on insn-attr-common.h
3669 2011-07-25 Anatoly Sokolov <aesok@post.ru>
3671 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3672 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
3673 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
3674 m32c_print_operand, m32c_print_operand_address): Remove.
3675 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
3676 Change return type to bool. Change argument type to bool.
3677 (m32c_print_operand, m32c_print_operand_address): Make static.
3678 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
3679 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3681 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3683 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
3684 attributes): Document mmap.
3686 2011-07-25 Anatoly Sokolov <aesok@post.ru>
3688 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3689 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
3690 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
3691 mmix_print_operand, mmix_print_operand_address): Remove.
3692 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
3693 Change return type to bool. Change argument type to bool.
3694 (mmix_print_operand, mmix_print_operand_address): Make static.
3695 (mmix_intval, mmix_output_condition): Change 'x' argument type
3697 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
3698 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3700 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
3703 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
3704 shift counter for x << x and x >> x shifts.
3706 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3709 * config.gcc: Reject *-*-solaris2 configuration.
3711 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
3713 PR tree-optimization/49809
3714 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
3715 gimple_get_lhs instead of gimple_assign_lhs.
3717 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3719 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
3721 2011-07-25 Richard Guenther <rguenther@suse.de>
3723 PR tree-optimization/49822
3724 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3725 more. Make sure to preserve stmts with side-effects. Properly
3726 handle virtual defs, follow a longer def chain.
3728 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
3733 * Makefile.in: Do not flatten c-family directory when installing
3736 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
3738 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
3739 original nodes if we are dealing with virtual clones.
3741 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
3743 * common/config/c6x/c6x-common.c: New file.
3745 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
3747 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
3749 2011-07-25 Richard Guenther <rguenther@suse.de>
3751 PR tree-optimization/49715
3752 * tree-vrp.c: Include expr.h and optabs.h.
3753 (range_fits_type_): New function.
3754 (simplify_float_conversion_using_ranges): Likewise.
3755 (simplify_stmt_using_ranges): Call it.
3756 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
3757 * optabs.c (can_float_p): Export.
3758 * optabs.h (can_float_p): Declare.
3760 2011-07-25 Richard Guenther <rguenther@suse.de>
3762 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
3763 (get_value_range): For out-of-range SSA names or names created
3764 after propagation return a read-only varying range.
3765 (dump_all_value_ranges): Adjust.
3766 (vrp_initialize): Likewise.
3767 (vrp_finalize): Likewise.
3769 2011-07-24 Richard Henderson <rth@redhat.com>
3772 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
3775 2011-07-24 Richard Henderson <rth@redhat.com>
3778 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
3779 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
3781 2011-07-24 Richard Henderson <rth@redhat.com>
3784 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
3786 2011-07-24 Richard Henderson <rth@redhat.com>
3788 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
3789 Zero args_size for abnormal edges. Adjust all callers.
3791 2011-07-24 Richard Henderson <rth@redhat.com>
3794 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
3796 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
3799 * collect2.c (demangle_flag): Removed.
3801 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
3803 * configure.ac (demangler_in_ld): Default to yes.
3804 * configure: Regenerated.
3805 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
3806 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
3807 --no-demangle options straight through to ld. When
3808 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
3809 way that has the intended effect on Windows.
3811 2011-07-23 Richard Henderson <rth@redhat.com>
3813 * dwarf2cfi.c: Include basic-block.h.
3814 (dw_label_info): Remove.
3815 (trace_work_list, trace_index): New.
3816 (remember_row, emit_cfa_remember): Remove.
3817 (dw_trace_info_hash, dw_trace_info_eq): New.
3818 (get_trace_index, get_trace_info): New.
3819 (save_point_p): New.
3820 (free_cfi_row): Remove.
3821 (add_cfi): Do not emit DW_CFA_remember_state.
3822 (cfa_row_equal_p): New.
3823 (barrier_args_size): Remove.
3824 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
3825 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
3826 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
3827 (dwarf2out_cfi_begin_epilogue): Remove.
3828 (dwarf2out_frame_debug_restore_state): Remove.
3829 (connect_traces, create_pseudo_cfg): New.
3830 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
3831 * Makefile.in (dwarf2cfi.o): Update.
3833 2011-07-23 Richard Henderson <rth@redhat.com>
3835 * dwarf2cfi.c (dw_trace_info): New.
3836 (dw_label_info): New.
3837 (cie_return_save): New.
3839 (queued_args_size): Rename from args_size. Update all users.
3840 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
3841 (def_cfa_1): Use cur_trace instead of cfa_*.
3842 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
3843 (clobbers_queued_reg_save, reg_saved_in): Likewise.
3844 (dwarf2out_frame_debug_expr): Likewise.
3845 (create_cie_data): Split out from ...
3846 (execute_dwarf2_frame): ... here. Initialize cur_trace.
3848 2011-07-23 Richard Henderson <rth@redhat.com>
3850 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
3851 Update all users to match.
3852 (execute_dwarf2_frame): Free reg_saved_in_data.
3854 2011-07-23 Richard Henderson <rth@redhat.com>
3856 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
3857 (queued_reg_saves): Don't GTY. Change to a VEC.
3858 (queue_reg_save): Update to match.
3859 (dwarf2out_flush_queued_reg_saves): Likewise.
3860 (clobbers_queued_reg_save): Likewise.
3861 (reg_saved_in): Likewise.
3862 (execute_dwarf2_frame): Free queued_reg_saves.
3864 2011-07-23 Richard Henderson <rth@redhat.com>
3866 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
3868 2011-07-23 Richard Henderson <rth@redhat.com>
3870 * dwarf2cfi.c (add_cfi_args_size): Split out from...
3871 (dwarf2out_args_size): ... here.
3872 (add_cfi_restore): Split out from ...
3873 (dwarf2out_frame_debug_cfa_restore): ... here.
3874 (def_cfa_0): Split out from ...
3875 (def_cfa_1): ... here.
3876 (cfi_oprnd_equal_p, cfi_equal_p): New.
3877 (change_cfi_row): New.
3878 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
3879 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
3880 (output_cfis): Remove.
3881 * dwarf2out.c (output_fde): Simplify output_cfi loop.
3882 (dwarf2out_switch_text_section): Don't call output_cfis.
3883 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
3884 * dwarf2out.h: Update decls.
3885 (enum dw_val_class): Add dw_val_class_none.
3887 2011-07-23 Richard Henderson <rth@redhat.com>
3889 * dwarf2cfi.c (update_row_reg_save): New.
3890 (dwarf2out_frame_debug_cfa_expression): Use it.
3891 (dwarf2out_frame_debug_cfa_restore): Likewise.
3892 (reg_save): Likewise. Do not emit DW_CFA_same_value.
3894 2011-07-23 Richard Henderson <rth@redhat.com>
3896 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
3898 2011-07-23 Richard Henderson <rth@redhat.com>
3900 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
3902 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
3903 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
3904 (cur_row, remember_row): New.
3905 (def_cfa_1): Use cur_row instead of the old_* variables.
3906 (dwarf2out_frame_debug_restore_state): Similarly.
3907 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
3908 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
3909 (dwarf2out_frame_debug_adjust_cfa): Likewise.
3910 (dwarf2out_frame_debug_cfa_offset): Likewise.
3911 (dwarf2out_frame_debug_expr): Likewise.
3912 (execute_dwarf2_frame): Set up cur_row.
3913 * dwarf2out.h (struct cfa_loc): Mark for GTY.
3915 2011-07-23 Richard Henderson <rth@redhat.com>
3917 * basic-block.h (EDGE_PRESERVE): New.
3918 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
3919 * bb-reorder.c: Include except.h.
3920 (fix_up_crossing_landing_pad): New.
3921 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
3922 landing pads in the right partition. Duplicate as necessary.
3923 (partition_hot_cold_basic_blocks): Fix up DF info after
3924 duplicating landing pads.
3925 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
3926 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
3927 is set properly. Validate that EH edges are not CROSSING.
3928 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
3929 (dw2_build_landing_pads): ... here.
3930 (convert_to_eh_region_ranges): Remove code to fixup crossing
3932 * except.h (expand_dw2_landing_pad_for_region): Declare.
3933 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
3935 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
3938 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
3940 2011-07-22 Jason Merrill <jason@redhat.com>
3942 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
3944 2011-07-22 Richard Henderson <rth@redhat.com>
3946 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
3948 2011-07-22 Richard Henderson <rth@redhat.com>
3950 * jump.c (maybe_propagate_label_ref): Split out of...
3951 (mark_all_labels): ... here. Do not attempt label_ref
3952 propagation while in cfglayout mode.
3954 2011-07-22 Jakub Jelinek <jakub@redhat.com>
3956 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
3957 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
3958 (dwarf_attr_name): Handle DW_AT_GNU_macros.
3959 (dwarf2out_define): If the vector is empty and
3960 lineno is 0, emit a dummy entry first.
3961 (dwarf2out_undef): Likewise. Remove redundant semicolon.
3962 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
3963 optimize_macinfo_range): New functions.
3964 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
3965 mergeable, optimize longer strings using
3966 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
3967 optimize longer sequences of define/undef ops from headers
3968 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
3969 emit a section headers.
3970 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
3971 and macinfo_section_label to DEBUG_MACRO_SECTION
3972 resp. DEBUG_MACRO_SECTION_LABEL.
3973 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
3974 instead of DW_AT_macro_info.
3977 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
3979 * dwarf2out.c: Include opts.h.
3980 (dchar_p): New typedef. Define heap VEC for it.
3981 (producer_string): New variable.
3982 (gen_producer_string): New function.
3983 (gen_compile_unit_die): Use it.
3984 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
3985 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
3986 * doc/invoke.texi: Document -grecord-gcc-switches and
3987 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
3988 to -frecord-gcc-switches description.
3990 2011-07-22 Jason Merrill <jason@redhat.com>
3993 * c-decl.c (c_linkage_bindings): Define.
3995 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>