1 2014-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
2 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3 Anna Tikhonova <anna.tikhonova@intel.com>
4 Ilya Tocar <ilya.tocar@intel.com>
5 Andrey Turetskiy <andrey.turetskiy@intel.com>
6 Ilya Verbin <ilya.verbin@intel.com>
7 Kirill Yukhin <kirill.yukhin@intel.com>
8 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10 * config/i386/i386-builtin-types.def
29 (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
30 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
31 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
32 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
33 (V16SF_FTYPE_V16HI): Ditto.
34 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
35 (V16SF_FTYPE_V16SI): Ditto.
36 (V4DI_FTYPE_V4DI): Ditto.
37 (V16SI_FTYPE_V16SF): Ditto.
38 (V8DI_FTYPE_PV2DI): Ditto.
39 (V8DF_FTYPE_PV2DF): Ditto.
40 (V4DI_FTYPE_PV2DI): Ditto.
41 (V4DF_FTYPE_PV2DF): Ditto.
42 (V16SI_FTYPE_PV2SI): Ditto.
43 (V16SF_FTYPE_PV2SF): Ditto.
44 (V8SF_FTYPE_FLOAT): Ditto.
45 (V4SF_FTYPE_FLOAT): Ditto.
46 (V4DF_FTYPE_DOUBLE): Ditto.
47 (V8SF_FTYPE_PV4SF): Ditto.
48 (V8SI_FTYPE_PV4SI): Ditto.
49 (V4SI_FTYPE_PV2SI): Ditto.
50 (V8SF_FTYPE_PV2SF): Ditto.
51 (V8SI_FTYPE_PV2SI): Ditto.
52 (V16SF_FTYPE_PV8SF): Ditto.
53 (V16SI_FTYPE_PV8SI): Ditto.
54 (V8DI_FTYPE_V8SF): Ditto.
55 (V4DI_FTYPE_V4SF): Ditto.
56 (V2DI_FTYPE_V4SF): Ditto.
57 (V64QI_FTYPE_QI): Ditto.
58 (V32HI_FTYPE_HI): Ditto.
59 (V16UHI_FTYPE_V16UHI): Ditto.
60 (V32UHI_FTYPE_V32UHI): Ditto.
61 (V2UDI_FTYPE_V2UDI): Ditto.
62 (V4UDI_FTYPE_V4UDI): Ditto.
63 (V8UDI_FTYPE_V8UDI): Ditto.
64 (V4USI_FTYPE_V4USI): Ditto.
65 (V16USI_FTYPE_V16USI): Ditto.
66 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
67 (V2DF_FTYPE_V8DF_INT): Ditto.
68 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
69 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
70 (V8DF_FTYPE_V8DF_INT): Ditto.
71 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
72 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
73 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
74 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
75 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
76 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
77 (V8DI_FTYPE_V8DI_INT): Ditto.
78 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
79 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
80 (V8SF_FTYPE_V16SF_INT): Ditto.
81 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
82 (V64QI_FTYPE_V32HI_V32HI): Ditto.
83 (V32HI_FTYPE_V16SI_V16SI): Ditto.
84 (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
85 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
86 (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
87 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
88 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
89 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
90 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
91 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
92 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
93 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
94 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
95 (V32HI_FTYPE_V64QI_V64QI): Ditto.
96 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
97 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
98 (V32HI_FTYPE_V32HI_V32HI): Ditto.
99 (V32HI_FTYPE_V32HI_INT): Ditto.
100 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
101 (V16SI_FTYPE_V32HI_V32HI): Ditto.
102 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
103 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
104 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
105 (V8SI_FTYPE_V16SI_INT): Ditto.
106 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
107 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
108 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
109 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
110 (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
111 (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
112 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
113 (V8DI_FTYPE_V16SI_V16SI): Ditto.
114 (V8DI_FTYPE_V64QI_V64QI): Ditto.
115 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
116 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
117 (V2DI_FTYPE_V8DI_INT): Ditto.
118 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
119 (QI_FTYPE_QI): Ditto.
120 (SI_FTYPE_SI): Ditto.
121 (DI_FTYPE_DI): Ditto.
122 (HI_FTYPE_V16QI): Ditto.
123 (SI_FTYPE_V32QI): Ditto.
124 (DI_FTYPE_V64QI): Ditto.
125 (QI_FTYPE_V8HI): Ditto.
126 (HI_FTYPE_V16HI): Ditto.
127 (SI_FTYPE_V32HI): Ditto.
128 (QI_FTYPE_V4SI): Ditto.
129 (QI_FTYPE_V8SI): Ditto.
130 (HI_FTYPE_V16SI): Ditto.
131 (QI_FTYPE_V2DI): Ditto.
132 (QI_FTYPE_V4DI): Ditto.
133 (QI_FTYPE_V8DI): Ditto.
134 (V16QI_FTYPE_HI): Ditto.
135 (V32QI_FTYPE_SI): Ditto.
136 (V64QI_FTYPE_DI): Ditto.
137 (V8HI_FTYPE_QI): Ditto.
138 (V16HI_FTYPE_HI): Ditto.
139 (V32HI_FTYPE_SI): Ditto.
140 (V4SI_FTYPE_QI): Ditto.
141 (V4SI_FTYPE_HI): Ditto.
142 (V8SI_FTYPE_QI): Ditto.
143 (V8SI_FTYPE_HI): Ditto.
144 (V2DI_FTYPE_QI): Ditto.
145 (V4DI_FTYPE_QI): Ditto.
146 (QI_FTYPE_QI_QI): Ditto.
147 (SI_FTYPE_SI_SI): Ditto.
148 (DI_FTYPE_DI_DI): Ditto.
149 (QI_FTYPE_QI_INT): Ditto.
150 (SI_FTYPE_SI_INT): Ditto.
151 (DI_FTYPE_DI_INT): Ditto.
152 (HI_FTYPE_V16QI_V16QI): Ditto.
153 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
154 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
155 (SI_FTYPE_V32QI_V32QI): Ditto.
156 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
157 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
158 (DI_FTYPE_V64QI_V64QI): Ditto.
159 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
160 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
161 (QI_FTYPE_V8HI_V8HI): Ditto.
162 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
163 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
164 (HI_FTYPE_V16HI_V16HI): Ditto.
165 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
166 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
167 (SI_FTYPE_V32HI_V32HI): Ditto.
168 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
169 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
170 (QI_FTYPE_V4SI_V4SI): Ditto.
171 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
172 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
173 (QI_FTYPE_V8SI_V8SI): Ditto.
174 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
175 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
176 (QI_FTYPE_V2DI_V2DI): Ditto.
177 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
178 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
179 (QI_FTYPE_V4DI_V4DI): Ditto.
180 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
181 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
182 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
183 (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
184 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
185 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
186 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
187 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
188 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
189 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
190 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
191 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
192 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
193 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
194 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
195 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
196 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
197 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
198 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
199 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
200 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
201 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
202 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
203 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
204 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
205 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
206 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
207 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
208 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
209 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
210 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
211 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
212 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
213 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
214 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
215 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
216 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
217 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
218 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
219 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
220 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
221 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
222 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
223 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
224 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
225 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
226 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
227 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
228 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
229 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
230 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
231 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
232 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
233 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
234 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
235 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
236 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
237 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
238 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
239 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
240 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
241 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
242 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
243 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
244 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
245 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
246 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
247 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
248 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
249 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
250 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
251 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
252 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
253 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
254 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
255 (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
256 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
257 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
258 (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
259 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
260 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
261 (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
262 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
263 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
264 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
265 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
266 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
267 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
268 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
269 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
270 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
271 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
272 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
273 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
274 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
275 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
276 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
277 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
278 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
279 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
280 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
281 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
282 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
283 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
284 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
285 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
286 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
287 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
288 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
289 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
290 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
291 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
292 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
293 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
294 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
295 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
296 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
297 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
298 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
299 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
300 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
301 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
302 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
303 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
304 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
305 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
306 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
307 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
308 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
309 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
310 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
311 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
312 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
313 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
314 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
315 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
316 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
317 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
318 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
319 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
320 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
321 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
322 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
323 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
324 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
325 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
326 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
327 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
328 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
329 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
330 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
331 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
332 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
333 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
334 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
335 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
336 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
337 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
338 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
339 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
340 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
341 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
342 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
343 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
344 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
345 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
346 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
347 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
348 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
349 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
350 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
351 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
352 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
353 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
354 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
355 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
356 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
357 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
358 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
359 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
360 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
361 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
362 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
363 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
364 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
365 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
366 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
367 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
368 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
369 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
370 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
371 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
372 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
373 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
374 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
375 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
376 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
377 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
378 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
379 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
380 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
381 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
382 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
383 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
384 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
385 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
386 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
387 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
388 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
389 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
390 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
391 (QI_FTYPE_V8DF_INT): Ditto.
392 (QI_FTYPE_V4DF_INT): Ditto.
393 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
394 (QI_FTYPE_V2DF_INT): Ditto.
395 (HI_FTYPE_V16SF_INT): Ditto.
396 (QI_FTYPE_V8SF_INT): Ditto.
397 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
398 (QI_FTYPE_V4SF_INT): Ditto.
399 (QI_FTYPE_V8DF_INT_QI): Ditto.
400 (QI_FTYPE_V4DF_INT_QI): Ditto.
401 (QI_FTYPE_V2DF_INT_QI): Ditto.
402 (HI_FTYPE_V16SF_INT_HI): Ditto.
403 (QI_FTYPE_V8SF_INT_QI): Ditto.
404 (QI_FTYPE_V4SF_INT_QI): Ditto.
405 (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
406 (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
407 (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
408 (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
409 (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
410 (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
411 (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
412 (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
413 (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
414 (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
415 (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
416 (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
417 (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
418 (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
419 (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
420 (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
421 (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
422 (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
423 (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
424 (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
425 (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
426 (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
427 (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
428 (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
429 (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
430 (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
431 (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
432 (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
433 (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
434 (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
435 (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
436 (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
437 (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
438 (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
439 (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
440 (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
441 (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
442 (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
443 (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
444 (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
445 (V8DI_FTYPE_V8DI_INT): Ditto.
446 (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
447 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
448 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
449 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
450 (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
451 (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
452 (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
453 (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
454 (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
455 (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
456 (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
457 (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
458 (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
459 (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
460 * config/i386/i386.c (ix86_builtins):
461 Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
462 IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
463 IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
464 IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
465 IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
466 IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
467 IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
468 IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
469 IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
470 IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
471 IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
472 IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
473 IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
474 IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
475 IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
476 IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
477 IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
478 IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
479 IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
480 IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
481 IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
482 IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
483 IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
484 IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
485 IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
486 IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
487 IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
488 IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
489 IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
490 IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
491 IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
492 IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
493 IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
494 IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
495 IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
496 IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
497 IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
498 IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
499 IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
500 IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
501 IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
502 IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
503 IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
504 IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
505 IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
506 IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
507 IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
508 IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
509 IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
510 IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
511 IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
512 IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
513 IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
514 IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
515 IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
516 IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
517 IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
518 IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
519 IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
520 IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
521 IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
522 IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
523 IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
524 IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
525 IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
526 IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
527 IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
528 IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
529 IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
530 IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
531 IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
532 IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
533 IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
534 IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
535 IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
536 IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
537 IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
538 IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
539 IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
540 IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
541 IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
542 IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
543 IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
544 IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
545 IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
546 IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
547 IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
548 IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
549 IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
550 IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
551 IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
552 IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
553 IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
554 IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
555 IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
556 IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
557 IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
558 IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
559 IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
560 IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
561 IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
562 IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
563 IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
564 IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
565 IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
566 IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
567 IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
568 IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
569 IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
570 IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
571 IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
572 IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
573 IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
574 IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
575 IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
576 IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
577 IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
578 IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
579 IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
580 IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
581 IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
582 IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
583 IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
584 IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
585 IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
586 IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
587 IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
588 IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
589 IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
590 IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
591 IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
592 IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
593 IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
594 IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
595 IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
596 IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
597 IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
598 IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
599 IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
600 IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
601 IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
602 IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
603 IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
604 IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
605 IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
606 IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
607 IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
608 IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
609 IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
610 IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
611 IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
612 IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
613 IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
614 IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
615 IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
616 IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
617 IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
618 IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
619 IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
620 IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
621 IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
622 IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
623 IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
624 IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
625 IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
626 IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
627 IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
628 IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
629 IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
630 IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
631 IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
632 IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
633 IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
634 IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
635 IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
636 IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
637 IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
638 IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
639 IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
640 IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
641 IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
642 IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
643 IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
644 IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
645 IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
646 IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
647 IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
648 IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
649 IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
650 IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
651 IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
652 IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
653 IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
654 IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
655 IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
656 IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
657 IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
658 IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
659 IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
660 IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
661 IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
662 IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
663 IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
664 IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
665 IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
666 IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
667 IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
668 IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
669 IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
670 IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
671 IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
672 IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
673 IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
674 IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
675 IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
676 IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
677 IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
678 IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
679 IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
680 IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
681 IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
682 IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
683 IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
684 IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
685 IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
686 IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
687 IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
688 IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
689 IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
690 IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
691 IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
692 IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
693 IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
694 IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
695 IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
696 IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
697 IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
698 IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
699 IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
700 IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
701 IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
702 IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
703 IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
704 IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
705 IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
706 IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
707 IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
708 IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
709 IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
710 IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
711 IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
712 IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
713 IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
714 IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
715 IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
716 IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
717 IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
718 IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
719 IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
720 IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
721 IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
722 IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
723 IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
724 IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
725 IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
726 IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
727 IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
728 IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
729 IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
730 IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
731 IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
732 IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
733 IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
734 IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
735 IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
736 IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
737 IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
738 IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
739 IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
740 IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
741 IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
742 IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
743 IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
744 IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
745 IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
746 IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
747 IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
748 IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
749 IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
750 IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
751 IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
752 IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
753 IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
754 IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
755 IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
756 IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
757 IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
758 IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
759 IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
760 IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
761 IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
762 IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
763 IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
764 IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
765 IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
766 IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
767 IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
768 IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
769 IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
770 IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
771 IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
772 IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
773 IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
774 IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
775 IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
776 IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
777 IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
778 IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
779 IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
780 IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
781 IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
782 IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
783 IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
784 IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
785 IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
786 IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
787 IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
788 IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
789 IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
790 IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
791 IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
792 IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
793 IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
794 IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
795 IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
796 IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
797 IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
798 IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
799 IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
800 IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
801 IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
802 IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
803 IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
804 IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
805 IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
806 IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
807 IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
808 IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
809 IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
810 IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
811 IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
812 IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
813 IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
814 IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
815 IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
816 IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
817 IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
818 IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
819 IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
820 IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
821 IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
822 IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
823 IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
824 IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
825 IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
826 IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
827 IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
828 IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
829 IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
830 IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
831 IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
832 IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
833 IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
834 IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
835 IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
836 IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
837 IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
838 IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
839 IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
840 IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
841 IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
842 IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
843 IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
844 IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
845 IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
846 IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
847 IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
848 IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
849 IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
850 IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
851 IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
852 IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
853 IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
854 IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
855 IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
856 IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
857 IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
858 IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
859 IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
860 IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
861 IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
862 IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
863 IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
864 IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
865 IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
866 IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
867 IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
868 IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
869 IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
870 IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
871 IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
872 IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
873 IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
874 IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
875 IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
876 IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
877 IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
878 IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
879 IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
880 IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
881 IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
882 IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
883 IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
884 IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
885 IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
886 IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
887 IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
888 IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
889 IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
890 IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
891 IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
892 IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
893 IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
894 IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
895 IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
896 IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
897 IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
898 IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
899 IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
900 IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
901 IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
902 IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
903 IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
904 IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
905 IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
906 IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
907 IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
908 IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
909 IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
910 IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
911 IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
912 IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
913 IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
914 IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
915 IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
916 IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
917 IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
918 IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
919 IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
920 IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
921 IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
922 IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
923 IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
924 IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
925 IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
926 IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
927 IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
928 IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
929 IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
930 IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
931 IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
932 IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
933 IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
934 IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
935 IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
936 IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
937 IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
938 IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
939 IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
940 IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
941 IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
942 IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
943 IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
944 IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
945 IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
946 IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
947 IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
948 IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
949 IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
950 IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
951 IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
952 (bdesc_special_args):
953 Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
954 __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
955 __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
956 __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
957 __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
958 __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
959 __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
960 __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
961 __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
962 __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
963 __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
964 __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
965 __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
966 __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
967 __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
968 __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
969 __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
970 __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
971 __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
972 __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
973 __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
974 __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
975 __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
976 __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
977 __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
978 __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
979 __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
980 __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
981 __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
982 __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
983 __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
984 __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
985 __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
986 __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
987 __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
988 __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
989 __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
990 __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
991 __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
992 __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
993 __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
994 __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
995 __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
996 __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
997 __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
998 __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
999 __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
1000 __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
1001 __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
1002 __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
1003 __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
1004 __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
1005 __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
1006 __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
1007 __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
1008 __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
1009 __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
1010 __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
1011 __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
1012 __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
1013 __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
1014 __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
1015 __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
1016 __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
1017 __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
1018 __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
1019 __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
1020 __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
1021 __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
1022 __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
1023 __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
1024 __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
1025 __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
1026 __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
1027 __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
1028 __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
1029 __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
1030 __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
1031 __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
1032 __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
1033 __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
1034 __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
1035 __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
1036 __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
1037 __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
1038 __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
1039 __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
1040 __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
1041 __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
1042 __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
1043 __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
1044 __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
1045 __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
1046 __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
1047 __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
1048 __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
1049 __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
1050 __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
1051 __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
1052 __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
1053 __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
1054 __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
1055 __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
1056 __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
1057 __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
1058 __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
1059 __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
1060 __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
1061 __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
1062 __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
1063 __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
1064 __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
1065 __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
1066 __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
1067 __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
1068 __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
1069 __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
1070 __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
1071 __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
1072 __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
1073 __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
1074 __builtin_ia32_reducesd, __builtin_ia32_reducess,
1075 __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
1076 __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
1077 __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
1078 __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
1079 __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
1080 __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
1081 __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
1082 __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
1083 __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
1084 __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
1085 __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
1086 __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
1087 __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
1088 __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
1089 __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
1090 __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
1091 __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
1092 __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
1093 __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
1094 __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
1095 __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
1096 __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
1097 __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
1098 __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
1099 __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
1100 __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
1101 __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
1102 __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
1103 __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
1104 __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
1105 __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
1106 __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
1107 __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
1108 __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
1109 __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
1110 __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
1111 __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
1112 __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
1113 __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
1114 __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
1115 __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
1116 __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
1117 __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
1118 __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
1119 __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
1120 __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
1121 __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
1122 __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
1123 __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
1124 __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
1125 __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
1126 __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
1127 __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
1128 __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
1129 __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
1130 __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
1131 __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
1132 __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
1133 __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
1134 __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
1135 __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
1136 __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
1137 __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
1138 __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
1139 __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
1140 __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
1141 __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
1142 __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
1143 __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
1144 __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
1145 __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
1146 __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
1147 __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
1148 __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
1149 __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
1150 __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
1151 __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
1152 __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
1153 __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
1154 __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
1155 __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
1156 __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
1157 __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
1158 __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
1159 __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
1160 __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
1161 __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
1162 __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
1163 __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
1164 __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
1165 __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
1166 __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
1167 __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
1168 __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
1169 __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
1170 __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
1171 __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
1172 __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
1173 __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
1174 __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
1175 __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
1176 __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
1177 __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
1178 __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
1179 __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
1180 __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
1181 __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
1182 __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
1183 __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
1184 __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
1185 __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
1186 __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
1187 __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
1188 __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
1189 __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
1190 __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
1191 __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
1192 __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
1193 __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
1194 __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
1195 __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
1196 __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
1197 __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
1198 __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
1199 __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
1200 __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
1201 __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
1202 __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
1203 __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
1204 __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
1205 __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
1206 __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
1207 __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
1208 __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
1209 __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
1210 __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
1211 __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
1212 __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
1213 __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
1214 __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
1215 __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
1216 __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
1217 __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
1218 __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
1219 __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
1220 __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
1221 __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
1222 __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
1223 __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
1224 __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
1225 __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
1226 __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
1227 __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
1228 __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
1229 __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
1230 __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
1231 __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
1232 __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
1233 __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
1234 __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
1235 __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
1236 __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
1237 __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
1238 __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
1239 __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
1240 __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
1241 __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
1242 __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
1243 __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
1244 __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
1245 __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
1246 __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
1247 __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
1248 __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
1249 __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
1250 __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
1251 __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
1252 __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
1253 __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
1254 __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
1255 __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
1256 __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
1257 __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
1258 __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
1259 __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
1260 __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
1261 __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
1262 __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
1263 __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
1264 __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
1265 __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
1266 __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
1267 __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
1268 __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
1269 __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
1270 __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
1271 __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
1272 __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
1273 __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
1274 __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
1275 __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
1276 __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
1277 __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
1278 __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
1279 __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
1280 __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
1281 __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
1282 __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
1283 __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
1284 __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
1285 __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
1286 __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
1287 __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
1288 __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
1289 __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
1290 __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
1291 __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
1292 __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
1293 __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
1294 __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
1295 __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
1296 __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
1297 __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
1298 __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
1299 __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
1300 __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
1301 __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
1302 __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
1303 __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
1304 __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
1305 __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
1306 __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
1307 __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
1308 __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
1309 __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
1310 __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
1311 __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
1312 __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
1313 __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
1314 __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
1315 __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
1316 __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
1317 __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
1318 __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
1319 __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
1320 __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
1321 __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
1322 __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
1323 __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
1324 __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
1325 __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
1326 __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
1327 __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
1328 __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
1329 __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
1330 __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
1331 __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
1332 __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
1333 __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
1334 __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
1335 __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
1336 __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
1337 __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
1338 __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
1339 __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
1340 __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
1341 __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
1342 __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
1343 __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
1344 __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
1345 __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
1346 __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
1347 __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
1348 __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
1349 __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
1350 __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
1351 __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
1352 __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
1353 __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
1354 __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
1355 __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
1356 __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
1357 __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
1358 __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
1359 __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
1360 __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
1361 __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
1362 __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
1363 __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
1364 __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
1365 __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
1366 __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
1367 __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
1368 __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
1369 __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
1370 __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
1371 __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
1372 __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
1373 __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
1374 __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
1375 __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
1376 __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
1377 __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
1378 __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
1379 __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
1380 __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
1381 __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
1382 __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
1383 __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
1384 __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
1385 __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
1386 __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
1387 __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
1388 __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
1389 __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
1390 __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
1391 __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
1392 __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
1393 __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
1394 __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
1395 __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
1396 __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
1397 __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
1398 __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
1399 __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
1400 __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
1401 __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
1402 __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
1403 __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
1404 __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
1405 __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
1406 __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
1407 __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
1408 __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
1409 __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
1410 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
1411 __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
1412 __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
1413 __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
1414 __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
1415 __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
1416 __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
1417 __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
1418 __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
1419 __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
1420 __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
1421 __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
1422 __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
1423 __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
1424 __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
1425 __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
1426 __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
1427 __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
1428 __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
1429 __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
1430 (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
1431 DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
1432 V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
1433 V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
1434 HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
1435 HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
1436 V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
1437 SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
1438 QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
1439 V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
1440 V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
1441 V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
1442 V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
1443 V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
1444 V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
1445 V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
1446 V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
1447 V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
1448 V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
1449 V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
1450 V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
1451 V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
1452 V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
1453 V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
1454 V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
1455 V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
1456 V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
1457 V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
1458 V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
1459 V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
1460 V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
1461 V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
1462 V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
1463 V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
1464 HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
1465 DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
1466 HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
1467 QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
1468 QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
1469 V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
1470 V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
1471 V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
1472 V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
1473 V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
1474 V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
1475 V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
1476 V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
1477 V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
1478 V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
1479 V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
1480 V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
1481 V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
1482 V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
1483 V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
1484 V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
1485 V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
1486 V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
1487 V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
1488 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
1489 QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
1490 HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
1491 QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
1492 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
1493 V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
1494 V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
1495 V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
1496 V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
1497 V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
1498 V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
1499 V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
1500 V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
1501 V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
1502 V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
1503 V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
1504 V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
1505 V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
1506 V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
1507 V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
1508 V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
1509 V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
1510 V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
1511 V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
1512 QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
1513 QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
1514 QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
1515 SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
1516 SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
1517 QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
1518 V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
1519 V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
1520 V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
1521 V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
1522 V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
1523 V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
1524 V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
1525 V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
1526 V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
1527 V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
1528 V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
1529 V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
1530 V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
1531 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
1532 V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
1533 V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
1534 V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
1535 V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
1536 V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
1537 V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
1538 V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
1539 V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
1540 V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
1541 V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
1542 V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
1543 VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
1544 VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
1545 VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
1546 VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
1547 VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
1548 VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
1549 VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
1550 VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
1551 VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
1552 VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
1553 VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
1554 VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
1555 V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
1556 V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
1557 V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
1558 V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
1559 V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
1560 V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
1561 V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
1563 2014-10-28 Jakub Jelinek <jakub@redhat.com>
1565 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
1566 type for the left shift in CASE_CONVERT case.
1568 2014-10-28 Max Ostapenko <m.ostapenko@partner.samsung.com>
1570 * asan.h (asan_intercepted_p): New function.
1571 * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
1572 hash value construction. Call iterative_hash_expr instead of explicit
1574 (asan_mem_ref_hasher::equal): Change condition.
1575 (has_mem_ref_been_instrumented): Likewise.
1576 (update_mem_ref_hash_table): Likewise.
1577 (maybe_update_mem_ref_hash_table): New function.
1578 (instrument_strlen_call): Removed.
1579 (get_mem_refs_of_builtin_call): Handle new parameter.
1580 (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
1581 of instrument_mem_region_access if intercepted_p is true.
1582 (instrument_mem_region_access): Instrument only base with len instead of
1583 base and end with 1.
1584 (build_check_stmt): Remove start_instrumented and end_instrumented
1586 (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
1587 ASAN_CHECK_END_INSTRUMENTED. Change ASAN_CHECK_LAST.
1588 (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
1589 * builtins.c (expand_builtin): Include asan.h. Don't expand string/memory
1590 builtin functions that have interceptors if ASan is enabled.
1592 2014-10-28 Richard Biener <rguenther@suse.de>
1595 * fold-const.c (fold_comparison): Properly guard simplifying
1596 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
1598 2014-10-28 Alan Lawrence <alan.lawrence@arm.com>
1600 * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
1601 * fold-const.c (const_binop): Likewise.
1602 * cfgexpand.c (expand_debug_expr): Likewise.
1603 * tree-inline.c (estimate_operator_cost): Likewise.
1604 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1605 * optabs.c (optab_for_tree_code): Likewise.
1606 (expand_vec_shift_expr): Likewise, update comment.
1607 * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
1608 * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
1609 * optabs.def: Remove vec_shl_optab.
1610 * doc/md.texi: Remove references to vec_shr_m.
1612 2014-10-28 Yury Gribov <y.gribov@samsung.com>
1614 * asan.c (report_error_func): Add noabort path.
1615 (check_func): Ditto. Formatting.
1616 (asan_expand_check_ifn): Handle noabort path.
1617 * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
1619 * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
1620 * opts.c (finish_options): Reword comment.
1621 * sanitizer.def: Add noabort ASan builtins.
1623 2014-10-28 Yury Gribov <y.gribov@samsung.com>
1625 * asan.c (set_asan_shadow_offset): New function.
1626 (asan_shadow_offset): Likewise.
1627 (asan_emit_stack_protection): Call asan_shadow_offset.
1628 (build_shadow_mem_access): Likewise.
1629 * asan.h (set_asan_shadow_offset): Declare.
1630 * common.opt (fasan-shadow-offset): New option.
1631 (frandom-seed): Fixed parameter name.
1632 * doc/invoke.texi (fasan-shadow-offset): Describe new option.
1633 (frandom-seed): Fixed parameter name.
1634 * opts-global.c (handle_common_deferred_options): Handle
1635 -fasan-shadow-offset.
1636 * opts.c (common_handle_option): Likewise.
1638 2014-10-27 Jiong Wang <jiong.wang@arm.com>
1641 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
1643 2014-10-27 DJ Delorie <dj@redhat.com>
1645 * tree.c (build_common_tree_nodes): Don't even store the
1646 __int128 types if they're not supported.
1648 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1650 * config/i386/i386.c (ix86_loop_memcount): Delete.
1651 (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
1653 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1655 * config/i386/i386.c (find_constant_1): Delete.
1656 (find_constant): Use FOR_EACH_SUBRTX.
1658 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1660 * config/i386/i386.c (extended_reg_mentioned_1): Delete.
1661 (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
1663 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1665 * config/i386/i386.c: Include rtl-iter.h
1666 (ix86_check_avx256_register): Take a const_rtx and return a bool.
1667 (ix86_check_avx256_stores): Update call accordingly.
1668 (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
1669 (ix86_avx_u128_mode_needed): Likewise. Use FOR_EACH_SUBRTX.
1671 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1673 * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
1674 Take an rtx and return a bool.
1675 * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
1676 Use FOR_EACH_SUBRTX_VAR.
1677 * config/alpha/predicates.md (some_small_symbolic_operand): Update
1680 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1682 * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
1684 * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
1685 (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX. Return a bool.
1687 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1689 * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
1690 (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
1692 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1694 * config/alpha/alpha.c: Include rtl-iter.h.
1695 (split_small_symbolic_operand_1): Delete.
1696 (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
1698 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1700 * config/s390/s390.c: Include rtl-iter.h.
1701 (check_dpu): Delete.
1702 (s390_loop_unroll_adjust): Only iterate over patterns.
1703 Use FOR_EACH_SUBRTX.
1705 2014-10-27 Richard Sandiford <richard.sandiford@arm.com>
1707 * config/spu/spu.c: Include rtl-iter.h
1708 (ea_symbol_ref): Replace with...
1709 (ea_symbol_ref_p): ...this new function.
1710 (spu_legitimate_address_p): Update call accordingly.
1711 (spu_legitimate_constant_p): Likewise. Use FOR_EACH_SUBRTX.
1713 2014-10-27 Phil Muldoon <pmuldoon@redhat.com>
1714 Tom Tromey <tromey@redhat.com>
1716 * aclocal.m4, configure: Rebuild.
1717 * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
1718 * configure.ac: Use GCC_ENABLE_PLUGINS.
1719 * stor-layout.c (finish_bitfield_layout): Now public. Change
1720 argument type to 'tree'.
1721 (finish_record_layout): Update.
1722 * stor-layout.h (finish_bitfield_layout): Declare.
1724 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
1726 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
1727 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1728 Restore, enable for bigendian, update to use __builtin..._scal...
1730 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
1732 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
1733 reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
1734 (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
1735 reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
1737 * config/aarch64/aarch64-simd.md
1738 (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
1739 (reduc_<maxmin_uns>_internal<mode>): ...this.
1740 (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
1741 (reduc_<maxmin_uns>_scal_<mode>): New (*2).
1743 (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
1744 (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
1745 (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
1747 * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
1748 vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
1749 vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
1750 vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
1751 vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
1752 vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
1753 vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
1754 __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
1756 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
1758 * config/aarch64/aarch64-simd-builtins.def
1759 (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
1761 (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
1763 * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
1764 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
1766 (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
1767 (aarch64_reduc_plus_internal<mode>): ...this.
1769 (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
1770 (aarch64_reduc_plus_internalv2si): ...this.
1772 (reduc_splus_<mode>/V2F): Rename to...
1773 (aarch64_reduc_plus_internal<mode>): ...this.
1775 * config/aarch64/iterators.md
1776 (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
1778 (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
1780 * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
1781 vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
1782 vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
1783 vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
1784 __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
1786 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
1788 PR tree-optimization/61114
1789 * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
1790 optabs, and note in reduc_[us](plus|min|max) to prefer the former.
1792 * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
1793 back to old reduc_... + BIT_FIELD_REF only if not.
1795 * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
1796 return the reduce-to-scalar (reduc_..._scal) optab.
1797 (scalar_reduc_to_vector): New.
1799 * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
1800 reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
1803 * optabs.h (scalar_reduc_to_vector): Declare.
1805 * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
1806 to either scalar or vector.
1808 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
1810 PR tree-optimization/61114
1811 * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
1812 extract_bit_field around optab result.
1814 * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
1817 * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
1818 for REDUC_{MIN,MAX,PLUS}_EXPR.
1820 * tree-vect-loop.c (vect_analyze_loop): Update comment.
1821 (vect_create_epilog_for_reduction): For direct vector reduction, use
1822 result of tree code directly without extract_bit_field.
1824 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
1827 2014-10-27 Andrew MacLeod <amacleod@redhat.com>
1829 * basic-block.h: Remove all includes.
1830 (enum profile_status_d, struct control_flow_graph): Move to cfg.h
1831 * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
1832 * Makefile.in (GTFILES): Add cfg.h to list.
1833 * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
1834 * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
1835 * genconditions.c (write_header): Add predict.h and basic-block.h to
1837 * genemit.c (main): Ditto.
1838 * genpreds.c (write_insn_preds_c): Ditto.
1839 * genrecog.c (write_header): Ditto.
1840 * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
1841 to list of includes.
1842 * alias.c: Adjust include files.
1844 * auto-inc-dec.c: Ditto.
1845 * auto-profile.c: Ditto.
1846 * bb-reorder.c: Ditto.
1848 * builtins.c: Ditto.
1849 * caller-save.c: Ditto.
1853 * cfgbuild.c: Ditto.
1854 * cfgcleanup.c: Ditto.
1855 * cfgexpand.c: Ditto.
1856 * cfghooks.c: Ditto.
1858 * cfgloopanal.c: Ditto.
1859 * cfgloopmanip.c: Ditto.
1861 * cgraphbuild.c: Ditto.
1862 * cgraphclones.c: Ditto.
1863 * cgraphunit.c: Ditto.
1864 * combine-stack-adj.c: Ditto.
1866 * compare-elim.c: Ditto.
1867 * coverage.c: Ditto.
1871 * data-streamer-in.c: Ditto.
1872 * data-streamer-out.c: Ditto.
1873 * data-streamer.c: Ditto.
1878 * df-problems.c: Ditto.
1882 * dominance.c: Ditto.
1885 * dwarf2cfi.c: Ditto.
1886 * emit-rtl.c: Ditto.
1887 * et-forest.c: Ditto.
1892 * fold-const.c: Ditto.
1893 * function.c: Ditto.
1895 * gcc-plugin.h: Ditto.
1897 * generic-match-head.c: Ditto.
1898 * ggc-page.c: Ditto.
1899 * gimple-builder.c: Ditto.
1900 * gimple-expr.c: Ditto.
1901 * gimple-fold.c: Ditto.
1902 * gimple-iterator.c: Ditto.
1903 * gimple-low.c: Ditto.
1904 * gimple-match-head.c: Ditto.
1905 * gimple-pretty-print.c: Ditto.
1906 * gimple-ssa-isolate-paths.c: Ditto.
1907 * gimple-ssa-strength-reduction.c: Ditto.
1908 * gimple-streamer-in.c: Ditto.
1909 * gimple-streamer-out.c: Ditto.
1910 * gimple-streamer.h: Ditto.
1911 * gimple-walk.c: Ditto.
1913 * gimplify-me.c: Ditto.
1914 * gimplify.c: Ditto.
1916 * graphite-blocking.c: Ditto.
1917 * graphite-clast-to-gimple.c: Ditto.
1918 * graphite-dependences.c: Ditto.
1919 * graphite-interchange.c: Ditto.
1920 * graphite-isl-ast-to-gimple.c: Ditto.
1921 * graphite-optimize-isl.c: Ditto.
1922 * graphite-poly.c: Ditto.
1923 * graphite-scop-detection.c: Ditto.
1924 * graphite-sese-to-poly.c: Ditto.
1925 * graphite.c: Ditto.
1926 * haifa-sched.c: Ditto.
1927 * hw-doloop.c: Ditto.
1929 * init-regs.c: Ditto.
1930 * internal-fn.c: Ditto.
1932 * ipa-devirt.c: Ditto.
1933 * ipa-icf-gimple.c: Ditto.
1935 * ipa-inline-analysis.c: Ditto.
1936 * ipa-inline.c: Ditto.
1937 * ipa-polymorphic-call.c: Ditto.
1938 * ipa-profile.c: Ditto.
1939 * ipa-prop.c: Ditto.
1940 * ipa-pure-const.c: Ditto.
1941 * ipa-reference.c: Ditto.
1942 * ipa-split.c: Ditto.
1943 * ipa-utils.c: Ditto.
1945 * ira-build.c: Ditto.
1946 * ira-color.c: Ditto.
1947 * ira-conflicts.c: Ditto.
1948 * ira-costs.c: Ditto.
1949 * ira-emit.c: Ditto.
1950 * ira-lives.c: Ditto.
1954 * loop-doloop.c: Ditto.
1955 * loop-init.c: Ditto.
1956 * loop-invariant.c: Ditto.
1958 * loop-unroll.c: Ditto.
1959 * lower-subreg.c: Ditto.
1960 * lra-assigns.c: Ditto.
1961 * lra-coalesce.c: Ditto.
1962 * lra-constraints.c: Ditto.
1963 * lra-eliminations.c: Ditto.
1964 * lra-lives.c: Ditto.
1965 * lra-spills.c: Ditto.
1967 * lto-cgraph.c: Ditto.
1968 * lto-compress.c: Ditto.
1969 * lto-opts.c: Ditto.
1970 * lto-section-in.c: Ditto.
1971 * lto-section-out.c: Ditto.
1972 * lto-streamer-in.c: Ditto.
1973 * lto-streamer-out.c: Ditto.
1974 * lto-streamer.c: Ditto.
1976 * mode-switching.c: Ditto.
1977 * modulo-sched.c: Ditto.
1980 * opts-global.c: Ditto.
1982 * postreload-gcse.c: Ditto.
1983 * postreload.c: Ditto.
1985 * print-rtl.c: Ditto.
1989 * reg-stack.c: Ditto.
1990 * regcprop.c: Ditto.
1991 * regcprop.h: Ditto.
1993 * regrename.c: Ditto.
1998 * resource.c: Ditto.
2000 * sched-deps.c: Ditto.
2001 * sched-ebb.c: Ditto.
2002 * sched-int.h: Ditto.
2003 * sched-rgn.c: Ditto.
2004 * sched-vis.c: Ditto.
2005 * sel-sched-dump.c: Ditto.
2006 * sel-sched-ir.c: Ditto.
2007 * sel-sched-ir.h: Ditto.
2008 * sel-sched.c: Ditto.
2010 * shrink-wrap.c: Ditto.
2011 * stack-ptr-mod.c: Ditto.
2013 * store-motion.c: Ditto.
2017 * trans-mem.c: Ditto.
2018 * tree-affine.c: Ditto.
2019 * tree-call-cdce.c: Ditto.
2020 * tree-cfg.c: Ditto.
2021 * tree-cfgcleanup.c: Ditto.
2022 * tree-chrec.c: Ditto.
2023 * tree-complex.c: Ditto.
2024 * tree-data-ref.c: Ditto.
2025 * tree-dfa.c: Ditto.
2027 * tree-emutls.c: Ditto.
2028 * tree-if-conv.c: Ditto.
2029 * tree-inline.c: Ditto.
2030 * tree-into-ssa.c: Ditto.
2031 * tree-loop-distribution.c: Ditto.
2032 * tree-nested.c: Ditto.
2033 * tree-nrv.c: Ditto.
2034 * tree-object-size.c: Ditto.
2035 * tree-outof-ssa.c: Ditto.
2036 * tree-parloops.c: Ditto.
2037 * tree-phinodes.c: Ditto.
2038 * tree-predcom.c: Ditto.
2039 * tree-pretty-print.c: Ditto.
2040 * tree-profile.c: Ditto.
2041 * tree-scalar-evolution.c: Ditto.
2042 * tree-sra.c: Ditto.
2043 * tree-ssa-address.c: Ditto.
2044 * tree-ssa-alias.c: Ditto.
2045 * tree-ssa-ccp.c: Ditto.
2046 * tree-ssa-coalesce.c: Ditto.
2047 * tree-ssa-copy.c: Ditto.
2048 * tree-ssa-copyrename.c: Ditto.
2049 * tree-ssa-dce.c: Ditto.
2050 * tree-ssa-dom.c: Ditto.
2051 * tree-ssa-dse.c: Ditto.
2052 * tree-ssa-forwprop.c: Ditto.
2053 * tree-ssa-ifcombine.c: Ditto.
2054 * tree-ssa-live.c: Ditto.
2055 * tree-ssa-loop-ch.c: Ditto.
2056 * tree-ssa-loop-im.c: Ditto.
2057 * tree-ssa-loop-ivcanon.c: Ditto.
2058 * tree-ssa-loop-ivopts.c: Ditto.
2059 * tree-ssa-loop-manip.c: Ditto.
2060 * tree-ssa-loop-niter.c: Ditto.
2061 * tree-ssa-loop-prefetch.c: Ditto.
2062 * tree-ssa-loop-unswitch.c: Ditto.
2063 * tree-ssa-loop.c: Ditto.
2064 * tree-ssa-math-opts.c: Ditto.
2065 * tree-ssa-operands.c: Ditto.
2066 * tree-ssa-phiopt.c: Ditto.
2067 * tree-ssa-phiprop.c: Ditto.
2068 * tree-ssa-pre.c: Ditto.
2069 * tree-ssa-propagate.c: Ditto.
2070 * tree-ssa-reassoc.c: Ditto.
2071 * tree-ssa-sccvn.c: Ditto.
2072 * tree-ssa-sink.c: Ditto.
2073 * tree-ssa-strlen.c: Ditto.
2074 * tree-ssa-structalias.c: Ditto.
2075 * tree-ssa-tail-merge.c: Ditto.
2076 * tree-ssa-ter.c: Ditto.
2077 * tree-ssa-threadedge.c: Ditto.
2078 * tree-ssa-threadupdate.c: Ditto.
2079 * tree-ssa-uncprop.c: Ditto.
2080 * tree-ssa-uninit.c: Ditto.
2081 * tree-ssa.c: Ditto.
2082 * tree-ssanames.c: Ditto.
2083 * tree-stdarg.c: Ditto.
2084 * tree-streamer-in.c: Ditto.
2085 * tree-streamer-out.c: Ditto.
2086 * tree-streamer.c: Ditto.
2087 * tree-switch-conversion.c: Ditto.
2088 * tree-tailcall.c: Ditto.
2089 * tree-vect-data-refs.c: Ditto.
2090 * tree-vect-generic.c: Ditto.
2091 * tree-vect-loop-manip.c: Ditto.
2092 * tree-vect-loop.c: Ditto.
2093 * tree-vect-patterns.c: Ditto.
2094 * tree-vect-slp.c: Ditto.
2095 * tree-vect-stmts.c: Ditto.
2096 * tree-vectorizer.c: Ditto.
2097 * tree-vrp.c: Ditto.
2101 * valtrack.c: Ditto.
2102 * valtrack.h: Ditto.
2103 * value-prof.c: Ditto.
2104 * var-tracking.c: Ditto.
2107 * vtable-verify.c: Ditto.
2109 * config/aarch64/aarch64-builtins.c: Ditto.
2110 * config/aarch64/aarch64.c: Ditto.
2111 * config/alpha/alpha.c: Ditto.
2112 * config/arc/arc.c: Ditto.
2113 * config/arm/arm.c: Ditto.
2114 * config/avr/avr.c: Ditto.
2115 * config/bfin/bfin.c: Ditto.
2116 * config/c6x/c6x.c: Ditto.
2117 * config/cr16/cr16.c: Ditto.
2118 * config/cris/cris.c: Ditto.
2119 * config/darwin-c.c: Ditto.
2120 * config/darwin.c: Ditto.
2121 * config/epiphany/epiphany.c: Ditto.
2122 * config/epiphany/mode-switch-use.c: Ditto.
2123 * config/epiphany/resolve-sw-modes.c: Ditto.
2124 * config/fr30/fr30.c: Ditto.
2125 * config/frv/frv.c: Ditto.
2126 * config/h8300/h8300.c: Ditto.
2127 * config/i386/i386.c: Ditto.
2128 * config/i386/winnt.c: Ditto.
2129 * config/ia64/ia64.c: Ditto.
2130 * config/iq2000/iq2000.c: Ditto.
2131 * config/lm32/lm32.c: Ditto.
2132 * config/m32c/m32c.c: Ditto.
2133 * config/m32r/m32r.c: Ditto.
2134 * config/m68k/m68k.c: Ditto.
2135 * config/mcore/mcore.c: Ditto.
2136 * config/mep/mep.c: Ditto.
2137 * config/microblaze/microblaze.c: Ditto.
2138 * config/mips/mips.c: Ditto.
2139 * config/mmix/mmix.c: Ditto.
2140 * config/mn10300/mn10300.c: Ditto.
2141 * config/moxie/moxie.c: Ditto.
2142 * config/msp430/msp430.c: Ditto.
2143 * config/nds32/nds32-cost.c: Ditto.
2144 * config/nds32/nds32-fp-as-gp.c: Ditto.
2145 * config/nds32/nds32-intrinsic.c: Ditto.
2146 * config/nds32/nds32-isr.c: Ditto.
2147 * config/nds32/nds32-md-auxiliary.c: Ditto.
2148 * config/nds32/nds32-memory-manipulation.c: Ditto.
2149 * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
2150 * config/nds32/nds32-predicates.c: Ditto.
2151 * config/nds32/nds32.c: Ditto.
2152 * config/nios2/nios2.c: Ditto.
2153 * config/pa/pa.c: Ditto.
2154 * config/pdp11/pdp11.c: Ditto.
2155 * config/rl78/rl78.c: Ditto.
2156 * config/rs6000/rs6000.c: Ditto.
2157 * config/rx/rx.c: Ditto.
2158 * config/s390/s390.c: Ditto.
2159 * config/sh/sh-mem.cc: Ditto.
2160 * config/sh/sh.c: Ditto.
2161 * config/sh/sh_optimize_sett_clrt.cc: Ditto.
2162 * config/sh/sh_treg_combine.cc: Ditto.
2163 * config/sparc/sparc.c: Ditto.
2164 * config/spu/spu.c: Ditto.
2165 * config/stormy16/stormy16.c: Ditto.
2166 * config/tilegx/tilegx.c: Ditto.
2167 * config/tilepro/tilepro.c: Ditto.
2168 * config/v850/v850.c: Ditto.
2169 * config/vax/vax.c: Ditto.
2170 * config/xtensa/xtensa.c: Ditto.
2172 2014-10-27 Alan Lawrence <alan.lawrence@arm.com>
2174 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
2175 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
2176 Remove using preprocessor directives.
2178 2014-10-27 Richard Biener <rguenther@suse.de>
2180 * match.pd (0 % X): Properly use the iterator iterating over
2181 all modulo operators.
2184 2014-10-27 Richard Biener <rguenther@suse.de>
2186 * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
2187 (lattice): New global.
2188 (fwprop_ssa_val): New function.
2189 (fold_all_stmts): Likewise.
2190 (pass_forwprop::execute): Finally fold all stmts.
2192 2014-10-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
2195 * doc/invoke.texi (fmessage-length): Update text to match reality.
2197 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2199 * config/microblaze/microblaze.c: Include rtl-iter.h.
2200 (microblaze_tls_referenced_p_1): Delete.
2201 (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
2203 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2205 * config/mips/mips.c (mips_at_reg_p): Delete.
2206 (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
2208 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2210 * config/mips/mips.c (mips_record_lo_sum): Replace with...
2211 (mips_record_lo_sums): ...this new function.
2212 (mips_reorg_process_insns): Update accordingly.
2214 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2216 * config/mips/mips.c (mips_sim_insn): Update comment.
2217 (mips_sim_wait_regs_2): Delete.
2218 (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
2220 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2222 * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
2223 and return a bool. Iterate over all subrtxes here.
2224 (r10k_needs_protection_p): Update accordingly.
2226 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2228 * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
2229 rather than an rtx pointer. Change type of insn from "void *"
2230 to its real type. Return bool rather than int. Iterate over
2232 (r10k_needs_protection_p_store): Update accordingly.
2233 (r10k_needs_protection_p): Likewise.
2235 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2237 * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
2238 (mips16_rewrite_pool_refs): Take the insn and constant pool as
2239 parameters. Iterate over the instruction's pattern and return void.
2240 (mips16_lay_out_constants): Update accordingly.
2242 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2244 * config/mips/mips.c (mips_kernel_reg_p): Replace with...
2245 (mips_refers_to_kernel_reg_p): ...this new function.
2246 (mips_expand_prologue): Update accordingly.
2248 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2250 * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
2251 as a parameter instead of the containing MEM. Iterate over all
2252 subrtxes. Don't return a value.
2253 (mips_rewrite_small_data): Update call accordingly.
2255 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2257 * config/mips/mips.c: Include rtl-iter.h.
2258 (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
2259 Take the context as a parameter instead of the containing MEM.
2260 Iterate over all subrtxes.
2261 (mips_small_data_pattern_p): Update call accordingly.
2263 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2265 * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
2266 (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
2268 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2270 * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
2271 return a bool. Replace "void *" with specific type. Iterate
2273 (mep_store_data_bypass_1): Update calls accordingly.
2275 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2277 * config/mep/mep.c: Include rtl-iter.h.
2278 (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
2279 (xtensa_tls_referenced_p): Return a bool. Use FOR_EACH_SUBRTX.
2281 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2283 * config/xtensa/xtensa.c: Include rtl-iter.h.
2284 (xtensa_tls_referenced_p_1): Delete.
2285 (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
2287 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2289 * config/sh/sh.c (sh_contains_memref_p_1): Delete.
2290 (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
2292 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2294 * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
2295 rtx as argument and return the number of changes.
2296 * config/sh/sh.c: Include rtl-iter.h.
2297 (shmedia_cleanup_truncate): Take an rtx as argument and iterate
2298 over all subrtxes. Return the number of changes made.
2299 * config/sh/sh.md: Update caller accordingly.
2301 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2303 * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
2304 (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
2306 2014-10-26 Richard Sandiford <richard.sandiford@arm.com>
2308 * config/m68k/m68k.c: Include rtl-iter.h.
2309 (m68k_final_prescan_insn_1): Delete.
2310 (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
2312 2014-10-25 Jakub Jelinek <jakub@redhat.com>
2314 PR tree-optimization/63641
2315 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
2316 to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
2318 2014-10-25 Alan Modra <amodra@gmail.com>
2320 PR rtl-optimization/63615
2321 * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
2322 decomposing PLUS or MINUS if operands are not placed adjacent
2325 2014-10-25 Joseph Myers <joseph@codesourcery.com>
2327 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
2328 not allow e500 double in registers not satisyfing
2331 2014-10-24 Aldy Hernandez <aldyh@redhat.com>
2333 * dwarf2out.c (declare_in_namespace): Only emit external
2334 declarations in the local scope once.
2336 2014-10-24 Jonathan Wakely <jwakely@redhat.com>
2338 * ginclude/stdbool.h: Do not define bool, true or false in C++11.
2340 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
2342 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
2343 update uses to use new macro arguments.
2344 (__LD3_LANE_FUNC): Likewise.
2345 (__LD4_LANE_FUNC): Likewise.
2347 2014-10-24 Charles Baylis <charles.baylis@linaro.org>
2349 * config/aarch64/aarch64-builtins.c
2350 (aarch64_types_loadstruct_lane_qualifiers): Define.
2351 * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
2352 ld4_lane): New builtins.
2353 * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
2355 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
2356 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
2357 (aarch64_ld2_lane<mode>): New expand.
2358 (aarch64_ld3_lane<mode>): Likewise.
2359 (aarch64_ld4_lane<mode>): Likewise.
2360 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
2361 UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
2363 2014-10-24 Georg-Johann Lay <avr@gjlay.de>
2365 * avr-protos.h (avr_out_sign_extend): New.
2366 * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
2367 (avr_out_sign_extend): New function.
2368 * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
2369 (extendhisi2, extendpsisi2): Use it.
2370 (adjust_len) [sext]: New.
2372 2014-10-24 Martin Liska <mliska@suse.cz>
2374 * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
2377 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2379 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
2380 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2381 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
2382 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
2384 2014-10-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2386 * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
2388 * config/aarch64/aarch64.c (is_mem_p): Delete.
2389 (is_memory_op): Rename to...
2390 (has_memory_op): ... This. Use FOR_EACH_SUBRTX.
2391 (dep_between_memop_and_curr): Assert that the input is a SET.
2392 (aarch64_madd_needs_nop): Add comment. Do not call
2393 dep_between_memop_and_curr on NULL body.
2394 (aarch64_final_prescan_insn): Add comment.
2397 2014-10-24 Richard Biener <rguenther@suse.de>
2399 * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
2400 to genmatch BUILD_LIBS instead.
2402 2014-10-24 Richard Biener <rguenther@suse.de>
2404 * genmatch.c (expr::gen_transform): Use fold_buildN_loc
2405 and build_call_expr_loc.
2406 (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
2407 non_lvalue_loc to build it for GENERIC.
2408 (decision_tree::gen_generic): Add location argument to
2409 generic_simplify prototype.
2410 (capture_info): New class.
2411 (capture_info::capture_info): New constructor.
2412 (capture_info::walk_match): New method.
2413 (capture_info::walk_result): New method.
2414 (capture_info::walk_c_expr): New method.
2415 (dt_simplify::gen): Handle preserving side-effects for
2416 GENERIC code generation.
2417 (decision_tree::gen_generic): Do not reject operands
2418 with TREE_SIDE_EFFECTS.
2419 * generic-match.h: New file.
2420 * generic-match-head.c: Include generic-match.h, not gimple-match.h.
2421 * match.pd: Add some constant folding patterns from fold-const.c.
2422 * fold-const.c: Include generic-match.h.
2423 (fold_unary_loc): Dispatch to generic_simplify.
2424 (fold_ternary_loc): Likewise.
2425 (fold_binary_loc): Likewise. Remove patterns now implemented
2426 by generic_simplify.
2427 * gimple-fold.c (replace_stmt_with_simplification): New function.
2428 (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
2429 (no_follow_ssa_edges): New function.
2430 (fold_stmt): New overload with valueization hook. Use
2431 no_follow_ssa_edges for the overload without hook.
2432 (fold_stmt_inplace): Likewise.
2433 * gimple-fold.h (no_follow_ssa_edges): Declare.
2435 2014-10-24 Felix Yang <felix.yang@huawei.com>
2436 Jiji Jiang <jiangjiji@huawei.com>
2439 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
2440 (__LD3R_FUNC): Ditto.
2441 (__LD4R_FUNC): Ditto.
2442 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
2443 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
2444 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
2445 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
2446 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
2447 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
2448 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
2449 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
2450 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
2451 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
2452 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
2453 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
2454 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
2455 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
2456 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
2457 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
2458 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
2459 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
2460 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
2461 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
2462 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
2464 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
2465 (aarch64_simd_ld3r<mode>): Likewise.
2466 (aarch64_simd_ld4r<mode>): Likewise.
2467 (aarch64_ld2r<mode>): New expand.
2468 (aarch64_ld3r<mode>): Likewise.
2469 (aarch64_ld4r<mode>): Likewise.
2471 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
2473 * rtlanal.c (get_base_term): Handle SCRATCH.
2475 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
2477 * haifa-sched.c (sched_init): Disable max_issue when scheduling for
2480 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
2482 * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
2483 (cached_issue_rate): Remove. Use dfa_lookahead and issue_rate instead.
2484 (max_issue, choose_ready, sched_init): Update.
2486 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
2488 * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
2489 * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
2490 (rfs_result): Set INSN_LAST_RFS_WIN. Update signature.
2491 (rank_for_schedule): Update calls to rfs_result to pass new parameters.
2492 (print_rank_for_schedule_stats): Print out elements of ready list that
2493 ended up on their respective places due to each of the sorting
2495 (ready_sort): Update.
2496 (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
2497 (schedule_block): Update.
2499 2014-10-24 Maxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
2501 * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
2502 arrays. Use sched_class_regs_num instead of ira_class_hard_regs_num.
2503 (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
2504 (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
2505 (model_start_schedule): Update.
2506 (sched_pressure_start_bb): New static function. Calculate
2507 sched_class_regs_num.
2508 (schedule_block): Use it.
2509 (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
2511 2014-10-24 Richard Biener <rguenther@suse.de>
2513 * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
2514 host library and make sure to pull in the required libintl
2515 and libiconv dependencies.
2517 2014-10-24 Richard Biener <rguenther@suse.de>
2519 * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
2521 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
2524 * collect2.c (main): Filter out -fno-lto.
2526 2014-10-24 Martin Liska <mliska@suse.cz>
2528 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
2529 division by zero in dumps.
2530 (sem_item_optimizer::merge_classes): Ditto.
2532 2014-10-23 John David Anglin <danglin@gcc.gnu.org>
2534 * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
2536 2014-10-23 Ian Lance Taylor <iant@google.com>
2538 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
2540 2014-10-23 Ian Lance Taylor <iant@google.com>
2542 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
2544 2014-10-23 Jakub Jelinek <jakub@redhat.com>
2547 * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
2548 (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
2549 instead of only handling autoinc in dest if it is a MEM.
2550 (vt_stack_adjustments): Fix up formatting.
2552 2014-10-23 DJ Delorie <dj@redhat.com>
2554 * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
2555 independend of -mlarge.
2556 * config/msp430/constraints.md (Ys): Update comment.
2558 2014-10-23 Evgeny Stupachenko <evstupac@gmail.com>
2562 * cse.c (delete_trivially_dead_insns): Consider PIC register is used
2564 * dse.c (deletable_insn_p): Likewise.
2566 2014-10-23 Georg-Johann Lay <avr@gjlay.de>
2568 * config/avr/avr.c: Fix GNU coding rules and typos.
2569 * config/avr/avr.h: Dito.
2570 * config/avr/avr-c.c: Dito.
2571 * config/avr/avr.md: Dito.
2573 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
2575 * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
2577 (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
2579 (define_expand "abs<mode>2"): Ditto.
2581 2014-10-23 Kirill Yukhin <kirill.yukhin@intel.com>
2583 * tree-core.h (tree_var_decl): Extend `function_code' field
2584 by one bit, move `regdecl_flag' field to ...
2585 (tree_decl_with_vis): Here.
2586 * tree.h (DECL_STATIC_CHAIN): Update struct name.
2588 2014-10-23 Richard Biener <rguenther@suse.de>
2590 * Makefile.in (BUILD_CPPLIB): Add.
2591 (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
2594 2014-10-23 Richard Biener <rguenther@suse.de>
2596 * fold-const.c (fold_binary_loc): Preserve side-effects of
2597 X - X when simplifying to 0.
2598 * stor-layout.c (finish_bitfield_representative): Strip
2599 side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
2601 2014-10-22 Richard Biener <rguenther@suse.de>
2602 Tobias Burnus <burnus@net-b.de>
2605 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
2607 2014-10-22 Dehao Chen <dehao@google.com>
2609 * auto-profile.c: Change order of header files.
2611 2014-10-22 Guozhi Wei <carrot@google.com>
2613 PR tree-optimization/63530
2614 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
2615 pointer alignment according to DR_MISALIGNMENT.
2617 2014-10-22 David Malcolm <dmalcolm@redhat.com>
2619 * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
2621 2014-10-22 Andrew MacLeod <amacleod@redhat.com>
2623 * cfgbuild.h: New. Add prototypes for cfgbuild.c.
2624 * cfgcleanup.h: New. Add prototypes for cfgcleanup.c.
2625 * cfgloopmanip.h: New. Add prototypes for cfgloopmanip.c.
2626 * dominance.h: New. Add prototypes for dominance.c.
2627 * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
2628 * cfghooks.h: (struct profile_record) Relocate here.
2629 Relocate 2 prototypes from basic-block.h.
2630 * basic-block.h: Move prototypes and struct to new header files.
2631 Include cfgbuild.h, cfgcleanup.h, and dominance.h.
2632 * rtl.h: Move a few prototypes to new header files.
2633 * cfgcleanup.c (merge_memattrs): Make static.
2634 * genopinit.c (main): Add predict.h to list of includes.
2635 * predict.h: Update prototype list to match predict.c.
2636 * predict.c (maybe_hot_count_p): Export.
2637 (cgraph_edge::maybe_hot_p): Move to cgraph.c.
2638 (cgraph_node::optimize_for_size_p): Move to cgraph.h.
2639 * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
2640 * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
2641 * profile.h: Adjust prototypes.
2642 * ifcvt.h: New. Relocate struct ce_if_block here.
2643 * ifcvt.c: Include ifcvt.h.
2644 * config/frv/frv.c: Include ifcvt.h.
2645 * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
2647 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
2649 * lra.c (lra): Remove call to recog_init.
2650 * config/i386/i386.md (preferred_for_speed): New attribute
2651 (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
2652 "enabled". Remove check for sched1.
2654 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
2656 * recog.h (recog_data_d): Remove enabled_alternatives.
2657 * recog.c (extract_insn): Don't set it.
2658 * reload.c (find_reloads): Call get_enabled_alternatives.
2660 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
2662 * recog.h (constrain_operands): Add an alternative_mask parameter.
2663 (constrain_operands_cached): Likewise.
2664 (get_preferred_alternatives): Declare new form.
2665 * recog.c (get_preferred_alternatives): New bb-taking instance.
2666 (constrain_operands): Take the set of available alternatives as
2668 (check_asm_operands, insn_invalid_p, extract_constrain_insn)
2669 (extract_constrain_insn_cached): Update calls to constrain_operands.
2670 * caller-save.c (reg_save_code): Likewise.
2671 * ira.c (setup_prohibited_mode_move_regs): Likewise.
2672 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
2673 * ree.c (combine_reaching_defs): Likewise.
2674 * reload.c (can_reload_into): Likewise.
2675 * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
2676 (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
2677 (emit_insn_if_valid_for_reload): Likewise.
2678 * reorg.c (fill_slots_from_thread): Likewise.
2679 * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
2680 * config/pa/pa.c (pa_can_combine_p): Likewise.
2681 * config/rl78/rl78.c (insn_ok_now): Likewise.
2682 * config/sh/sh.md (define_peephole2): Likewise.
2683 * final.c (final_scan_insn): Update call to constrain_operands_cached.
2685 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
2687 * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
2689 * genattr.c (main): Handle "preferred_for_size" and
2690 "preferred_for_speed" in the same way as "enabled".
2691 * recog.h (bool_attr): New enum.
2692 (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
2693 (get_preferred_alternatives, check_bool_attrs): Declare.
2694 * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
2695 (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
2697 (get_enabled_alternatives): Use get_bool_attr_mask.
2698 * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
2699 instead of recog_data.enabled_alternatives.
2700 * ira.c (ira_setup_alts): Likewise.
2701 * postreload.c (reload_cse_simplify_operands): Likewise.
2702 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
2703 * ira-lives.c (preferred_alternatives): New variable.
2704 (process_bb_node_lives): Set it.
2705 (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
2706 (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
2707 of recog_data.enabled_alternatives.
2708 * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
2709 to preferred_alternatives.
2710 * lra-constraints.c (process_alt_operands): Update accordingly.
2711 * lra.c (lra_set_insn_recog_data): Likewise.
2712 (lra_update_insn_recog_data): Assert check_bool_attrs.
2714 2014-10-22 Richard Sandiford <richard.sandiford@arm.com>
2716 * recog.h (extract_constrain_insn): Declare.
2717 * recog.c (extract_constrain_insn): New function.
2718 * lra.c (check_rtl): Use it.
2719 * postreload.c (reload_cse_simplify_operands): Likewise.
2720 * reg-stack.c (check_asm_stack_operands): Likewise.
2721 (subst_asm_stack_regs): Likewise.
2722 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
2723 * regrename.c (build_def_use): Likewise.
2724 * sel-sched.c (get_reg_class): Likewise.
2725 * config/arm/arm.c (note_invalid_constants): Likewise.
2726 * config/s390/predicates.md (execute_operation): Likewise.
2728 2014-10-22 Jakub Jelinek <jakub@redhat.com>
2729 Yury Gribov <y.gribov@samsung.com>
2731 * common.opt (flag_sanitize_recover): New variable.
2732 (fsanitize-recover): Remove Var/Init, deprecate.
2733 (fsanitize-recover=): New option.
2734 * doc/invoke.texi (fsanitize-recover): Update docs.
2735 * opts.c (finish_options): Use opts->x_flag_sanitize
2736 instead of flag_sanitize. Prohibit -fsanitize-recover
2737 for anything besides UBSan. Formatting.
2738 (common_handle_option): Handle OPT_fsanitize_recover_
2739 and OPT_fsanitize_recover. Use opts->x_flag_sanitize
2740 instead of flag_sanitize.
2741 * asan.c (pass_sanopt::execute): Fix up formatting.
2742 * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
2743 ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
2744 instrument_bool_enum_load, ubsan_instrument_float_cast,
2745 instrument_nonnull_arg, instrument_nonnull_return): Check
2746 bits in flag_sanitize_recover bitmask instead of
2747 flag_sanitize_recover as bool flag.
2749 2014-10-22 Jiong Wang <jiong.wang@arm.com>
2751 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
2753 2014-10-22 Renlin Li <renlin.li@arm.com>
2755 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
2756 __ARM_FEATURE_IDIV__.
2758 2014-10-22 Richard Biener <rguenther@suse.de>
2760 * Makefile.in (s-match): Adjust dependencies to only catch
2763 2014-10-22 Richard Biener <rguenther@suse.de>
2764 Prathamesh Kulkarni <bilbotheelffriend@gmail.com>
2766 * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
2767 (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
2768 (gimple-match.c): Generate by triggering s-match.
2769 (generic-match.c): Likewise.
2770 (s-match): Rule to build gimple-match.c and generic-match.c
2771 by running the genmatch generator program.
2772 (build/hash-table.o): Dependencies to build hash-table.c for the host.
2773 (build/genmatch.o): Dependencies to build genmatch.
2774 (genprog): Add match.
2775 (build/genmatch): Likewise.
2776 (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
2777 * generic-match-head.c: New file.
2778 * gimple-match-head.c: Likewise.
2779 * gimple-match.h: Likewise.
2780 * genmatch.c: Likewise.
2781 * match.pd: Likewise.
2782 * builtins.h (fold_builtin_n): Export.
2783 * builtins.c (fold_builtin_n): Likewise.
2784 * gimple-fold.h (gimple_build): Declare various overloads.
2785 (gimple_simplify): Likewise.
2786 (gimple_convert): Re-implement in terms of gimple_build.
2787 * gimple-fold.c (gimple_convert): Remove.
2788 (gimple_build): New functions.
2789 * doc/match-and-simplify.texi: New file.
2790 * doc/gccint.texi: Add menu item Match and Simplify and include
2791 match-and-simplify.texi.
2793 2014-10-22 Jakub Jelinek <jakub@redhat.com>
2796 * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
2797 V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
2798 even for just TARGET_AVX2, not only for
2799 TARGET_AVX512VL && TARGET_AVX512BW. For V{32HI,64QI}mode,
2800 call ix86_vector_duplicate_value only if TARGET_AVX512BW,
2801 otherwise build it using concatenation of 256-bit
2803 * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
2804 avx512 broadcast patterns.
2805 (vec_dup<mode>): Likewise. For avx2 use
2806 v<sseintprefix>broadcast<bcstscalarsuff> instead of
2807 vbroadcast<ssescalarmodesuffix>.
2808 (AVX2_VEC_DUP_MODE): New mode iterator.
2809 (*vec_dup<mode>): New TARGET_AVX2 define_insn with
2810 AVX2_VEC_DUP_MODE iterator, add a splitter for that.
2813 * config/i386/i386.c (ix86_pic_register_p): Also return
2814 true if x is a hard register with ORIGINAL_REGNO equal to
2815 pic_offset_table_rtx pseudo REGNO.
2816 (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
2817 after reload, subtract GOT_SYMBOL_NAME symbol if possible.
2819 2014-10-22 Alan Modra <amodra@gmail.com>
2821 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
2822 * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
2823 (gcc_obstack_init): Use obstack_specify_allocation in place of
2825 * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
2826 (regexp_representation): Likewise.
2827 * godump.c (go_output_type): Likewise.
2829 2014-10-21 John David Anglin <danglin@gcc.gnu.org>
2831 * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
2832 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
2833 * config/pa/pa.opt (mjump-in-delay): Ignore option. Update comment.
2835 2014-10-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
2837 * doc/invoke.texi (pedantic-errors): Explain better.
2839 2014-10-21 Joern Rennecke <joern.rennecke@embecosm.com>
2840 Vidya Praveen <vidya.praveen@atmel.com>
2841 Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
2842 Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
2843 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
2845 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
2847 * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
2848 (avr_nonconst_pointer_addrspace): Likewise.
2849 * config/avr/avr.h (AVR_HAVE_LPM): Define.
2851 Added AVRTINY architecture to avr target.
2852 * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
2853 (base_arch_s): member added for AVRTINY architecture.
2854 * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
2855 alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
2856 AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
2857 and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
2858 respectively. LAST_CALLEE_SAVED_REG macro added for the last register
2859 in callee saved register list.
2860 (avr_option_override): CCP address updated for AVRTINY.
2861 (avr_init_expanders): tmp and zero rtx initialized as per arch.
2862 Reset avr_have_dimode if AVRTINY.
2863 (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
2864 (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
2865 (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
2866 Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
2867 (expand_epilogue): Likewise.
2868 (avr_print_operand): Print CCP address in case of AVRTINY also.
2870 (function_arg_regno_p): Check different register list for arguments
2872 (init_cumulative_args): Check for AVRTINY to update number of argument
2874 (tiny_valid_direct_memory_access_range): New function. Return false if
2875 direct memory access range is not in accepted range for AVRTINY.
2876 (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
2877 indirect load (with displacement) for AVRTINY.
2878 (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
2879 avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
2880 (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
2881 indirect load (no displacement) for AVRTINY.
2882 (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
2883 indirect load (with displacement) for AVRTINY.
2884 (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
2885 indirect load for pre-decrement address.
2886 (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
2887 functions. Update instruction length for AVRTINY.
2888 (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
2890 (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
2891 (out_movsi_r_mr): Likewise, for SImode.
2892 (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
2893 indirect store (no displacement) for AVRTINY.
2894 (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
2895 indirect store (with displacement) for AVRTINY.
2896 (out_movsi_mr_r): Emit out insn for IO address store. Update store
2897 instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
2899 (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
2900 indirect load (no displacement) for PSImode in AVRTINY.
2901 (avr_out_load_psi_reg_disp_tiny): New function to handle register
2902 indirect load (with displacement) for PSImode in AVRTINY.
2903 (avr_out_load_psi): Call PSImode register indirect load functions for
2904 AVRTINY. Update instruction length for AVRTINY.
2905 (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
2906 indirect store (no displacement) for PSImode in AVRTINY.
2907 (avr_out_store_psi_reg_disp_tiny): New function to handle register
2908 indirect store (with displacement) for PSImode in AVRTINY.
2909 (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
2910 register indirect store functions for AVRTINY.
2911 (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
2912 register indirect store (with displacement) for AVRTINY.
2913 (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
2914 register indirect store function for QImode in AVRTINY.
2915 (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
2916 (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
2917 indirect store (no displacement) for HImode in AVRTINY.
2918 (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
2919 indirect store (with displacement) for HImode in AVRTINY.
2920 (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
2921 indirect store for post-increment address in HImode.
2922 (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
2923 register indirect store function for HImode in AVRTINY.
2924 (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
2926 (order_regs_for_local_alloc): Updated register allocation order for
2928 (avr_conditional_register_usage): New function. It is a target hook
2929 (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
2930 used registers list and register allocation order for AVRTINY.
2931 (avr_return_in_memory): Update return value size for AVRTINY.
2932 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
2933 for AVRTINY arch and tiny program memory base address.
2934 * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
2935 (avr_texinfo): Added description for AVRTINY arch.
2936 * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
2937 STATIC_CHAIN_REGNUM for AVRTINY.
2938 * config/avr/avr-mcus.def: Added AVRTINY arch devices.
2939 * config/avr/avr.md: Added constants for tmp/ zero registers in
2940 AVRTINY. Attributes for AVRTINY added.
2941 (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
2942 memory access range.
2943 (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
2944 in AVRTINY memory access range.
2945 (*mov<mode>): Likewise for HImode and SImode.
2946 (*movsf): Likewise for SFmode.
2947 (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
2949 * config/avr/avr-protos.h: Added function prototype for
2950 tiny_valid_direct_memory_access_range.
2951 * config/avr/avr-tables.opt: Regenerate.
2952 * gcc/config/avr/t-multilib: Regenerate.
2953 * doc/avr-mmcu.texi: Regenerate.
2955 2014-10-21 Andrew Pinski <apinski@cavium.com>
2957 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
2958 available option also.
2959 * config/aarch64/aarch64-cost-tables.h: New file.
2960 * config/aarch64/aarch64-cores.def (thunderx): New core.
2961 * config/aarch64/aarch64-tune.md: Regenerate.
2962 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
2963 of config/arm/aarch-cost-tables.h.
2964 (thunderx_regmove_cost): New variable.
2965 (thunderx_tunings): New variable.
2967 2014-10-21 Dehao Chen <dehao@google.com>
2969 * auto-profile.c: New file.
2970 * auto-profile.h: New file.
2971 * basic-block.h (maybe_hot_count_p): New export func.
2972 (add_working_set): New export func.
2973 * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
2974 (GCOV_TAG_AFDO_FUNCTION): Likewise.
2975 (GCOV_TAG_AFDO_WORKING_SET): Likewise.
2976 * opts.c (enable_fdo_optimizations): New func.
2977 (common_handle_option): Handle -fauto-profile flag.
2978 * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
2979 (class pass_early_inline): Export early_inliner.
2980 (early_inliner): Likewise.
2981 (pass_early_inline::execute): Likewise.
2982 * ipa-inline.h (early_inliner): Likewise.
2983 * predict.c (maybe_hot_count_p): New export func.
2984 (counts_to_freqs): AutoFDO logic.
2985 (rebuild_frequencies): Likewise.
2986 * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
2987 * profile.c (add_working_set): New func.
2988 * Makefile.in (auto-profile.o): New object file.
2989 * passes.def (pass_ipa_auto_profile): New pass.
2990 * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
2991 * tree-pass.h (make_pass_ipa_auto_profile): New pass.
2992 * toplev.c (compile_file): AutoFDO logic.
2993 * doc/invoke.texi (-fauto-profile): New doc.
2994 * coverage.c (coverage_init): AutoFDO logic.
2995 * common.opt (-fauto-profile): New flag.
2996 * timevar.def (TV_IPA_AUTOFDO): New tag.
2997 * value-prof.c (gimple_alloc_histogram_value): New export func.
2998 (check_ic_target): Likewise.
2999 * value-prof.h (gimple_alloc_histogram_value): Likewise.
3000 (check_ic_target): Likewise.
3002 2014-10-21 David Malcolm <dmalcolm@redhat.com>
3004 * cgraph.c (cgraph_c_finalize): New function.
3005 * cgraph.h (cgraph_c_finalize): New prototype.
3006 (cgraphunit_c_finalize): New prototype.
3007 * cgraphunit.c (first_analyzed): Move from analyze_functions
3009 (first_analyzed_var): Likewise.
3010 (analyze_functions): Move static variables into file-scope.
3011 (cgraphunit_c_finalize): New function.
3012 * diagnostic.c (diagnostic_finish): Free the memory for
3013 context->classify_diagnostic and context->printer, running the
3014 destructor for the latter.
3015 (bt_stop): Use toplev::main.
3016 * dwarf2out.c (dwarf2out_finalize): New function.
3017 * dwarf2out.h (dwarf2out_c_finalize): New prototype.
3018 * gcse.c (gcse_c_finalize): New function.
3019 * gcse.h (gcse_c_finalize): New prototype.
3020 * ggc-page.c (init_ggc): Make idempotent.
3021 * input.c (input_location): Initialize to UNKNOWN_LOCATION.
3022 * ipa-cp.c (ipa_cp_c_finalize): New function.
3023 * ipa-prop.h (ipa_cp_c_finalize): New prototype.
3024 * ipa-pure-const.c (function_insertion_hook_holder): Move to be
3025 a field of class pass_ipa_pure_const.
3026 (node_duplication_hook_holder): Likewise.
3027 (node_removal_hook_holder): Likewise.
3028 (register_hooks): Convert to method...
3029 (pass_ipa_pure_const::register_hooks): ...here, converting
3030 static variable init_p into...
3031 (pass_ipa_pure_const::init_p): ...new field.
3032 (pure_const_generate_summary): Update invocation of
3033 register_hooks to invoke as a method of current_pass.
3034 (pure_const_read_summary): Likewise.
3035 (propagate): Convert to...
3036 (pass_ipa_pure_const::execute): ...method.
3037 * ipa-reference.c (ipa_init): Move static bool init_p from here
3039 (ipa_init_p): New file-scope variable, so that it can be reset
3040 when repeatedly invoking the compiler within one process by...
3041 (ipa_reference_c_finalize): New function.
3042 * ipa-reference.h (ipa_reference_c_finalize): New.
3043 * main.c (main): Replace invocation of toplev_main with
3044 construction of a toplev instance, and call its "main" method.
3045 * params.c (global_init_params): Add an assert that
3046 params_finished is false.
3047 (params_c_finalize): New.
3048 * params.h (params_c_finalize): New.
3049 * passes.c (execute_ipa_summary_passes): Set "current_pass" before
3050 invoking generate_summary, for the benefit of pass_ipa_pure_const.
3051 (ipa_write_summaries_2): Assign "pass" to "current_pass" global
3052 before calling write_summary hook.
3053 (ipa_write_optimization_summaries_1): Likewise when calling
3054 write_optimization_summary hook.
3055 (ipa_read_summaries_1): Likewise for read_summary hook.
3056 (ipa_read_optimization_summaries_1): Likewise for
3057 read_optimization_summary hook.
3058 (execute_ipa_stmt_fixups): Likewise.
3059 * stringpool.c (init_stringpool): Clean up if we're called more
3061 * timevar.c (timevar_init): Ignore repeated calls.
3062 * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
3064 (general_init): Reset "input_location" to UNKNOWN_LOCATION.
3065 (initialize_rtl): Move static local "initialized_once"
3066 into file scope, and rename to...
3067 (rtl_initialized): New variable.
3068 (do_compile): Move timevar initialization from here to
3069 toplev::start_timevars.
3070 (toplev::toplev, toplev::~toplev, toplev::start_timevars,
3071 toplev::finalize): New functions.
3072 (toplev_main): Rename to...
3073 (toplev::main): ...this.
3074 * toplev.h (class toplev): New class.
3076 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
3078 * loop-doloop.c: Include loop-unroll.h.
3080 2014-10-21 Andrew MacLeod <amacleod@redhat.com>
3082 * cfg.h: New. Header file for cfg.c.
3083 * cfganal.h: New. Header file for cfganal.c.
3084 * lcm.h: New. Header file for lcm.c.
3085 * loop-unroll.h: New. Header file for loop-unroll.h.
3086 * cfgloop.h: (unroll_loops): Remove prototype.
3087 * basic-block.h: Move prototypes and structs to new header files.
3088 Include cfg.h, cfganal.h, and lcm.h.
3089 * loop-init.c: Include loop-unroll.h.
3090 * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
3091 * modulo-sched.c: Include loop-unroll.h.
3093 2014-10-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
3095 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
3096 MARKER_BYTE_UNKNOWN markers when handling casts.
3098 2014-10-21 Richard Biener <rguenther@suse.de>
3100 * tree-ssa-phiopt.c (value_replacement): Properly verify we
3101 are the non-singleton PHI.
3103 2014-10-21 Jakub Jelinek <jakub@redhat.com>
3105 PR tree-optimization/63563
3106 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
3107 if either dra or drb stmts are not normal loads/stores.
3109 2014-10-21 Ilya Tocar <ilya.tocar@intel.com>
3111 * config/i386/i386.c (expand_vec_perm_1): Fix
3112 expand_vec_perm_palignr case.
3113 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
3116 2014-10-21 Zhenqiang Chen <zhenqiang.chen@arm.com>
3118 * cfgloopanal.c (seq_cost): Delete.
3119 * rtl.h (seq_cost): New prototype.
3120 * rtlanal.c (seq_cost): New function.
3121 * tree-ssa-loop-ivopts.c (seq_cost): Delete.
3123 2014-10-20 Andrew MacLeod <amacleod@redhat.com>
3125 * cfgrtl.h: New. Add prototypes for cfgrtl.c.
3126 * basic-block.h: Remove prototypes for cfgrtl.c.
3127 * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
3128 prototypes to cfgrtl.h.
3129 * profile.h (profile_info): Add extern export declaration.
3130 * rtl.h: Remove prototypes for cfgrtl.h.
3131 * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
3132 * ipa-inline.c: Include profile.h.
3133 * loop-unroll.c: Ditto.
3134 * modulo-sched.c: Ditto.
3135 * postreload-gcse.c: Ditto.
3137 * sched-ebb.c: Ditto.
3138 * sched-rgn.c: Ditto.
3140 * tree-ssa-loop-ivcanon.c: Ditto.
3142 2014-10-20 Richard Biener <rguenther@suse.de>
3144 * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
3145 operands to get a def operand kind match. Signal mismatches
3146 to the parent so we can try swapping its operands.
3147 (vect_build_slp_tree): Try swapping operands if they have
3148 a mismatched operand kind.
3150 2014-10-20 Alan Modra <amodra@gmail.com>
3153 * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
3154 Increase "ops" array size. Correct array size tests. Init
3155 n_constants in loop. Break out of innermost loop when finding
3156 a trivial CONST expression.
3158 2014-10-20 Martin Liska <mliska@suse.cz>
3161 * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
3162 Gimple tempate string is compared.
3164 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
3166 * varasm.c (const_alias_set): Remove.
3167 (init_varasm_once): Remove initialization of const_alias_set.
3168 (build_constant_desc): Do not set alias set to const_alias_set.
3170 2014-10-19 Ilya Verbin <ilya.verbin@intel.com>
3172 * configure: Regenerate.
3173 * configure.ac: Move the test for section attribute specifier "e" in GAS
3174 out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
3175 * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
3176 * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
3177 ifdef HAVE_GAS_SECTION_EXCLUDE.
3179 2014-10-19 Andreas Schwab <schwab@linux-m68k.org>
3181 * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
3182 match_operand expression.
3184 2014-10-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
3185 David Edelsohn <dje.gcc@gmail.com>
3187 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
3189 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
3191 2014-10-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
3193 * doc/invoke.texi (Options to Request or Suppress Warnings):
3194 Explain options precedence.
3195 (Wtrampolines): Do not indent paragraph.
3197 2014-10-18 John David Anglin <danglin@gcc.gnu.org>
3199 * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
3200 * config/pa/pa-protos.h (pa_following_call): Delete declaration.
3201 (pa_jump_in_call_delay): Likewise.
3202 * config/pa/pa.c (pa_option_override): Remove jump in call delay
3204 (pa_output_millicode_call): Remove support for jump in call delay.
3205 (pa_output_call): Likewise.
3206 (pa_jump_in_call_delay): Delete.
3207 (pa_following_call): Likewise.
3208 * config/pa/pa.md (in_call_delay): Remove jump in delay check.
3209 (uncond_branch): Remove following call check from attribute length.
3211 2014-10-18 Oleg Endo <olegendo@gcc.gnu.org>
3214 * config/sh/sh-modes.def (PSI): Remove.
3215 * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
3216 * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
3217 (sh_reorg): Remove commented out FPSCR code.
3218 (fpscr_set_from_mem): Use SImode instead of PSImode. Emit lds_fpscr
3219 insn instead of move insn.
3220 (sh_hard_regno_mode_ok): Return SImode for FPSCR.
3221 (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
3223 (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
3224 (sh1_builtin_p): Uncomment.
3225 (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
3226 (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
3227 * config/sh/sh/predicates.md (fpscr_operand): Simplify.
3228 (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
3229 (general_movsrc_operand, general_movdst_operand): Disallow
3231 * config/sh/sh.md (FPSCR_FR): New constant.
3232 (push_fpscr): Emit sts_fpscr insn.
3233 (pop_fpscr): Emit lds_fpscr_insn.
3234 (movsi_ie): Disallow FPSCR operands.
3235 (fpu_switch, unnamed related split, extend_psi_si,
3236 truncate_si_psi): Remove insns.
3237 (lds_fpscr, sts_fpscr): New insns.
3238 (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
3240 2014-10-17 Eric Botcazou <ebotcazou@adacore.com>
3242 * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
3243 (clone_inlined_nodes): Do not overwrite the clone if above predicate
3246 2014-10-17 Ilya Tocar <ilya.tocar@intel.com>
3248 * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
3249 (expand_vec_perm_d): Ditto.
3250 (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
3251 V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
3253 (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
3254 (ix86_expand_sse_unpack): Handle V64QImode.
3255 (expand_vec_perm_blend): Update conditions for TARGET, handle
3256 V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
3257 (expand_vec_perm_pshufb): Handle V64QImode.
3258 (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
3259 V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
3260 (ix86_expand_vec_perm_const_1): Call ix86_expand_vec_perm_vpermi2.
3261 (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
3262 (ix86_expand_vecop_qihi): Handle V64QImode.
3263 * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
3264 (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
3265 (define_mode_iterator VEC_PERM_CONST): Add V32HI.
3266 (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
3267 (mul<mode>3): Use VI1_AVX512.
3268 (<sse2_avx2>_packsswb): Ditto.
3269 (<sse2_avx2>_packuswb): Ditto.
3270 (<ssse3_avx2>_pshufb<mode>3): Ditto.
3271 (<shift_insn><mode>3): Ditto.
3273 2014-10-17 Kirill Yukhin <kirill.yukhin@intel.com>
3275 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
3276 conditions to fix bootstrap.
3278 2014-10-17 Andrew MacLeod <amacleod@redhat.com>
3280 gcc-plugin.h: Add tm.h and flattened includes from function.h.
3282 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
3283 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3284 Anna Tikhonova <anna.tikhonova@intel.com>
3285 Ilya Tocar <ilya.tocar@intel.com>
3286 Andrey Turetskiy <andrey.turetskiy@intel.com>
3287 Ilya Verbin <ilya.verbin@intel.com>
3288 Kirill Yukhin <kirill.yukhin@intel.com>
3289 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3291 * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
3292 and V32HI modes, update V8HI, V16QI, V32QI modes handling.
3293 (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
3294 * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
3295 (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
3296 (define_expand "vec_init<mode>"): Use VF48_I1248.
3298 2014-10-17 Alexander Ivchenko <alexander.ivchenko@intel.com>
3299 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3300 Anna Tikhonova <anna.tikhonova@intel.com>
3301 Ilya Tocar <ilya.tocar@intel.com>
3302 Andrey Turetskiy <andrey.turetskiy@intel.com>
3303 Ilya Verbin <ilya.verbin@intel.com>
3304 Kirill Yukhin <kirill.yukhin@intel.com>
3305 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3307 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
3308 expand_sse2_mulvxdi3.
3310 2014-10-17 Richard Biener <rguenther@suse.de>
3312 * fold-const.c (fold_comparison): Remove redundant constant
3313 folding and operand swapping.
3314 (fold_binary_loc): Do comparison operand swapping here.
3315 (fold_ternary_loc): Canonicalize operand order for
3316 commutative ternary operations.
3317 * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
3320 2014-10-17 Jakub Jelinek <jakub@redhat.com>
3322 PR tree-optimization/63464
3323 * gimple.h (gimple_seq_discard): New prototype.
3324 * gimple.c: Include stringpool.h and tree-ssanames.h.
3325 (gimple_seq_discard): New function.
3326 * optabs.h (lshift_cheap_p): New prototype.
3327 * optabs.c (lshift_cheap_p): New function, moved from...
3328 * tree-switch-conversion.c (lshift_cheap_p): ... here.
3329 * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
3330 (reassoc_branch_fixups): New variable.
3331 (update_range_test): Add otherrangep and seq arguments.
3332 Unshare exp. If otherrange is NULL, use for other ranges
3333 array of pointers pointed by otherrangep instead.
3334 Emit seq before gimplified statements for tem.
3335 (optimize_range_tests_diff): Adjust update_range_test
3337 (optimize_range_tests_xor): Likewise. Fix up comment.
3338 (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
3340 (optimize_range_tests): Adjust update_range_test caller.
3341 Call optimize_range_tests_to_bit_test.
3342 (branch_fixup): New function.
3343 (execute_reassoc): Call branch_fixup.
3345 PR tree-optimization/63302
3346 * tree-ssa-reassoc.c (optimize_range_tests_xor,
3347 optimize_range_tests_diff): Use !integer_pow2p () instead of
3350 2014-10-17 Martin Liska <mliska@suse.cz>
3352 * ipa-icf.c (sem_function::merge): Local flags are set to false
3353 to enforce equal calling convention to be used.
3354 * opts.c (common_handle_option): Indentation fix.
3356 2014-10-17 Marc Glisse <marc.glisse@inria.fr>
3358 * tree-into-ssa.c (is_old_name): Replace "new" with "old".
3360 2014-10-17 Tom de Vries <tom@codesourcery.com>
3362 PR rtl-optimization/61605
3363 * regcprop.c (copyprop_hardreg_forward_1): Use
3364 regs_invalidated_by_this_call instead of regs_invalidated_by_call.
3366 2014-10-17 Tom de Vries <tom@codesourcery.com>
3368 PR rtl-optimization/61605
3369 * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p. Don't
3370 notice stores for noops. Don't regard noops as copies.
3372 2014-10-17 Uros Bizjak <ubizjak@gmail.com>
3374 * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
3375 register in a special way.
3376 (__cpuid_count): Ditto.
3377 * config/i386/driver-i386.h: Protect with
3378 "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
3379 (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
3380 is required to compile the function.
3382 2014-10-16 DJ Delorie <dj@redhat.com>
3384 * flag-types.h (sanitize_code): Don't assume targets have 32-bit
3387 * config/rs6000/rs6000-c.c (rid_int128): New.
3388 (rs6000_macro_to_expand): Use instead of RID_INT128.
3390 2014-10-16 Andrew MacLeod <amacleod@redhat.com>
3392 * function.h: Flatten file. Remove includes, adjust prototypes to
3393 reflect only what is in function.h.
3394 (enum direction, struct args_size, struct locate_and_pad_arg_data,
3395 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
3397 (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
3398 (optimize_function_for_size_p, optimize_function_for_speed_p): Move
3399 prototypes to predict.h.
3400 (init_varasm_status): Move prototype to varasm.h.
3401 * expr.h: Adjust include files.
3402 (enum direction, struct args_size, struct locate_and_pad_arg_data,
3403 ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
3405 (locate_and_pad_parm): Move prototype to function.h.
3406 * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
3407 assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
3408 assign_temp, reposition_prologue_and_epilogue_notes,
3409 prologue_epilogue_contains, sibcall_epilogue_contains,
3410 update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
3411 set_return_jump_label): Move prototypes to function.h.
3412 * predict.h (optimize_function_for_size_p,
3413 optimize_function_for_speed_p): Relocate prototypes from function.h.
3414 * shrink-wrap.h (emit_return_into_block, active_insn_between,
3415 convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
3417 * varasm.h (init_varasm_status): Relocate prototype from function.h.
3418 * genattrtab.c (write_header): Add predict.h to include list.
3419 * genconditions.c (write_header): Add predict.h to include list.
3420 * genemit.c (main): Adjust header file includes.
3421 * gengtype.c (ifiles): Add flattened function.h header files.
3422 * genoutput.c (output_prologue): Add predict.h to include list.
3423 * genpreds.c (write_insn_preds_c): Adjust header file includes.
3424 * genrecog.c (write_header): Add flattened function.h header files.
3425 * alias.c: Adjust include files.
3426 * auto-inc-dec.c: Likewise.
3427 * basic-block.h: Likewise.
3428 * bb-reorder.c: Likewise.
3429 * bt-load.c: Likewise.
3430 * builtins.c: Likewise.
3431 * caller-save.c: Likewise.
3432 * calls.c: Likewise.
3433 * cfgbuild.c: Likewise.
3434 * cfgcleanup.c: Likewise.
3435 * cfgexpand.c: Likewise.
3436 * cfgloop.c: Likewise.
3437 * cfgloop.h: Likewise.
3438 * cfgrtl.c: Likewise.
3439 * cgraph.h: Likewise.
3440 * cgraphclones.c: Likewise.
3441 * cgraphunit.c: Likewise.
3442 * combine-stack-adj.c: Likewise.
3443 * combine.c: Likewise.
3444 * coverage.c: Likewise.
3445 * cprop.c: Likewise.
3447 * cselib.c: Likewise.
3448 * dbxout.c: Likewise.
3450 * df-core.c: Likewise.
3451 * df-problems.c: Likewise.
3452 * df-scan.c: Likewise.
3453 * dojump.c: Likewise.
3454 * dwarf2cfi.c: Likewise.
3455 * dwarf2out.c: Likewise.
3456 * emit-rtl.c: Likewise.
3457 * except.c: Likewise.
3458 * explow.c: Likewise.
3460 * final.c: Likewise.
3461 * function.c: Likewise.
3463 * gimple-fold.c: Likewise.
3464 * gimple-low.c: Likewise.
3465 * gimple-streamer.h: Likewise.
3466 * haifa-sched.c: Likewise.
3467 * ifcvt.c: Likewise.
3471 * loop-invariant.c: Likewise.
3472 * lra-assigns.c: Likewise.
3473 * lra-coalesce.c: Likewise.
3474 * lra-constraints.c: Likewise.
3475 * lra-eliminations.c: Likewise.
3476 * lra-lives.c: Likewise.
3477 * lra-spills.c: Likewise.
3479 * lto-cgraph.c: Likewise.
3480 * lto-section-in.c: Likewise.
3481 * lto-section-out.c: Likewise.
3482 * lto-streamer-in.c: Likewise.
3483 * lto-streamer-out.c: Likewise.
3484 * mode-switching.c: Likewise.
3485 * modulo-sched.c: Likewise.
3486 * omp-low.c: Likewise.
3487 * optabs.c: Likewise.
3488 * passes.c: Likewise.
3489 * postreload-gcse.c: Likewise.
3490 * postreload.c: Likewise.
3491 * predict.c: Likewise.
3492 * profile.c: Likewise.
3493 * recog.c: Likewise.
3495 * reg-stack.c: Likewise.
3496 * regcprop.c: Likewise.
3497 * reginfo.c: Likewise.
3498 * regrename.c: Likewise.
3499 * reload.c: Likewise.
3500 * reload1.c: Likewise.
3501 * reorg.c: Likewise.
3502 * resource.c: Likewise.
3503 * rtlanal.c: Likewise.
3504 * sched-deps.c: Likewise.
3505 * sched-ebb.c: Likewise.
3506 * sched-rgn.c: Likewise.
3507 * sel-sched-dump.c: Likewise.
3508 * sel-sched-ir.c: Likewise.
3509 * sel-sched.c: Likewise.
3510 * shrink-wrap.c: Likewise.
3511 * simplify-rtx.c: Likewise.
3512 * statistics.c: Likewise.
3514 * stor-layout.c: Likewise.
3515 * store-motion.c: Likewise.
3516 * symtab.c: Likewise.
3517 * targhooks.c: Likewise.
3518 * toplev.c: Likewise.
3519 * trans-mem.c: Likewise.
3520 * tree-cfg.c: Likewise.
3521 * tree-cfgcleanup.c: Likewise.
3522 * tree-dfa.c: Likewise.
3523 * tree-eh.c: Likewise.
3524 * tree-inline.c: Likewise.
3525 * tree-into-ssa.c: Likewise.
3526 * tree-nested.c: Likewise.
3527 * tree-nrv.c: Likewise.
3528 * tree-profile.c: Likewise.
3529 * tree-ssa-alias.c: Likewise.
3530 * tree-ssa-ccp.c: Likewise.
3531 * tree-ssa-copy.c: Likewise.
3532 * tree-ssa-copyrename.c: Likewise.
3533 * tree-ssa-dom.c: Likewise.
3534 * tree-ssa-operands.c: Likewise.
3535 * tree-ssa-propagate.c: Likewise.
3536 * tree-ssa-structalias.c: Likewise.
3537 * tree-ssa-tail-merge.c: Likewise.
3538 * tree-ssa-threadedge.c: Likewise.
3539 * tree-ssa-threadupdate.c: Likewise.
3540 * tree-ssa-uncprop.c: Likewise.
3541 * tree-ssa-uninit.c: Likewise.
3542 * tree-ssa.c: Likewise.
3543 * tree-stdarg.c: Likewise.
3544 * tree-tailcall.c: Likewise.
3547 * valtrack.c: Likewise.
3548 * varasm.c: Likewise.
3549 * vmsdbgout.c: Likewise.
3551 * config/aarch64/aarch64.c: Add flattened includes from function.h.
3552 * config/alpha/alpha.c: Likewise.
3553 * config/arc/arc.c: Likewise.
3554 * config/arm/arm.c: Likewise.
3555 * config/avr/avr-log.c: Likewise.
3556 * config/avr/avr.c: Likewise.
3557 * config/bfin/bfin.c: Likewise.
3558 * config/c6x/c6x.c: Likewise.
3559 * config/cr16/cr16.c: Likewise.
3560 * config/cris/cris.c: Likewise.
3561 * config/darwin.c: Likewise.
3562 * config/epiphany/epiphany.c: Likewise.
3563 * config/epiphany/mode-switch-use.c: Likewise.
3564 * config/epiphany/resolve-sw-modes.c: Likewise.
3565 * config/fr30/fr30.c: Likewise.
3566 * config/frv/frv.c: Likewise.
3567 * config/h8300/h8300.c: Likewise.
3568 * config/i386/i386.c: Likewise.
3569 * config/ia64/ia64.c: Likewise.
3570 * config/iq2000/iq2000.c: Likewise.
3571 * config/lm32/lm32.c: Likewise.
3572 * config/m32c/m32c.c: Likewise.
3573 * config/m32r/m32r.c: Likewise.
3574 * config/m68k/m68k.c: Likewise.
3575 * config/mcore/mcore.c: Likewise.
3576 * config/mep/mep-pragma.c: Likewise.
3577 * config/mep/mep.c: Likewise.
3578 * config/microblaze/microblaze.c: Likewise.
3579 * config/mips/mips.c: Likewise.
3580 * config/mmix/mmix.c: Likewise.
3581 * config/mn10300/mn10300.c: Likewise.
3582 * config/moxie/moxie.c: Likewise.
3583 * config/msp430/msp430.c: Likewise.
3584 * config/nds32/nds32-cost.c: Likewise.
3585 * config/nds32/nds32-fp-as-gp.c: Likewise.
3586 * config/nds32/nds32-intrinsic.c: Likewise.
3587 * config/nds32/nds32-isr.c: Likewise.
3588 * config/nds32/nds32-md-auxiliary.c: Likewise.
3589 * config/nds32/nds32-memory-manipulation.c: Likewise.
3590 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3591 * config/nds32/nds32-predicates.c: Likewise.
3592 * config/nds32/nds32.c: Likewise.
3593 * config/nios2/nios2.c: Likewise.
3594 * config/pa/pa.c: Likewise.
3595 * config/pdp11/pdp11.c: Likewise.
3596 * config/rl78/rl78.c: Likewise.
3597 * config/rs6000/rs6000.c: Likewise.
3598 * config/rx/rx.c: Likewise.
3599 * config/s390/s390.c: Likewise.
3600 * config/score/score.c: Likewise.
3601 * config/sh/sh.c: Likewise.
3602 * config/sparc/sparc.c: Likewise.
3603 * config/spu/spu.c: Likewise.
3604 * config/stormy16/stormy16.c: Likewise.
3605 * config/tilegx/tilegx.c: Likewise.
3606 * config/tilepro/tilepro.c: Likewise.
3607 * config/v850/v850.c: Likewise.
3608 * config/vax/vax.c: Likewise.
3609 * config/xtensa/xtensa.c: Likewise.
3611 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
3613 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
3614 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
3616 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
3618 * config/sh/sh-protos.h (fldi_ok): Remove.
3619 * config/sh/sh.c (fldi_ok): Likewise.
3620 (sh_secondary_reload): Don't use fldi_ok.
3621 * config/sh/constraints.md (G constraint, H constraint): Don't use
3624 2014-10-16 Martin Liska <mliska@suse.cz>
3626 * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
3627 Cast to unsigned long.
3628 (sem_item_optimizer::dump_cong_classes): Likewise.
3630 2014-10-16 Tom de Vries <tom@codesourcery.com>
3632 * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
3633 with SSA_NAME_IN_FREELIST.
3635 2014-10-16 Richard Biener <rguenther@suse.de>
3638 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
3639 (fold_builtin_strncat_chk): Move ...
3640 * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
3641 (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
3643 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
3646 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
3649 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
3650 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3651 Anna Tikhonova <anna.tikhonova@intel.com>
3652 Ilya Tocar <ilya.tocar@intel.com>
3653 Andrey Turetskiy <andrey.turetskiy@intel.com>
3654 Ilya Verbin <ilya.verbin@intel.com>
3655 Kirill Yukhin <kirill.yukhin@intel.com>
3656 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3658 * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
3661 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
3662 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3663 Anna Tikhonova <anna.tikhonova@intel.com>
3664 Ilya Tocar <ilya.tocar@intel.com>
3665 Andrey Turetskiy <andrey.turetskiy@intel.com>
3666 Ilya Verbin <ilya.verbin@intel.com>
3667 Kirill Yukhin <kirill.yukhin@intel.com>
3668 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3670 * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
3671 V16SI, V32HI, V64QI modes.
3673 2014-10-16 Oleg Endo <olegendo@gcc.gnu.org>
3676 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
3677 expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
3679 * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
3680 to match fp insn patterns.
3681 (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
3683 (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
3684 expand_df_unop, expand_df_binop): Remove.
3685 (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
3686 FPSCR_STAT_REG as not call clobbered.
3687 (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
3688 invoking fpscr_set_from_mem.
3690 * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
3691 (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
3693 (REGISTER_NAMES): Adjust.
3694 (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
3695 (FIRST_PSEUDO_REGISTER): Increase to 156.
3696 (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
3697 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
3699 (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
3700 FPSCR_MODES_REG and FPSCR_STAT_REG.
3701 (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
3703 * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
3704 FPSCR_SZ): Add new constants.
3705 (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
3707 (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
3708 (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
3709 Use TARGET_FPU_ANY condition.
3710 (fpu_switch peephole2): Remove.
3711 (fpu_switch split): Use simple_mem_operand to capture the mem and
3712 adjust split implementation.
3713 (extend_psi_si, truncate_si_psi): New insns.
3714 (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add
3715 set of FPSCR_MODES_REG.
3717 (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
3718 reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
3719 calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
3720 call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
3721 call_value_compact, call_value_compact_rettramp, call,
3722 call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
3723 sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
3724 sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
3725 sibcall_value_compact, sibcall_value, call_value_pop_compact,
3726 call_value_pop_compact_rettramp, various unnamed splits):
3727 Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_*
3730 (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
3731 (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
3732 (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
3733 (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
3734 (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
3736 (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
3737 *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
3738 cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
3739 subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
3740 cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
3741 truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
3742 and use of FPSCR_MODES_REG. Adjust gen_* function uses.
3744 2014-10-16 Martin Liska <mliska@suse.cz>
3745 Jan Hubicka <hubicka@ucw.cz>
3747 * Makefile.in: New object files included.
3748 * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
3750 (verify_edge_corresponds_to_fndecl): More sensitive verification
3751 of nodes that are merged by IPA ICF.
3752 * cgraph.h (cgraph_node::num_references): New function.
3753 * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
3754 * common.opt: New options ipa-icf, ipa-icf-functions and
3755 ipa-icf-variables introduced.
3756 * doc/invoke.texi: Documentation of new options introduced.
3757 * ipa-icf-gimple.c: New file.
3758 * ipa-icf-gimple.h: New file.
3759 * ipa-icf.c: New file.
3760 * ipa-icf.h: New file.
3761 * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
3762 (input_overwrite_node): Likewise.
3763 * lto-section-in.c: New icf section added.
3764 * lto-streamer.h (enum lto_section_type): Likewise.
3765 * opts.c (common_handle_option): New option added.
3766 * passes.def: New pass included.
3767 * timevar.def: Time variable for IPA ICF added.
3768 * tree-pass.h: New IPA ICF pass entry point added.
3770 2014-10-16 Richard Biener <rguenther@suse.de>
3772 PR tree-optimization/63168
3773 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
3774 latches if after merging they are no longer simple.
3775 * cfghooks.c (merge_blocks): Handle merging a latch block
3778 2014-10-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
3779 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3780 Anna Tikhonova <anna.tikhonova@intel.com>
3781 Ilya Tocar <ilya.tocar@intel.com>
3782 Andrey Turetskiy <andrey.turetskiy@intel.com>
3783 Ilya Verbin <ilya.verbin@intel.com>
3784 Kirill Yukhin <kirill.yukhin@intel.com>
3785 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3787 * config/i386/sse.md
3788 (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
3789 support AVX-512VL instructions.
3791 2014-10-16 DJ Delorie <dj@redhat.com>
3793 * tree-core.h: Fix comment to not assume pointers are multiples of
3796 2014-10-15 Tom Tromey <tromey@redhat.com>
3798 * timevar.h (class auto_timevar): New class.
3800 2014-10-15 Uros Bizjak <ubizjak@gmail.com>
3803 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
3804 Remove the second alternative.
3805 (regprefix): Remove mode attribute.
3806 (atomic_compare_and_swap<mode>): Do not fixup operand 2.
3807 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
3810 2013-11-05 Ian Lance Taylor <iant@google.com>
3812 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
3813 If possible, add .cfi directives to record change to bx.
3814 * config/i386/i386.c (ix86_emit_cfi): New function.
3815 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
3817 2014-10-15 Jan Hubicka <hubicka@ucw.cz>
3820 * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
3822 * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
3825 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
3827 PR rtl-optimization/63448
3828 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
3829 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
3830 (LRA_MAX_INHERITANCE_PASSES): Use it.
3831 (lra_constraint_iter_after_spill): Remove.
3832 (lra_assignment_iter): New.
3833 (lra_assignment_iter_after_spill): New.
3834 * lra-assigns.c (lra_assignment_iter): New.
3835 (lra_assignment_iter_after_spill): New.
3836 (former_reload_pseudo_spill_p): New.
3837 (spill_for): Set up former_reload_pseudo_spill_p.
3838 (setup_live_pseudos_and_spill_after_risky): Ditto.
3839 (assign_by_spills): Ditto.
3840 (lra_assign): Increment lra_assignment_iter. Print the iteration
3841 number. Reset former_reload_pseudo_spill_p. Check
3842 lra_assignment_iter_after_spill.
3843 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
3844 lra_assignment_iter and lra_assignment_iter_after_spill.
3845 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
3846 (lra_constraints): Remove code with
3847 lra_assignment_iter_after_spill.
3849 2014-10-15 Teresa Johnson <tejohnson@google.com>
3852 * tree-ssa-threadupdate.c (recompute_probabilities): Better
3855 2014-10-15 Renlin Li <renlin.li@arm.com>
3857 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
3858 __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
3859 __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
3860 __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
3862 2014-10-15 Richard Biener <rguenther@suse.de>
3864 * gimple-fold.c (gimple_fold_call): Properly keep virtual
3865 SSA form up-to-date when devirtualizing a call to
3866 __builtin_unreachable and avoid fixing up EH info here.
3868 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
3869 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3870 Anna Tikhonova <anna.tikhonova@intel.com>
3871 Ilya Tocar <ilya.tocar@intel.com>
3872 Andrey Turetskiy <andrey.turetskiy@intel.com>
3873 Ilya Verbin <ilya.verbin@intel.com>
3874 Kirill Yukhin <kirill.yukhin@intel.com>
3875 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3877 * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
3878 to support AVX-512BW.
3879 (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
3880 (define_expand "<plusminus_insn><mode>3"): Remove masking support.
3881 (define_insn "*<plusminus_insn><mode>3"): Ditto.
3882 (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
3883 (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
3884 (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
3885 (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
3886 (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
3887 (define_insn "*andnot<mode>3"): Ditto.
3888 (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
3889 (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
3890 (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
3891 (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
3892 (define_insn "*abs<mode>2"): Remove masking support.
3893 (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
3894 (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
3895 (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
3897 2014-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
3898 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3899 Anna Tikhonova <anna.tikhonova@intel.com>
3900 Ilya Tocar <ilya.tocar@intel.com>
3901 Andrey Turetskiy <andrey.turetskiy@intel.com>
3902 Ilya Verbin <ilya.verbin@intel.com>
3903 Kirill Yukhin <kirill.yukhin@intel.com>
3904 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3906 * config/i386/predicates.md (define_predicate "constm1_operand"): New.
3907 * config/i386/sse.md
3908 (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
3909 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
3910 (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
3911 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
3912 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
3913 (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
3914 (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
3916 2014-10-15 Renlin Li <renlin.li@arm.com>
3918 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
3920 2014-10-15 Jakub Jelinek <jakub@redhat.com>
3922 * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
3923 MINUS_EXPR in unsigned type to avoid undefined behavior.
3925 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
3927 * stor-layout.c (self_referential_size): Do not promote arguments.
3929 2014-10-15 Marek Polacek <polacek@redhat.com>
3931 * doc/invoke.texi: Update to reflect that GNU11 is the default
3933 * c-common.h (c_language_kind): Update comment.
3935 2014-10-15 Richard Biener <rguenther@suse.de>
3937 * hash-table.c: Include bconfig.h if building for the host.
3938 * hash-table.h: Do not include ggc.h on the host but just declare
3939 a few ggc allocation templates.
3941 2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com>
3942 Jeff Law <law@redhat.com>
3944 * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
3945 multiple hard registers, use smaller mode derived from MODE.
3947 2014-10-15 Andreas Schwab <schwab@suse.de>
3949 * explow.c (convert_memory_address_addr_space_1): Mark in_const
3950 as ATTRIBUTE_UNUSED.
3952 2014-10-14 Jan Hubicka <hubicka@ucw.cz>
3954 * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
3955 (decide_unrolling): ... this one.
3956 (peel_loops_completely): Remove.
3957 (decide_peel_simple): Remove.
3958 (decide_peel_once_rolling): Remove.
3959 (decide_peel_completely): Remove.
3960 (peel_loop_simple): Remove.
3961 (peel_loop_completely): Remove.
3962 (unroll_and_peel_loops): Rename to ...
3963 (unroll_loops): ... this one; handle only unrolling.
3964 * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
3967 (unroll_and_peel_loops): Remove.
3968 (unroll_loops): New.
3969 * passes.def: Replace
3970 pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
3971 * loop-init.c (gate_rtl_unroll_and_peel_loops,
3972 rtl_unroll_and_peel_loops): Rename to ...
3973 (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
3974 (pass_rtl_unroll_and_peel_loops): Rename to ...
3975 (pass_rtl_unroll_loops): ... this one.
3976 * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
3977 (make_pass_rtl_unroll_loops): New.
3978 * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
3979 (canonicalize_loop_induction_variables): Update.
3981 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
3983 * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
3984 * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
3985 !TARGET_HARD_FLOAT_POSTINC.
3986 (*lsip, *ssip): new instructions.
3988 2014-10-14 Max Filippov <jcmvbkbc@gmail.com>
3990 * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
3993 2014-10-14 Andrew Pinski <apinski@cavium.com>
3995 * explow.c (convert_memory_address_addr_space): Rename to ...
3996 (convert_memory_address_addr_space_1): This. Add in_const argument.
3997 Inside a CONST RTL, permute the conversion and addition of constant
3998 for zero and sign extended pointers.
3999 (convert_memory_address_addr_space): New function.
4001 2014-10-14 Andrew Pinski <apinski@cavium.com>
4004 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
4007 * explow.c (convert_memory_address_addr_space): Also permute the
4008 conversion and addition of constant for zero-extend.
4010 2014-10-14 DJ Delorie <dj@redhat.com>
4012 * config/msp430/msp430-modes.def (PSI): Add.
4014 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
4015 (msp430_hard_regno_nregs_with_padding): New.
4016 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
4017 (msp430_hard_regno_nregs_has_padding): New.
4018 (msp430_hard_regno_nregs_with_padding): New.
4019 (msp430_unwind_word_mode): Use PSImode instead of SImode.
4020 (msp430_addr_space_legitimate_address_p): New.
4021 (msp430_asm_integer): New.
4022 (msp430_init_dwarf_reg_sizes_extra): New.
4023 (msp430_print_operand): Use X suffix for PSImode even in small model.
4024 * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
4025 (PTR_SIZE): ...but 4 bytes for EH.
4026 (SIZE_TYPE): Use __int20.
4027 (PTRDIFF_TYPE): Likewise.
4028 (INCOMING_FRAME_SP_OFFSET): Adjust.
4029 * config/msp430/msp430.md (movqi_topbyte): New.
4030 (movpsi): Use fixed suffixes.
4031 (movsipsi2): Enable for 430X, not large model.
4032 (extendhipsi2): Likewise.
4033 (zero_extendhisi2): Likewise.
4034 (zero_extendhisipsi2): Likewise.
4035 (extend_and_shift1_hipsi2): Likewise.
4036 (extendpsisi2): Likewise.
4037 (*bitbranch<mode>4_z): Fix suffix logic.
4039 2014-10-14 Eric Botcazou <ebotcazou@adacore.com>
4042 * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
4043 do not choke on null node.
4044 <VAR_DECL>: Likewise.
4046 2014-10-14 DJ Delorie <dj@redhat.com>
4048 * machmode.h (int_n_data_t): New.
4049 (int_n_enabled_p): New.
4051 * tree.c (int_n_enabled_p): New.
4053 (make_or_reuse_type): Check for all __intN types, not just
4055 (build_common_tree_nodes): Likewise. Also fill in integer_typs[]
4057 * tree.h (int128_integer_type_node): Remove.
4058 (int128_unsigned_type_node): Remove.
4059 (int_n_trees_t): New.
4060 (int_n_enabled_p): New.
4062 * toplev.c (standard_type_bitsize): New.
4063 (do_compile): Check which __intN types are enabled for the current
4065 * builtin-types.def (BT_INT128): Remove.
4066 (BT_UINT128): Remove.
4067 * machmode.def: Add macro to create __int128 for all targets.
4068 * stor-layout.c (mode_for_size): Support __intN types.
4069 (smallest_mode_for_size): Likewise.
4070 (initialize_sizetypes): Support __intN types.
4071 * genmodes.c (struct mode_data): Add int_n field.
4072 (blank_mode): Likewise.
4075 (emit_insn_modes_h): Count __intN entries and define
4077 (emit_mode_int_n): New.
4078 (emit_insn_modes_c): Call it.
4079 * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
4080 types, not just __int128.
4081 * tree-core.h (integer_type_kind): Remove __int128-specific
4082 entries, reserve spots for __intN entries.
4084 * config/msp430/msp430-modes.def (PSI): Add.
4086 2014-10-14 Kito Cheng <kito@0xlab.org>
4088 * ira.c: Fix typo in comment.
4090 * ira-build.c: Ditto.
4091 * ira-color.c: Ditto.
4092 * ira-emit.c: Ditto.
4094 * ira-lives.c: Ditto.
4096 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
4098 PR rtl-optimization/63475
4099 * alias.c (true_dependence_1): Always use get_addr to extract
4100 true address operands from x_addr and mem_addr. Use extracted
4101 address operands to check for references with alignment ANDs.
4102 Use extracted address operands with find_base_term and
4103 base_alias_check. For noncanonicalized operands call canon_rtx with
4104 extracted address operand.
4105 (write_dependence_1): Ditto.
4106 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
4108 2014-10-14 Evgeny Stupachenko <evstupac@gmail.com>
4111 * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
4114 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4115 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4116 Anna Tikhonova <anna.tikhonova@intel.com>
4117 Ilya Tocar <ilya.tocar@intel.com>
4118 Andrey Turetskiy <andrey.turetskiy@intel.com>
4119 Ilya Verbin <ilya.verbin@intel.com>
4120 Kirill Yukhin <kirill.yukhin@intel.com>
4121 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4123 * config/i386/i386.c
4124 (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
4125 (ix86_expand_int_vcond): Ditto.
4127 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4128 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4129 Anna Tikhonova <anna.tikhonova@intel.com>
4130 Ilya Tocar <ilya.tocar@intel.com>
4131 Andrey Turetskiy <andrey.turetskiy@intel.com>
4132 Ilya Verbin <ilya.verbin@intel.com>
4133 Kirill Yukhin <kirill.yukhin@intel.com>
4134 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4136 * config/i386/i386.c
4137 (emit_reduc_half): Handle V64QI and V32HI mode.
4138 * config/i386/sse.md
4139 (define_mode_iterator VI_AVX512BW): New.
4140 (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
4142 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4143 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4144 Anna Tikhonova <anna.tikhonova@intel.com>
4145 Ilya Tocar <ilya.tocar@intel.com>
4146 Andrey Turetskiy <andrey.turetskiy@intel.com>
4147 Ilya Verbin <ilya.verbin@intel.com>
4148 Kirill Yukhin <kirill.yukhin@intel.com>
4149 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4151 * config/i386/sse.md
4152 (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
4154 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4155 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4156 Anna Tikhonova <anna.tikhonova@intel.com>
4157 Ilya Tocar <ilya.tocar@intel.com>
4158 Andrey Turetskiy <andrey.turetskiy@intel.com>
4159 Ilya Verbin <ilya.verbin@intel.com>
4160 Kirill Yukhin <kirill.yukhin@intel.com>
4161 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4163 * config/i386/i386.c
4164 (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
4165 * config/i386/sse.md
4166 (define_mode_iterator VI): Add V64QI and V32HI modes.
4168 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4169 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4170 Anna Tikhonova <anna.tikhonova@intel.com>
4171 Ilya Tocar <ilya.tocar@intel.com>
4172 Andrey Turetskiy <andrey.turetskiy@intel.com>
4173 Ilya Verbin <ilya.verbin@intel.com>
4174 Kirill Yukhin <kirill.yukhin@intel.com>
4175 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4177 * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
4179 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4180 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4181 Anna Tikhonova <anna.tikhonova@intel.com>
4182 Ilya Tocar <ilya.tocar@intel.com>
4183 Andrey Turetskiy <andrey.turetskiy@intel.com>
4184 Ilya Verbin <ilya.verbin@intel.com>
4185 Kirill Yukhin <kirill.yukhin@intel.com>
4186 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4188 * config/i386/sse.md
4189 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
4190 (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
4192 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4193 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4194 Anna Tikhonova <anna.tikhonova@intel.com>
4195 Ilya Tocar <ilya.tocar@intel.com>
4196 Andrey Turetskiy <andrey.turetskiy@intel.com>
4197 Ilya Verbin <ilya.verbin@intel.com>
4198 Kirill Yukhin <kirill.yukhin@intel.com>
4199 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4201 * config/i386/sse.md
4202 (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
4203 (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
4205 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4206 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4207 Anna Tikhonova <anna.tikhonova@intel.com>
4208 Ilya Tocar <ilya.tocar@intel.com>
4209 Andrey Turetskiy <andrey.turetskiy@intel.com>
4210 Ilya Verbin <ilya.verbin@intel.com>
4211 Kirill Yukhin <kirill.yukhin@intel.com>
4212 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4214 * config/i386/sse.md
4215 (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
4216 (define_mode_iterator VI2_AVX2): Add V32HI mode.
4217 (define_expand "mul<mode>3<mask_name>"): Add masking.
4218 (define_insn "*mul<mode>3<mask_name>"): Ditto.
4219 (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
4220 (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
4221 (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
4222 (define_mode_attr SDOT_PMADD_SUF): Ditto.
4223 (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
4224 (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
4225 (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
4226 (define_insn "avx2_packusdw"): Delete.
4227 (define_insn "sse4_1_packusdw"): Ditto.
4228 (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
4230 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4231 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4232 Anna Tikhonova <anna.tikhonova@intel.com>
4233 Ilya Tocar <ilya.tocar@intel.com>
4234 Andrey Turetskiy <andrey.turetskiy@intel.com>
4235 Ilya Verbin <ilya.verbin@intel.com>
4236 Kirill Yukhin <kirill.yukhin@intel.com>
4237 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4239 * config/i386/sse.md
4240 (define_insn "vec_dup<mode>"): Update constraints.
4242 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4243 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4244 Anna Tikhonova <anna.tikhonova@intel.com>
4245 Ilya Tocar <ilya.tocar@intel.com>
4246 Andrey Turetskiy <andrey.turetskiy@intel.com>
4247 Ilya Verbin <ilya.verbin@intel.com>
4248 Kirill Yukhin <kirill.yukhin@intel.com>
4249 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4251 * config/i386/sse.md
4252 (define_mode_iterator SSESCALARMODE): Add V4TI mode.
4253 (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
4254 (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
4256 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4257 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4258 Anna Tikhonova <anna.tikhonova@intel.com>
4259 Ilya Tocar <ilya.tocar@intel.com>
4260 Andrey Turetskiy <andrey.turetskiy@intel.com>
4261 Ilya Verbin <ilya.verbin@intel.com>
4262 Kirill Yukhin <kirill.yukhin@intel.com>
4263 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4265 * config/i386/sse.md
4266 (define_expand "mul<mode>3<mask_name>"): Add masking.
4268 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4269 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4270 Anna Tikhonova <anna.tikhonova@intel.com>
4271 Ilya Tocar <ilya.tocar@intel.com>
4272 Andrey Turetskiy <andrey.turetskiy@intel.com>
4273 Ilya Verbin <ilya.verbin@intel.com>
4274 Kirill Yukhin <kirill.yukhin@intel.com>
4275 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4277 * config/i386/sse.md
4278 (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
4279 (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
4281 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4282 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4283 Anna Tikhonova <anna.tikhonova@intel.com>
4284 Ilya Tocar <ilya.tocar@intel.com>
4285 Andrey Turetskiy <andrey.turetskiy@intel.com>
4286 Ilya Verbin <ilya.verbin@intel.com>
4287 Kirill Yukhin <kirill.yukhin@intel.com>
4288 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4290 * config/i386/sse.md
4291 (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
4292 (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
4293 (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
4296 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4297 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4298 Anna Tikhonova <anna.tikhonova@intel.com>
4299 Ilya Tocar <ilya.tocar@intel.com>
4300 Andrey Turetskiy <andrey.turetskiy@intel.com>
4301 Ilya Verbin <ilya.verbin@intel.com>
4302 Kirill Yukhin <kirill.yukhin@intel.com>
4303 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4305 * config/i386/sse.md
4306 (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
4307 use VF_128_256 mode iterator and update assembler emit code.
4308 (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
4309 (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
4310 Add masking, use VF_128_256 mode iterator.
4311 (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
4312 (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
4313 Add masking, use VF_128_256 mode iterator and update assembler emit
4315 (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
4316 (define_mode_attr avx512flogicsuff): Delete.
4317 (define_insn "avx512f_<logic><mode>"): Ditto.
4318 (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
4320 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
4322 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4323 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4324 Anna Tikhonova <anna.tikhonova@intel.com>
4325 Ilya Tocar <ilya.tocar@intel.com>
4326 Andrey Turetskiy <andrey.turetskiy@intel.com>
4327 Ilya Verbin <ilya.verbin@intel.com>
4328 Kirill Yukhin <kirill.yukhin@intel.com>
4329 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4331 * config/i386/sse.md
4332 (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
4333 (define_expand "vashr<mode>3<mask_name>"): Add masking,
4334 use VI12_128 mode iterator.
4335 (define_expand "ashrv2di3<mask_name>"): New.
4337 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4338 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4339 Anna Tikhonova <anna.tikhonova@intel.com>
4340 Ilya Tocar <ilya.tocar@intel.com>
4341 Andrey Turetskiy <andrey.turetskiy@intel.com>
4342 Ilya Verbin <ilya.verbin@intel.com>
4343 Kirill Yukhin <kirill.yukhin@intel.com>
4344 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4346 * config/i386/i386.c
4347 (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
4348 CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
4349 CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
4350 CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
4351 CODE_FOR_avx512vl_ucmpv4si3_mask.
4352 * config/i386/sse.md
4353 (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
4354 "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
4356 "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
4357 (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
4358 (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
4359 (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
4360 (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
4361 (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
4363 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4364 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4365 Anna Tikhonova <anna.tikhonova@intel.com>
4366 Ilya Tocar <ilya.tocar@intel.com>
4367 Andrey Turetskiy <andrey.turetskiy@intel.com>
4368 Ilya Verbin <ilya.verbin@intel.com>
4369 Kirill Yukhin <kirill.yukhin@intel.com>
4370 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4372 * config/i386/sse.md
4373 (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
4374 (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
4375 (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
4376 (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
4377 (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
4378 (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
4379 (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
4380 (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
4381 (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
4383 2014-10-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
4384 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4385 Anna Tikhonova <anna.tikhonova@intel.com>
4386 Ilya Tocar <ilya.tocar@intel.com>
4387 Andrey Turetskiy <andrey.turetskiy@intel.com>
4388 Ilya Verbin <ilya.verbin@intel.com>
4389 Kirill Yukhin <kirill.yukhin@intel.com>
4390 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4392 * config/i386/sse.md
4393 (define_insn "avx512f_blendm<mode>"): Delete.
4394 (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
4395 (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
4396 (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
4397 V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
4399 "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
4402 "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
4405 "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
4407 (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
4408 (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
4409 (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
4410 (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
4413 "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
4416 "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
4418 (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
4421 "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
4424 "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
4427 2014-10-14 Richard Biener <rguenther@suse.de>
4429 PR tree-optimization/63512
4430 * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
4433 2014-10-14 Oleg Endo <olegendo@gcc.gnu.org>
4436 * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
4437 abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute. Remove use
4439 (negsf2_i): Rename to *negsf2_i.
4440 (abssf2_i): Rename to *abssf2_i.
4441 (negdf2_i): Rename to *negdf2_i.
4442 (absdf2_i): Rename to *absdf2_i.
4444 2014-10-14 Felix Yang <felix.yang@huawei.com>
4445 Jeff Law <law@redhat.com>
4447 * ira.c (struct equivalence): Change member "is_arg_equivalence" and
4448 "replace" into boolean bitfields; turn member "loop_depth" into a short
4449 integer; add new member "no_equiv" and "reserved".
4450 (no_equiv): Set no_equiv of struct equivalence if register is marked
4451 as having no known equivalence.
4452 (update_equiv_regs): Check all definitions for a multiple-set
4453 register to make sure that the RHS have the same value.
4455 2014-10-13 Richard Henderson <rth@redhat.com>
4457 * combine-stack-adj.c (no_unhandled_cfa): New.
4458 (maybe_merge_cfa_adjust): New.
4459 (combine_stack_adjustments_for_block): Use them.
4461 2014-10-13 Aldy Hernandez <aldyh@redhat.com>
4463 * Makefile.in (TAGS): Tag ../include files.
4465 2014-10-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4467 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
4468 to rs6000_dbx_register_number.
4469 (DWARF_FRAME_REGNUM): Redefine as identity map.
4470 (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
4471 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
4472 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
4473 argument to handle .debug_frame and .eh_frame directly. Always
4474 translate SPE high register numbers. Add special treatment for CR,
4475 but only in .debug_frame. Respect RS6000_USE_DWARF_NUMBERING.
4477 * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
4478 * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
4479 (RS6000_USE_DWARF_NUMBERING): Define.
4480 * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
4481 (RS6000_USE_DWARF_NUMBERING): Define.
4482 * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
4483 (RS6000_USE_DWARF_NUMBERING): Define.
4484 * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
4485 (RS6000_USE_DWARF_NUMBERING): Define.
4486 * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
4487 * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
4489 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
4491 * config/i386/i386.c (ix86_address_cost): Lower cost for
4492 when address contains GOT register.
4494 2014-10-13 Ilya Enkovich <ilya.enkovich@intel.com>
4495 Vladimir Makarov <vmakarov@redhat.com>
4499 PR rtl-optimization/55458
4500 * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
4501 (ix86_init_pic_reg): New.
4502 (ix86_select_alt_pic_regnum): Add check on pseudo register.
4503 (ix86_save_reg): Likewise.
4504 (ix86_expand_prologue): Remove PIC register initialization
4505 now performed in ix86_init_pic_reg.
4506 (ix86_output_function_epilogue): Add check on pseudo register.
4507 (set_pic_reg_ever_alive): New.
4508 (legitimize_pic_address): Replace df_set_regs_ever_live with new
4509 set_pic_reg_ever_alive.
4510 (legitimize_tls_address): Likewise.
4511 (ix86_pic_register_p): New check.
4512 (ix86_delegitimize_address): Add check on pseudo register.
4513 (ix86_expand_call): Insert move from pseudo PIC register to ABI
4514 defined REAL_PIC_OFFSET_TABLE_REGNUM.
4515 (TARGET_INIT_PIC_REG): New.
4516 (TARGET_USE_PSEUDO_PIC_REG): New.
4517 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
4518 if pic_offset_table_rtx exists.
4519 * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
4521 * doc/tm.texi: Regenerate.
4522 * function.c (assign_parms): Generate pseudo register for PIC.
4523 * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
4525 * ira-color.c (color_pass): Add check on pseudo register.
4526 * ira-emit.c (change_loop): Don't create copies for PIC pseudo
4528 * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
4530 (ira): Add target specific PIC register initialization.
4531 (do_reload): Keep PIC pseudo register.
4532 * lra-assigns.c (spill_for): Add checks on pseudo register.
4533 * lra-constraints.c (contains_symbol_ref_p): New.
4534 (lra_constraints): Enable lra risky transformations when PIC is pseudo
4536 * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
4537 * target.def (use_pseudo_pic_reg): New.
4538 (init_pic_reg): New.
4540 2014-10-13 Evgeny Stupachenko <evstupac@gmail.com>
4542 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
4543 Remove m_SILVERMONT and m_INTEL from the tune.
4545 2014-10-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4548 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
4549 when _HPUX_SOURCE is defined.
4551 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
4553 PR tree-optimization/62127
4554 * tree.c (remap_type_1): When remapping array, remap
4557 2014-10-13 Christophe Lyon <christophe.lyon@linaro.org>
4559 * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
4560 longer impact parallelization.
4562 2014-10-13 Jan Hubicka <hubicka@ucw.cz>
4565 * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
4567 2014-10-13 Marat Zakirov <m.zakirov@samsung.com>
4569 * asan.c (instrument_derefs): BIT_FIELD_REF added.
4571 2014-10-13 Richard Biener <rguenther@suse.de>
4573 PR tree-optimization/63419
4574 * gimple-fold.h (gimple_convert): New function.
4575 * gimple-fold.c (gimple_convert): Likewise.
4576 * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
4577 to split out required conversions early.
4579 2014-10-13 Richard Sandiford <richard.sandiford@arm.com>
4581 * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
4582 Add the parts of an insn in reverse order, with the pattern at
4583 the top of the queue. Detect when we're iterating over a SEQUENCE
4584 pattern and in that case just consider patterns of subinstructions.
4586 2014-10-12 Oleg Endo <olegendo@gcc.gnu.org>
4589 * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
4591 * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
4593 (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
4594 address. Use def chains to handle GBR clobbering call insns.
4596 2014-10-12 Trevor Saunders <tsaunders@mozilla.com>
4598 * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
4599 config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
4600 config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
4601 function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
4602 output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
4603 tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
4604 * doc/gty.texi (for_user): Document new option.
4605 * gengtype.c (create_user_defined_type): Don't try to get a struct for
4607 (walk_type): Don't error out on for_user option.
4608 (write_func_for_structure): Emit user marking routines if requested by
4610 (write_local_func_for_structure): Likewise.
4611 (main): Mark types with for_user option as used.
4612 * ggc.h (gt_pch_nx): Add overload for unsigned int.
4613 * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
4614 * hash-table.h (ggc_hasher): New struct.
4615 (hash_table::create_ggc): New function.
4616 (gt_pch_nx): New overload for hash_table.
4618 2014-10-11 Oleg Endo <olegendo@gcc.gnu.org>
4620 * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
4621 * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
4622 * config/sh/sh.c: Likewise.
4623 * config/sh/sh-mem.cc: Likewise.
4624 * config/sh/sh.md: Likewise.
4625 * config/sh/predicates.md: Likewise.
4626 * config/sh/sync.md: Likewise.
4628 2014-10-11 Martin Liska <mliska@suse.cz>
4631 * cgraphunit.c (symbol_table::process_new_functions): Missing call
4632 for call_cgraph_insertion_hooks added.
4634 2014-10-10 Jakub Jelinek <jakub@redhat.com>
4637 * stor-layout.c (min_align_of_type): Don't decrease alignment
4638 through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
4639 TYPE_USER_ALIGN is set.
4641 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
4643 PR rtl-optimization/63483
4644 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
4645 references when alignment ANDs are involved.
4646 (write_dependence_p): Ditto.
4647 (may_alias_p): Ditto.
4649 2014-10-10 Marek Polacek <polacek@redhat.com>
4651 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
4652 * doc/invoke.texi: Document -fsanitize=object-size.
4653 * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
4654 or it into SANITIZE_UNDEFINED.
4655 * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
4656 * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
4657 * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
4658 * opts.c (common_handle_option): Handle -fsanitize=object-size.
4659 * ubsan.c: Include tree-object-size.h.
4660 (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
4661 (ubsan_expand_bounds_ifn): Use false instead of 0.
4662 (ubsan_expand_objsize_ifn): New function.
4663 (instrument_object_size): New function.
4664 (pass_ubsan::execute): Add object size instrumentation.
4665 * ubsan.h (ubsan_expand_objsize_ifn): Declare.
4667 2014-10-10 Richard Henderson <rth@redhat.com>
4670 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
4671 Restrict the set of expressions we're willing to move.
4673 2014-10-10 Jeff Law <law@redhat.com>
4675 * ira.c (struct equivalence): Promote INIT_INSNs field to
4676 an rtx_insn_list. Add comments.
4677 (no_equiv): Promote LIST to an rtx_insn_list. Update
4678 testing for and creating the special marker. Use methods
4679 to extract the insn and next pointers. Promote INSN to an
4681 (update_equiv_regs): Update test for special marker in the
4684 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4686 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
4687 * configure: Regenerate.
4688 * config/aarch64/aarch64.c (aarch64_override_options): Handle
4689 TARGET_FIX_ERR_A53_835769_DEFAULT.
4690 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
4692 * doc/install.texi (aarch64*-*-*): Document
4693 new --enable-fix-cortex-a53-835769 option.
4695 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4696 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4698 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
4699 (ADJUST_INSN_LENGTH): Define.
4700 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
4701 * config/aarch64/aarch64.c (is_mem_p): New function.
4702 (is_memory_op): Likewise.
4703 (aarch64_prev_real_insn): Likewise.
4704 (is_madd_op): Likewise.
4705 (dep_between_memop_and_curr): Likewise.
4706 (aarch64_madd_needs_nop): Likewise.
4707 (aarch64_final_prescan_insn): Likewise.
4708 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
4709 and -mno-fix-cortex-a53-835769 options.
4711 2014-10-10 Jakub Jelinek <jakub@redhat.com>
4713 PR tree-optimization/63464
4714 * tree-switch-conversion.c (struct case_bit_test): Remove
4715 hi and lo fields, add wide_int mask field.
4716 (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
4717 hi/lo fields into wide_int mask operations, optimize by pretending
4718 minval to be 0 if maxval is small enough.
4719 (process_switch): Adjust caller.
4721 2014-10-10 Richard Biener <rguenther@suse.de>
4723 PR tree-optimization/63379
4724 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
4725 a neutral operand for min/max when it is not a reduction chain.
4727 2014-10-10 Richard Biener <rguenther@suse.de>
4729 PR tree-optimization/63476
4730 * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
4731 (BB_LIVE_VOP_ON_EXIT): New define.
4732 (create_expression_by_pieces): Assign VUSEs to stmts.
4733 (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
4734 (pass_pre::execute): Assert virtual SSA form is up-to-date
4737 2014-10-10 Eric Botcazou <ebotcazou@adacore.com>
4739 * lra-assigns.c (assign_by_spills): Error out on spill failure.
4741 2014-10-09 Markus Trippelsdorf <markus@trippelsdorf.de>
4743 * pa-polymorphic-call.c (check_stmt_for_type_change): Move
4746 2014-10-09 Richard Biener <rguenther@suse.de>
4748 PR tree-optimization/63380
4749 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
4752 2014-10-09 Joern Rennecke <joern.rennecke@embecosm.com>
4754 * config/avr/avr.opt (mmcu=): Change to have a string value.
4755 (mn-flash=, mskip-bug, march=, mrmw): New options.
4756 (HeaderInclude): New.
4757 (mmcu=): Remove Var / Init clauses.
4758 * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
4760 (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
4761 (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
4762 (SYMBOL_FLAG_IO_LOW): Define.
4763 (avr_device_to_as, avr_device_to_ld): Don't declare.
4764 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
4765 (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
4766 (EXTRA_SPEC_FUNCTIONS): Don't define.
4767 (ASM_SPEC): Translate -arch= option to -mmcu= option.
4768 (LINK_SPEC): Translate -arch= option to -m= option.
4769 Don't use device_to_ld / device_to_data_start.
4770 (STARTFILE_SPEC): Now empty.
4771 (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
4772 * config/avr/gen-avr-mmcu-specs.c: New file.
4773 * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
4774 (s-device-specs): Likewise.
4775 (GCC_PASSES): Add s-device-specs.
4776 (install-driver): Depend on install-device-specs.
4777 (install-device-specs): New rule.
4778 * config/avr/avr.c (avr_option_override): Look up mcu arch by
4779 avr_arch_index and provide fallback initialization for avr_n_flash.
4780 (varasm.h): #include.
4781 (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
4782 (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
4783 (avr_attribute_table): Add "io", "address" and "io_low".
4784 (avr_asm_output_aligned_decl_common): Change type of decl to tree.
4785 Add special handling for symbols with "io" and/or "address" attributes.
4786 (avr_asm_asm_output_aligned_bss): New function.
4787 (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
4788 as appropriate. Handle io_low attribute.
4789 (avr_out_sbxx_branch): Handle symbolic io addresses.
4790 (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
4791 avr_n_flash instead of avr_current_device->n_flash.
4792 (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
4793 (avr_emit_movmemhi): Likewise.
4794 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
4795 Use TARGET_RMW instead of avr_current_device->dev_attributes.
4796 Don't define avr_current_device->macro (that's the specfile's job).
4797 Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
4798 * config/avr/avr.c (avr_2word_insn_p): Likewise.
4799 * config/avr/avr.md (*cpse.ne): Likewise.
4800 (mov<mode>): Use avr_eval_addr_attrib.
4801 (cbi): Change constraint for low_io_address_operand operand to "i".
4802 (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
4803 * config/avr/predicates.md (io_address_operand):
4804 Allow SYMBOL_REF with SYMBOL_FLAG_IO.
4805 (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
4806 * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
4808 (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
4809 * config/avr/genmultilib.awk: Use -march=.
4810 Remove Multilib matches processing.
4811 * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
4812 * config/avr/avr-arch.h: Add double include guard.
4813 (avr_mcu_t) <library_name>: Update comment.
4814 * config/avr/driver-avr.c (avr_device_to_as): Delete.
4815 (avr_device_to_ld, avr_device_to_data_start): Likewise.
4816 (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
4817 (avr_device_to_sp8): Likewise.
4818 * config/avr/genopt.sh: Instead avr_mcu, emit an Enum for avr_arch.
4820 * doc/extend.texi (io, address): Document new AVR variable attributes.
4823 2014-10-09 Marek Polacek <polacek@redhat.com>
4825 * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
4827 2014-10-08 Richard Biener <rguenther@suse.de>
4829 PR tree-optimization/61969
4830 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
4833 2014-10-09 Richard Biener <rguenther@suse.de>
4835 PR tree-optimization/63445
4836 * tree-vrp.c (simplify_cond_using_ranges): Only warn about
4837 overflow for non-equality compares.
4839 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
4841 PR rtl-optimization/57003
4842 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
4843 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
4844 killing regs_invalidated_by_call.
4846 2014-10-08 Teresa Johnson <tejohnson@google.com>
4849 * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
4850 (ssa_fix_duplicate_block_edges): Invoke it.
4851 (mark_threaded_blocks): Make two passes to avoid ordering dependences.
4853 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
4856 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
4857 atomic_fetch_<fetchop_name>si_hard,
4858 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
4859 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
4860 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
4861 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
4863 2014-10-08 Rong Xu <xur@google.com>
4865 * gcov-tool.c (profile_overlap): New driver function
4866 to compute profile overlap.
4867 (print_overlap_usage_message): New.
4868 (overlap_usage): New.
4870 (print_usage): Add calls to overlap function.
4872 * doc/gcov-tool.texi: Add documentation.
4874 2014-10-08 Steve Ellcey <sellcey@mips.com>
4876 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
4877 LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
4879 2014-10-08 Jan Hubicka <hubicka@ucw.cz>
4881 * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
4882 pattern matching of MEM_REF.
4883 (check_stmt_for_type_change): Update.
4885 2014-10-08 Steve Ellcey <sellcey@mips.com>
4887 * config/mips/linux64.h: Remove.
4888 * config/mips/gnu-user64.h: Remove.
4889 * gcc.config (mips*-*-*): Remove references to linux64.h and
4891 * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
4892 with modified version from gnu-user64.h.
4893 (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
4894 (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
4895 * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
4897 (GNU_USER_LINK_EMULATION64): Ditto.
4898 (GNU_USER_LINK_EMULATIONN32): Ditto.
4899 (GLIBC_DYNAMIC_LINKER32): Ditto.
4900 (GLIBC_DYNAMIC_LINKER64): Ditto.
4901 (GLIBC_DYNAMIC_LINKERN32): Ditto.
4902 (UCLIBC_DYNAMIC_LINKER32): Ditto.
4903 (UCLIBC_DYNAMIC_LINKER64): Ditto.
4904 (UCLIBC_DYNAMIC_LINKERN32): Ditto.
4905 (BIONIC_DYNAMIC_LINKERN32): Ditto.
4906 (GNU_USER_DYNAMIC_LINKERN32): Ditto.
4907 (GLIBC_DYNAMIC_LINKER): Delete.
4908 (UCLIBC_DYNAMIC_LINKER): Delete.
4910 2014-10-08 Joern Rennecke <joern.rennecke@embecosm.com>
4911 Richard Biener <rguenther@suse.de>
4913 * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
4914 Get address space from operand 0 (BASE).
4916 2014-10-07 Iain Sandoe <iain@codesourcery.com>
4919 * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
4921 2014-10-07 Aldy Hernandez <aldyh@redhat.com>
4923 * dwarf2out.c: Remove current_function_has_inlines.
4924 (gen_subprogram_die): Same.
4925 (gen_inlined_subroutine_die): Same.
4927 2014-10-07 Ilya Tocar <ilya.tocar@intel.com>
4929 * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
4931 (_addcarry_u64): Ditto.
4932 (_addcarryx_u64): Ditto.
4934 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
4936 * cgraph.h (cgraph_node::get_fun): Declare.
4937 * cgraph.c (cgraph_node::get_fun): New method.
4938 * ipa-inline.c (can_inline_edge_p): Use it.
4940 2014-10-07 Eric Botcazou <ebotcazou@adacore.com>
4942 * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
4943 and -ftrapping-math.
4944 * lto-wrapper.c (merge_and_complain): Likewise.
4945 (run_gcc): Likewise.
4947 2014-10-06 Rong Xu <xur@google.com>
4949 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
4950 * tree-profile.c: (params.h): New include.
4951 (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
4952 and __gcov_indirect_call_topn_counters for
4953 indirect_call_topn_profile.
4954 (gimple_init_edge_profiler): New decls for
4955 __gcov_indirect_call_topn_profiler.
4956 (gimple_gen_ic_profiler): Generate the correct profiler call.
4957 (gimple_gen_ic_func_profiler): Fix format.
4958 * value-prof.c (params.h): New include.
4959 (dump_histogram_value): Hanlde indirect_call_topn counters.
4960 (stream_in_histogram_value): Ditto.
4961 (gimple_indirect_call_to_profile): Use indirect_call_topn
4962 profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
4963 (gimple_find_values_to_profile): Hanlde indirect_call_topn
4965 * value-prof.h (enum hist_type): Histrogram type for
4966 indirect_call_topn counters.
4967 * profile.c (instrument_values): Instrument
4968 indirect_call_topn counters.
4970 2014-10-06 Rong Xu <xur@google.com>
4972 * Makefile.in: Fix dependence.
4973 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
4974 indirect call topn profiler.
4977 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
4979 * calls.c (expand_call): Do not use the target as the return slot if
4980 it is not sufficiently aligned.
4982 2014-10-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4984 * config/rs6000/rs6000.c (analyze_swaps commentary): Add
4985 discussion of permutes and why we don't handle them.
4987 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
4989 * config/sparc/predicates.md (int_register_operand): Delete.
4991 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
4993 * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
4995 2014-10-06 Jakub Jelinek <jakub@redhat.com>
4997 * ubsan.h (ubsan_get_source_location): New prototype.
4998 * ubsan.c (ubsan_source_location_type): New variable.
4999 Function renamed to ...
5000 (ubsan_get_source_location_type): ... this. Cache
5001 return value in ubsan_source_location_type variable.
5002 (ubsan_source_location, ubsan_create_data): Use
5003 ubsan_get_source_location_type instead of
5004 ubsan_source_location_type.
5005 * asan.c (asan_protect_global): Don't protect globals
5006 with ubsan_get_source_location_type () type.
5007 (asan_add_global): Provide global decl location info
5010 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
5012 * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
5015 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
5017 * ipa-polymorphic-call.c (possible_placement_new): Fix condition
5019 (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
5021 (ipa_polymorphic_call_context::dump): Fix formating.
5022 (walk_ssa_copies): Add logic avoiding loops; update uses.
5023 * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
5025 2014-10-02 Mark Wielaard <mjw@redhat.com>
5028 * dwarf2out.c (gen_subprogram_die): When a member function is
5029 explicitly deleted then add a DW_AT_GNU_deleted attribute.
5030 * langhooks.h (struct lang_hooks_for_decls): Add
5031 function_decl_deleted_p langhook.
5032 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
5033 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
5035 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
5037 * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
5038 NULL pointer checks.
5039 (ipa_polymorphic_call_context::get_dynamic_type): Return true
5040 if type doesn't change.
5041 * cgraph.h (cgraph_indirect_call_info): New flag.
5042 * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
5043 (cgraph_node::dump): Dump it.
5044 * ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
5045 of context.get_dynamic_type.
5046 (ipa_make_edge_direct_to_target): Do not speculate
5047 edge that is already speuclative.
5048 (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
5049 speculate to __builtin_unreachable
5050 (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
5052 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
5054 2014-10-04 Jan Hubicka <hubicka@ucw.cz>
5056 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
5057 get_dynamic_type; drop TODO.
5058 * ipa-polymorphic-call.c
5059 (ipa_polymorphic_call_context::get_dynamic_type): Be ready
5060 for otr_type to be unknown.
5062 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
5064 * common/config/score/score-common.c: Remove.
5065 * config.gcc: Remove support for score-*.
5066 * config/score/constraints.md: Remove.
5067 * config/score/elf.h: Remove.
5068 * config/score/predicates.md: Remove.
5069 * config/score/score-conv.h: Remove.
5070 * config/score/score-generic.md: Remove.
5071 * config/score/score-modes.def: Remove.
5072 * config/score/score-protos.h: Remove.
5073 * config/score/score.c: Remove.
5074 * config/score/score.h: Remove.
5075 * config/score/score.md: Remove.
5076 * config/score/score.opt: Remove.
5077 * doc/md.texi: Don't document score-*.
5079 2014-10-04 Trevor Saunders <tsaunders@mozilla.com>
5082 * genconditions.c: Directly include ggc.h before rtl.h.
5084 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
5086 * ipa-polymorphic-call.c
5087 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
5088 code determining speculative type.
5089 (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
5091 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5093 * altivec.md (altivec_lvsl): New define_expand.
5094 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
5095 (altivec_lvsr): New define_expand.
5096 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
5097 * rs6000.c (rs6000_expand_builtin): Change to use
5098 altivec_lvs[lr]_direct; remove commented-out code.
5100 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5102 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5103 Issue a warning message when vec_lvsl or vec_lvsr is used with a
5104 little endian target.
5106 2014-10-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5108 * tree-pretty-print.c (dump_location): Make it extern. Dump also
5110 * tree-pretty-print.h (dump_location): Declare.
5111 * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
5112 (pp_gimple_stmt_1): Likewise.
5113 (dump_implicit_edges): Likewise.
5114 * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
5118 2014-10-03 David Malcolm <dmalcolm@redhat.com>
5120 * gcc.c (driver::global_initializations): Remove "const" so
5121 that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
5122 and decoded_options_count.
5124 2014-10-03 Maciej W. Rozycki <macro@codesourcery.com>
5126 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
5128 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
5129 TARGET_E500_DOUBLE case here.
5131 2014-10-03 Marc Glisse <marc.glisse@inria.fr>
5136 * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
5138 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
5140 * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
5141 * lto-cgraph.c (lto_output_edge, input_edge): Stream
5142 in_polymorphic_cdtor
5143 * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
5144 (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
5145 * cgraphclones.c (cgraph_edge::clone): Likewise.
5146 * ipa-prop.c (update_jump_functions_after_inlining,
5147 try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
5148 to possible_dynamic_type_change.
5149 (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
5150 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
5151 IN_POLY_CDOTR argument.
5153 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
5154 for BASE and OUTER_TYPE being NULL.
5155 (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
5156 in_poly_cdtor parameter.
5158 2014-10-03 Jakub Jelinek <jakub@redhat.com>
5160 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
5161 (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
5163 (expand_vec_perm_1): Likewise.
5165 2014-10-03 Jakub Jelinek <jakub@redhat.com>
5166 Uros Bizjak <ubizjak@gmail.com>
5168 PR tree-optimization/61403
5169 * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
5170 error in comment. Also optimize 256-bit vectors for AVX2
5171 or AVX (floating vectors only), provided the first permutation
5172 can be performed in one insn.
5174 2014-10-03 David Malcolm <dmalcolm@redhat.com>
5176 * gcc.c (class driver): New class.
5177 (main): Reimplement in terms of driver::main, moving most of the
5178 locals to be locals within individual methods of class driver.
5179 The remaining locals "explicit_link_files", "decoded_options" and
5180 "decoded_options_count" are used by multiple driver:: methods, and
5181 so become member data. Doing so isolates the argc/argv reads and
5182 writes. Replace "goto out" with a special exit code from
5183 new method driver::prepare_infiles. Split out the old
5184 implementation of main into the following...
5185 (driver::main): New function, corresponding to the old "main"
5187 (driver::set_progname): New function, taken from the old
5188 "main" implementation.
5189 (driver::expand_at_files): Likewise.
5190 (driver::decode_argv): Likewise.
5191 (driver::global_initializations): Likewise.
5192 (driver::build_multilib_strings): Likewise.
5193 (driver::set_up_specs): Likewise.
5194 (driver::putenv_COLLECT_GCC): Likewise.
5195 (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
5196 (driver::handle_unrecognized_options): Likewise.
5197 (driver::maybe_print_and_exit): Likewise.
5198 (driver::prepare_infiles): Likewise.
5199 (driver::do_spec_on_infiles): Likewise.
5200 (driver::maybe_run_linker): Likewise.
5201 (driver::final_actions): Likewise.
5202 (driver::get_exit_code): Likewise.
5204 2014-10-03 Yury Gribov <y.gribov@samsung.com>
5206 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
5207 don't emit empty ctors.
5209 2014-10-03 Eric Botcazou <ebotcazou@adacore.com>
5211 * convert.c (convert_to_integer): Do not introduce useless conversions
5212 between integral types.
5214 2014-10-03 David Sherwood <david.sherwood@arm.com>
5216 * ira-int.h (ira_allocno): Mark hard_regno as signed.
5218 2014-10-03 Ilya Enkovich <ilya.enkovich@intel.com>
5220 * lra-constraints.c (inherit_in_ebb): Handle calls with
5221 multiple return values.
5222 * caller-save.c (save_call_clobbered_regs): Likewise.
5224 2014-10-03 Jakub Jelinek <jakub@redhat.com>
5226 * tree-vect-data-refs.c (vect_permute_load_chain,
5227 vect_shift_permute_load_chain): Fix a typo in temporary var names,
5228 suffle3 to shuffle3.
5231 * omp-low.c (taskreg_contexts): New variable.
5232 (scan_omp_parallel): Push newly created context into taskreg_contexts
5233 vector and move record layout code to finish_taskreg_scan.
5234 (scan_omp_task): Likewise.
5235 (finish_taskreg_scan): New function.
5236 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
5237 vector elements and release it.
5240 * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
5241 of palignr arguments can't be used due to min 0 or max - min
5242 too high, try also op0, op1 order of palignr arguments.
5244 2014-10-02 Jan Hubicka <hubicka@ucw.cz>
5246 * cgraph.h (ipa_polymorphic_call_context):
5247 Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
5248 private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
5249 * ipa-polymorphic-call.c
5250 (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
5251 past end of dynamic types.
5252 (ipa_polymorphic_call_context::stream_out,
5253 speculative_outer_type): Stream dynamic flag.
5254 (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
5255 (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
5257 (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
5259 (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
5260 * ipa-prop.c (update_jump_functions_after_inlining,
5261 try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
5263 2014-10-02 Teresa Johnson <tejohnson@google.com>
5265 * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
5266 up when synthesizing counts to avoid rounding errors.
5268 2014-10-02 Teresa Johnson <tejohnson@google.com>
5271 * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
5272 asserts to handle incoming insanities.
5274 2014-10-02 Martin Jambor <mjambor@suse.cz>
5276 PR tree-optimization/63375
5277 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
5280 2014-10-02 Olivier Hainque <hainque@adacore.com>
5282 * Makefile.in (CROSS): Define, to @CROSS.
5284 2014-10-02 Jakub Jelinek <jakub@redhat.com>
5287 * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
5288 if it expands to a single insn only.
5289 (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument. If true,
5290 fail unless in_order is true. Add forward declaration.
5291 (expand_vec_perm_vperm2f128): Fix up comment about which permutation
5292 is useful for one_operand_p.
5293 (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
5295 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
5297 * cgraphclones.c (build_function_type_skip_args): Do not make new
5298 type variant of old.
5300 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
5302 * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
5303 when speculation is added.
5304 (ipa_edge_args): Add polymorphic_call_contexts.
5305 (ipa_get_ith_polymorhic_call_context): New accesor.
5306 (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
5307 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
5308 (ipa_compute_jump_functions_for_edge): Compute contexts.
5309 (update_jump_functions_after_inlining): Update contexts.
5310 (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
5311 update dumping; add speculative edge creation.
5312 (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
5314 (update_indirect_edges_after_inlining): Pass down context.
5315 (ipa_edge_duplication_hook): Duplicate contexts.
5316 (ipa_write_node_info): Stream out contexts.
5317 (ipa_read_node_info): Stream in contexts.
5318 * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
5320 (try_speculative_devirtualization): New function.
5321 * ipa-utils.h (try_speculative_devirtualization): Declare.
5323 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
5325 * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
5328 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
5330 * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
5333 2014-10-01 Jan Hubicka <hubicka@ucw.cz>
5335 * ipa-polymorphic-call.c
5336 (ipa_polymorphic_call_context::restrict_to_inner_class):
5337 Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
5338 use speculation_consistent_p to do so; Add CONSDER_BASES
5339 and CONSIDER_PLACEMENT_NEW parameters.
5340 (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
5341 short circuit obvious cases.
5342 (ipa_polymorphic_call_context::dump): Improve formatting.
5343 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
5344 combine_speculation_with to record speculations; Do not ICE when
5345 object is located in pointer type decl; do not ICE for methods
5346 of UNION_TYPE; do not record nonpolymorphic types.
5347 (ipa_polymorphic_call_context::speculation_consistent_p): New method.
5348 (ipa_polymorphic_call_context::combine_speculation_with): New method.
5349 (ipa_polymorphic_call_context::combine_with): New method.
5350 (ipa_polymorphic_call_context::make_speculative): Move here; use
5351 combine speculation.
5352 * cgraph.h (ipa_polymorphic_call_context): Update
5353 restrict_to_inner_class prototype; add offset_by, make_speculative,
5354 combine_with, useless_p, combine_speculation_with and
5355 speculation_consistent_p methods.
5356 (ipa_polymorphic_call_context::offset_by): New method.
5357 (ipa_polymorphic_call_context::useless_p): New method.
5359 2014-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5361 PR rtl-optimization/62151
5362 * combine.c (can_combine_p): Allow the destination register of INSN
5363 to be clobbered in I3.
5364 (subst): Do not substitute into clobbers of registers.
5366 2014-10-01 Jakub Jelinek <jakub@redhat.com>
5369 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
5370 offset, TARGET_MEM_REF and SSA_NAME.
5372 * config/i386/i386.c (expand_vec_perm_palignr): Handle
5373 256-bit vectors for TARGET_AVX2.
5375 * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
5379 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
5380 argument to avx2_permv2ti.
5382 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5384 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
5386 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
5388 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
5389 (fmod<mode>3): Ditto.
5390 (fpremxf4_i387): Ditto.
5391 (reminderxf3): Ditto.
5392 (reminder<mode>3): Ditto.
5393 (fprem1xf4_i387): Ditto.
5395 2014-09-30 Teresa Johnson <tejohnson@google.com>
5397 * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
5398 duplicate_blocks bitmap.
5399 (remove_ctrl_stmt_and_useless_edges): Ditto.
5400 (create_block_for_threading): Ditto.
5401 (compute_path_counts): New function.
5402 (update_profile): Ditto.
5403 (recompute_probabilities): Ditto.
5404 (update_joiner_offpath_counts): Ditto.
5405 (freqs_to_counts_path): Ditto.
5406 (clear_counts_path): Ditto.
5407 (ssa_fix_duplicate_block_edges): Update profile info.
5408 (ssa_create_duplicates): Pass new parameter.
5409 (ssa_redirect_edges): Remove old profile update.
5410 (thread_block_1): New duplicate_blocks bitmap,
5411 remove old profile update.
5412 (thread_single_edge): Pass new parameter.
5414 2014-09-30 Ilya Tocar <ilya.tocar@intel.com>
5417 * varasm.c (decode_reg_name_and_count): Check availability for
5418 registers from ADDITIONAL_REGISTER_NAMES.
5420 2014-09-30 David Malcolm <dmalcolm@redhat.com>
5423 * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
5424 (PLUGIN_HEADERS): Add pass-instances.def.
5426 2014-09-30 James Greenhalgh <james.greenhalgh@arm.com>
5428 * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
5430 * config/aarch64/aarch64-simd.md
5431 (aarch64_sqdmull_laneq<mode>): Expand iterator.
5432 * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
5433 (vqdmulls_lane_s32): Fix return type.
5434 (vqdmulls_laneq_s32): New.
5436 2014-09-30 Jakub Jelinek <jakub@redhat.com>
5439 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
5440 or invert_jump_1 if jump isn't any_condjump_p.
5442 2014-09-30 Terry Guo <terry.guo@arm.com>
5444 * config/arm/arm-cores.def (cortex-m7): New core name.
5445 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
5447 * config/arm/arm-tables.opt: Regenerated.
5448 * config/arm/arm-tune.md: Regenerated.
5449 * config/arm/arm.h (TARGET_VFP5): New macro.
5450 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
5451 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
5452 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
5453 * doc/invoke.texi: Document new cpu and fpu names.
5455 2014-09-30 Jiong Wang <jiong.wang@arm.com>
5457 * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
5458 before sinking insn.
5460 2014-09-30 David Sherwood <david.sherwood@arm.com>
5462 * ira-int.h (ira_allocno): Add "wmode" field.
5463 * ira-build.c (create_insn_allocnos): Add new "parent" function
5465 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
5466 that cannot be accessed in wmode.
5468 2014-09-30 Markus Trippelsdorf <markus@trippelsdorf.de>
5470 * data-streamer.c (bp_unpack_var_len_int): Avoid signed
5473 2014-09-29 Andi Kleen <ak@linux.intel.com>
5475 * opts.c (print_filtered_help): Print --param min/max/default
5478 2014-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
5480 * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
5482 2014-09-29 Eric Botcazou <ebotcazou@adacore.com>
5484 * tree-vrp.c (get_single_symbol): New function.
5485 (build_symbolic_expr): Likewise.
5486 (symbolic_range_based_on_p): New predicate.
5487 (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
5488 for PLUS and MINUS. Do not drop symbolic ranges at the end.
5489 (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
5490 operand is symbolic and based on the other operand.
5492 2014-09-29 Chen Gang <gang.chen.5i5j@gmail.com>
5494 * config/microblaze/microblaze.md (call_internal1): Use VOID
5495 instead of SI to fix "((void (*)(void)) 0)()" issue
5497 2014-09-29 Nick Clifton <nickc@redhat.com>
5499 * config/msp430/msp430.c (msp430_expand_prologue): Return a
5500 CLOBBER rtx for naked functions.
5501 (msp430_expand_epilogue): Likewise.
5502 (msp430_use_f5_series_hwmult): Cache result.
5503 (use_32bit_hwmult): Cache result.
5504 (msp430_no_hwmult): New function.
5505 (msp430_output_labelref): Use it.
5507 2014-09-29 Jakub Jelinek <jakub@redhat.com>
5510 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
5511 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
5512 use the alignment of avar rather than ovar.
5514 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
5516 * config/pa/pa.c (pa_output_function_epilogue): Only update
5517 last_address when a nonnote insn is found.
5519 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
5522 * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
5524 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
5527 * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
5528 fix pasto in checking array size.
5530 2014-09-26 Jan Hubicka <hubicka@ucw.cz>
5533 * passes.def (pass_tracer): Move before last dominator pass.
5535 2014-09-26 Thomas Schwinge <thomas@codesourcery.com>
5537 * gcc.c (try_generate_repro): Remove argument "prog". Change all
5539 (run_attempt): Handle errors of "pex_run" invocation.
5541 2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
5543 * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
5545 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
5546 (TARGET_ASAN_SHADOW_OFFSET): Define.
5548 2014-09-26 Martin Liska <mliska@suse.cz>
5550 * cgraph.c (cgraph_node::release_body): New argument keep_arguments
5552 * cgraph.h: Likewise.
5553 * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
5554 * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
5555 * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
5556 * tree-ssa-alias.h: Likewise.
5558 2014-09-26 Jakub Jelinek <jakub@redhat.com>
5559 Max Ostapenko <m.ostapenko@partner.samsung.com>
5561 * common.opt: New option.
5562 * doc/invoke.texi: Describe new option.
5563 * gcc.c (execute): Don't free first string early, but at the end
5564 of the function. Call retry_ice if compiler exited with
5566 (main): Factor out common code.
5567 (print_configuration): New function.
5568 (files_equal_p): Likewise.
5569 (check_repro): Likewise.
5570 (run_attempt): Likewise.
5571 (do_report_bug): Likewise.
5572 (append_text): Likewise.
5573 (try_generate_repro): Likewise
5575 2014-09-25 Andi Kleen <ak@linux.intel.com>
5577 * config/i386/i386.c (x86_print_call_or_nop): New function.
5578 (x86_function_profiler): Support -mnop-mcount and
5580 * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
5581 * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
5583 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
5585 * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
5586 * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
5587 * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
5590 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
5592 * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
5593 type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
5594 types_odr_comparable): Declare.
5595 (polymorphic_type_binfo_p): Move here from ipa-devirt.c
5596 * ipa-polymorphic-call.c: New file.
5597 (contains_polymorphic_type_p, possible_placement_new,
5598 ipa_polymorphic_call_context::restrict_to_inner_class,
5599 contains_type_p, decl_maybe_in_construction_p,
5600 ipa_polymorphic_call_context::stream_out,
5601 ipa_polymorphic_call_context::debug,
5602 ipa_polymorphic_call_context::stream_in,
5603 ipa_polymorphic_call_context::set_by_decl,
5604 ipa_polymorphic_call_context::set_by_invariant,
5606 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
5607 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
5608 extr_type_from_vtbl_ptr_store, record_known_type
5609 check_stmt_for_type_change,
5610 ipa_polymorphic_call_context::get_dynamic_type): Move here from
5612 * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
5613 and streamer-hooks.h
5614 (contains_polymorphic_type_p, possible_placement_new,
5615 ipa_polymorphic_call_context::restrict_to_inner_class,
5616 contains_type_p, decl_maybe_in_construction_p,
5617 ipa_polymorphic_call_context::stream_out,
5618 ipa_polymorphic_call_context::debug,
5619 ipa_polymorphic_call_context::stream_in,
5620 ipa_polymorphic_call_context::set_by_decl,
5621 ipa_polymorphic_call_context::set_by_invariant,
5623 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
5624 type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
5625 extr_type_from_vtbl_ptr_store, record_known_type
5626 check_stmt_for_type_change,
5627 ipa_polymorphic_call_context::get_dynamic_type): Move to
5628 ipa-polymorphic-call.c
5629 (type_all_derivations_known_p, types_odr_comparable,
5630 types_must_be_same_for_odr): Export.
5631 (type_known_to_have_no_deriavations_p): New function.
5632 * Makefile.in: Add ipa-polymorphic-call.c
5634 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
5636 * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
5638 (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
5639 (possible_polymorphic_call_targets): Instead of computing both
5640 speculative and non-speculative answers, do just one at a time.
5641 Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
5642 (dump_targets): Break out from ...
5643 (dump_possible_polymorphic_call_targets): ... here; dump both speculative
5644 and non-speculative lists.
5645 (ipa_devirt): Update for new possible_polymorphic_call_targets API.
5646 * ipa-utils.h (possible_polymorphic_call_targets): Update.
5648 2014-09-25 Uros Bizjak <ubizjak@gmail.com>
5650 PR rtl-optimization/63348
5651 * emit-rtl.c (try_split): Do not emit extra barrier.
5653 2014-09-25 James Greenhalgh <james.greenhalgh@arm.com>
5655 * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
5656 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
5658 (aarch64_<sur>shll2_n<mode>): Likewise.
5659 (aarch64_<sur>shr_n<mode>): Likewise.
5660 (aarch64_<sur>sra_n<mode>: Likewise.
5661 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
5662 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
5663 * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
5664 * config/aarch64/iterators.md (ve_mode): New.
5665 (offsetlr): Remap to infix text for use in new predicates.
5666 * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
5667 (aarch64_simd_shift_imm_hi): Likewise.
5668 (aarch64_simd_shift_imm_si): Likewise.
5669 (aarch64_simd_shift_imm_di): Likewise.
5670 (aarch64_simd_shift_imm_offset_qi): Likewise.
5671 (aarch64_simd_shift_imm_offset_hi): Likewise.
5672 (aarch64_simd_shift_imm_offset_si): Likewise.
5673 (aarch64_simd_shift_imm_offset_di): Likewise.
5674 (aarch64_simd_shift_imm_bitsize_qi): Likewise.
5675 (aarch64_simd_shift_imm_bitsize_hi): Likewise.
5676 (aarch64_simd_shift_imm_bitsize_si): Likewise.
5677 (aarch64_simd_shift_imm_bitsize_di): Likewise.
5679 2014-09-25 Jiong Wang <jiong.wang@arm.com>
5681 * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
5682 new created BB as the intersection of live-in from "old_dest" and
5685 2014-09-25 Felix Yang <felix.yang@huawei.com>
5687 * lra.c (lra_set_insn_recog_data): Fix typo in comment.
5688 * genautomata.c (merge_states): Ditto.
5690 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
5693 * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
5694 in instruction sequence.
5696 2014-09-25 Nick Clifton <nickc@redhat.com>
5699 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
5700 in instruction sequence.
5702 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5705 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
5706 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
5708 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
5709 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5710 Anna Tikhonova <anna.tikhonova@intel.com>
5711 Ilya Tocar <ilya.tocar@intel.com>
5712 Andrey Turetskiy <andrey.turetskiy@intel.com>
5713 Ilya Verbin <ilya.verbin@intel.com>
5714 Kirill Yukhin <kirill.yukhin@intel.com>
5715 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5717 * config/i386/sse.md
5718 (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
5719 (define_expand "<avx2_avx512>_perm<mode>"): ... this.
5720 (define_expand "avx512f_perm<mode>_mask"): Rename to ...
5721 (define_expand "<avx512>_perm<mode>_mask"): ... this.
5722 Use VI8F_256_512 mode iterator.
5723 (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
5724 (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
5726 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
5727 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5728 Anna Tikhonova <anna.tikhonova@intel.com>
5729 Ilya Tocar <ilya.tocar@intel.com>
5730 Andrey Turetskiy <andrey.turetskiy@intel.com>
5731 Ilya Verbin <ilya.verbin@intel.com>
5732 Kirill Yukhin <kirill.yukhin@intel.com>
5733 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5735 * config/i386/sse.md
5736 (define_insn "avx_movshdup256<mask_name>"): Add masking.
5737 (define_insn "sse3_movshdup<mask_name>"): Ditto.
5738 (define_insn "avx_movsldup256<mask_name>"): Ditto.
5739 (define_insn "sse3_movsldup<mask_name>"): Ditto.
5740 (define_insn "vec_dupv2df<mask_name>"): Ditto.
5741 (define_insn "*vec_concatv2df"): Add EVEX version.
5743 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
5744 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5745 Anna Tikhonova <anna.tikhonova@intel.com>
5746 Ilya Tocar <ilya.tocar@intel.com>
5747 Andrey Turetskiy <andrey.turetskiy@intel.com>
5748 Ilya Verbin <ilya.verbin@intel.com>
5749 Kirill Yukhin <kirill.yukhin@intel.com>
5750 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5752 * config/i386/sse.md
5753 (define_insn "vec_set<mode>_0"): Add EVEX version.
5755 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
5756 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5757 Anna Tikhonova <anna.tikhonova@intel.com>
5758 Ilya Tocar <ilya.tocar@intel.com>
5759 Andrey Turetskiy <andrey.turetskiy@intel.com>
5760 Ilya Verbin <ilya.verbin@intel.com>
5761 Kirill Yukhin <kirill.yukhin@intel.com>
5762 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5764 * config/i386/sse.md
5766 "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
5768 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
5769 (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
5770 (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
5771 "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
5772 (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
5773 (define_expand "sse2_cvtpd2ps_mask): New.
5774 (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
5775 (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
5777 2014-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
5778 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5779 Anna Tikhonova <anna.tikhonova@intel.com>
5780 Ilya Tocar <ilya.tocar@intel.com>
5781 Andrey Turetskiy <andrey.turetskiy@intel.com>
5782 Ilya Verbin <ilya.verbin@intel.com>
5783 Kirill Yukhin <kirill.yukhin@intel.com>
5784 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5786 * config/i386/i386.c
5787 (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
5788 (ufix_notruncv8dfv8si2_mask_round): ... this.
5789 * config/i386/sse.md
5790 (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
5791 (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
5792 (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
5793 (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
5794 (define_expand "sse2_cvtpd2dq"): Delete.
5795 (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
5796 make 2nd operand const0 vector.
5797 (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
5799 (define_mode_attr pd2udqsuff): New.
5801 "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
5802 (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
5803 (define_insn "*avx_cvttpd2dq256_2"): Delete.
5804 (define_expand "sse2_cvttpd2dq"): Ditto.
5805 (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
5806 make 2nd operand const0 vector.
5808 2014-09-25 Jakub Jelinek <jakub@redhat.com>
5810 PR tree-optimization/63341
5811 * tree-vectorizer.h (vect_create_data_ref_ptr,
5812 vect_create_addr_base_for_vector_ref): Add another tree argument
5813 defaulting to NULL_TREE.
5814 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
5815 argument, pass it down to vect_create_addr_base_for_vector_ref.
5816 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
5817 add that to base_offset too if non-NULL.
5818 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
5819 for dr_explicit_realign_optimized set it to vector byte size
5820 - 1 instead of setting offset, pass byte_offset down to
5821 vect_create_data_ref_ptr.
5823 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
5825 * ipa-devirt.c (possible_polymorphic_call_targets): Remove
5826 forgotten debug output; canonicalize querries more wtih LTO.
5828 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
5830 * cgraph.h (class ipa_polymorphic_call_context): Move here from
5831 ipa-utils.h; add stream_int and stream_out methods.
5832 (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
5833 OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
5834 MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
5836 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
5837 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
5838 ipa_polymorphic_call_context::clear_speculation,
5839 ipa_polymorphic_call_context::clear_outer_type): Move here from
5841 * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
5842 (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
5843 ipa_polymorphic_call_context::ipa_polymorphic_call_context,
5844 ipa_polymorphic_call_context::clear_speculation,
5845 ipa_polymorphic_call_context::clear_outer_type): Likewise.
5846 * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
5848 (ipa_polymorphic_call_context::stream_out): New method.
5849 (ipa_polymorphic_call_context::stream_in): New method.
5850 (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
5851 * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
5853 (ipa_analyze_call_uses): Simplify.
5854 (update_indirect_edges_after_inlining): Do not care about outer_type.
5855 (ipa_write_indirect_edge_info): Update.
5856 (ipa_write_indirect_edge_info): Likewise.
5857 * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
5858 (dump_edge_flags): Break out from ...
5859 (cgraph_node::dump): ... here; dump indirect edges.
5861 2014-09-24 Jan Hubicka <hubicka@ucw.cz>
5863 * ipa-utils.h (polymorphic_call_context): Add
5864 metdhos dump, debug and clear_outer_type.
5865 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
5866 (ipa_polymorphic_call_context::clear_outer_type): New method.
5867 * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
5868 * ipa-devirt.c (types_odr_comparable): New function.
5869 (types_must_be_same_for_odr): New function.
5870 (odr_subtypes_equivalent_p): Simplify.
5871 (possible_placement_new): Break out from ...
5872 (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
5873 be more cuatious about returning false in cases the context may be
5874 valid in derived type or via placement new.
5875 (contains_type_p): Clear maybe_derived_type
5876 (ipa_polymorphic_call_context::dump): New method.
5877 (ipa_polymorphic_call_context::debug): New method.
5878 (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
5879 (ipa_polymorphic_call_context::set_by_invariant): Simplify.
5880 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
5881 (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
5882 to suceed on all valid cases; remove confused sanity check.
5883 (dump_possible_polymorphic_call_targets): Simplify.
5885 2014-09-24 Aldy Hernandez <aldyh@redhat.com>
5887 * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
5888 lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
5889 tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
5890 varpool.c: Rename all instances of DECL_ABSTRACT to
5893 2014-09-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5895 * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
5896 special handling for stores whose SET_SRC is an UNSPEC (such as
5899 2014-09-24 Jiong Wang <jiong.wang@arm.com>
5901 * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
5902 !REG_P (src) to release more instruction sink opportunities.
5904 2014-09-24 Wilco Dijkstra <wilco.dijkstra@arm.com>
5906 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
5907 move costs for 128-bit types.
5909 2014-09-24 Martin Jambor <mjambor@suse.cz>
5911 * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
5912 when duplicating a PASS_THROUGH jump function when creating a
5915 2014-09-24 Marek Polacek <polacek@redhat.com>
5919 * asan.c (maybe_instrument_call): Add default case.
5920 * ipa-pure-const.c (special_builtin_state): Likewise.
5921 * predict.c (expr_expected_value_1): Likewise.
5922 * lto-streamer-out.c (write_symbol): Initialize variable.
5924 2014-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5926 * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
5928 (vmuld_laneq_f64): Likewise.
5929 (vmuls_lane_f32): Likewise.
5930 (vmuls_laneq_f32): Likewise.
5932 2014-09-24 Kirill Yukhin <kirill.yukhin@intel.com>
5935 * varpool.c (varpool_node::add): Pass decl attributes
5936 to lookup_attribute.
5938 2014-09-24 Jakub Jelinek <jakub@redhat.com>
5941 * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
5943 2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
5945 PR tree-optimization/63266
5946 * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
5947 marker for unknown byte value.
5948 (MARKER_MASK): New macro.
5949 (MARKER_BYTE_UNKNOWN): New macro.
5950 (HEAD_MARKER): New macro.
5951 (do_shift_rotate): Mark bytes with unknown values due to sign
5952 extension when doing an arithmetic right shift. Replace hardcoded
5953 mask for marker by new MARKER_MASK macro.
5954 (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
5955 numbers accordingly.
5957 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
5958 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5959 Anna Tikhonova <anna.tikhonova@intel.com>
5960 Ilya Tocar <ilya.tocar@intel.com>
5961 Andrey Turetskiy <andrey.turetskiy@intel.com>
5962 Ilya Verbin <ilya.verbin@intel.com>
5963 Kirill Yukhin <kirill.yukhin@intel.com>
5964 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5966 * config/i386/sse.md
5968 "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
5970 (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
5971 (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
5973 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
5974 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5975 Anna Tikhonova <anna.tikhonova@intel.com>
5976 Ilya Tocar <ilya.tocar@intel.com>
5977 Andrey Turetskiy <andrey.turetskiy@intel.com>
5978 Ilya Verbin <ilya.verbin@intel.com>
5979 Kirill Yukhin <kirill.yukhin@intel.com>
5980 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
5982 * config/i386/sse.md
5983 (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
5984 (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
5985 (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
5986 (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
5987 (define_expand "avx512vl_pshuflw_mask"): New.
5988 (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
5989 (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
5990 (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
5991 (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
5992 (define_expand "avx512vl_pshufhw_mask"): New.
5993 (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
5995 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
5996 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
5997 Anna Tikhonova <anna.tikhonova@intel.com>
5998 Ilya Tocar <ilya.tocar@intel.com>
5999 Andrey Turetskiy <andrey.turetskiy@intel.com>
6000 Ilya Verbin <ilya.verbin@intel.com>
6001 Kirill Yukhin <kirill.yukhin@intel.com>
6002 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6004 * config/i386/i386.c
6005 (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
6006 CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
6007 CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
6008 CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
6009 CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
6010 * config/i386/sse.md
6011 (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
6013 "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
6014 (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
6016 "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
6017 (define_expand "avx512vl_pshufdv3_mask"): Ditto.
6018 (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
6019 (define_expand "avx512vl_pshufd_mask"): New.
6020 (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
6022 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
6023 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6024 Anna Tikhonova <anna.tikhonova@intel.com>
6025 Ilya Tocar <ilya.tocar@intel.com>
6026 Andrey Turetskiy <andrey.turetskiy@intel.com>
6027 Ilya Verbin <ilya.verbin@intel.com>
6028 Kirill Yukhin <kirill.yukhin@intel.com>
6029 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6031 * config/i386/i386.c
6032 (CODE_FOR_avx2_extracti128): Rename to ...
6033 (CODE_FOR_avx_vextractf128v4di): this.
6034 (CODE_FOR_avx2_inserti128): Rename to ...
6035 (CODE_FOR_avx_vinsertf128v4di): this.
6036 (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
6037 CODE_FOR_avx_vextractf128v4di.
6038 (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
6039 CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
6040 CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
6041 CODE_FOR_avx512vl_vinsertv8si.
6042 * config/i386/sse.md
6044 "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
6045 AVX512_VEC mode iterator.
6047 "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
6050 "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
6051 AVX512_VEC_2 mode iterator.
6052 (define_insn "vec_set_lo_<mode><mask_name>"): New.
6053 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
6054 (define_expand "avx512vl_vinsert<mode>"): Ditto.
6055 (define_insn "avx2_vec_set_lo_v4di"): Delete.
6056 (define_insn "avx2_vec_set_hi_v4di"): Ditto.
6057 (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
6058 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
6059 (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
6060 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
6061 (define_expand "avx2_extracti128"): Delete.
6062 (define_expand "avx2_inserti128"): Ditto.
6064 2014-09-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
6065 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6066 Anna Tikhonova <anna.tikhonova@intel.com>
6067 Ilya Tocar <ilya.tocar@intel.com>
6068 Andrey Turetskiy <andrey.turetskiy@intel.com>
6069 Ilya Verbin <ilya.verbin@intel.com>
6070 Kirill Yukhin <kirill.yukhin@intel.com>
6071 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6073 * config/i386/sse.md
6074 (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
6075 (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
6076 (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
6077 (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
6078 (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
6079 (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
6080 (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
6081 (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
6082 (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
6083 (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
6084 (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
6085 (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
6086 (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
6088 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
6090 PR rtl-optimization/63210
6091 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
6092 HARD_REGNO is not available for CONFLICT_A.
6094 2014-09-23 Andi Kleen <ak@linux.intel.com>
6096 * cgraph.h (symtab_node): Add no_reorder attribute.
6097 (symbol_table::output_asm_statements): Remove.
6098 * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
6099 (cgraph_node::create_version_clone): Dito.
6100 (symbol_table::output_asm_statements): Remove.
6101 * trans-mem.c (ipa_tm_create_version_alias): Dito.
6102 * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
6103 (output_in_order): Add no_reorder flag. Only handle no_reorder
6105 (symbol_table::compile): Add separate pass for no_reorder nodes.
6106 (process_common_attributes): Set no_reorder flag in symtab node.
6108 (process_function_and_variable_attributes): Pass symtab nodes to
6109 process_common_attributes.
6110 * doc/extend.texi (no_reorder): Document no_reorder attribute.
6111 * lto-cgraph.c (lto_output_node): Serialize no_reorder.
6112 (lto_output_varpool_node): Dito.
6113 (input_overwrite_node): Dito.
6114 (input_varpool_node): Dito.
6115 * varpool.c (varpool_node::add): Set no_reorder attribute.
6116 (symbol_table::remove_unreferenced_decls): Handle no_reorder.
6117 (symbol_table::output_variables): Dito.
6118 * symtab.c (symtab_node::dump_base): Print no_reorder.
6120 2014-09-23 Jiong Wang <jiong.wang@arm.com>
6122 * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
6125 2014-09-23 Thomas Schwinge <thomas@codesourcery.com>
6127 * configure: Regenerate.
6129 2014-09-23 Alan Lawrence <alan.lawrence@arm.com>
6131 * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
6132 when result_mode == shift_mode.
6134 2014-09-23 Kostya Serebryany <kcc@google.com>
6136 Update to match the changed asan API.
6137 * asan.c (asan_global_struct): Update the __asan_global definition
6138 to match the new API.
6139 (asan_add_global): Ditto.
6140 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
6143 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6145 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
6146 refine the constraints used on 32/64-bit floating point moves.
6148 (f64_vsx): Likewise.
6151 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
6152 (BOOL_REGS_OP1): Likewise.
6153 (BOOL_REGS_OP2): Likewise.
6154 (BOOL_REGS_UNARY): Likewise.
6155 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
6156 32/64-bit floating point moves. Do not use wa, instead use ww/ws
6157 for moves involving VSX registers. Do not use constraints that
6158 target VSX registers for decimal types.
6159 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
6160 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
6162 2014-09-23 Jan Hubicka <hubicka@ucw.cz>
6164 * tree.h (int_bit_position): Turn into inline function;
6165 implement using wide int.
6166 * tree.c (int_bit_position): Remove.
6168 2014-09-23 Richard Sandiford <richard.sandiford@arm.com>
6171 * target-globals.c (target_globals::~target_globals): Fix location
6172 of ira_int destruction.
6174 2014-09-23 Renlin Li <renlin.li@arm.com>
6176 * config/aarch64/aarch64.md (return): New.
6177 (simple_return): Likewise.
6178 * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
6179 * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
6181 2014-09-23 Wilco Dijkstra <wdijkstr@arm.com>
6183 * common/config/aarch64/aarch64-common.c:
6184 (default_options aarch_option_optimization_table):
6185 Default to -fsched-pressure.
6187 2014-09-23 Ilya Enkovich <ilya.enkovich@intel.com>
6189 * cfgcleanup.c (try_optimize_cfg): Do not remove label
6190 with LABEL_PRESERVE_P flag set.
6192 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
6193 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6194 Anna Tikhonova <anna.tikhonova@intel.com>
6195 Ilya Tocar <ilya.tocar@intel.com>
6196 Andrey Turetskiy <andrey.turetskiy@intel.com>
6197 Ilya Verbin <ilya.verbin@intel.com>
6198 Kirill Yukhin <kirill.yukhin@intel.com>
6199 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6201 * config/i386/sse.md
6202 (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
6203 (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
6204 (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
6205 (define_insn "sse2_shufpd_v2df_mask"): New.
6207 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
6208 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6209 Anna Tikhonova <anna.tikhonova@intel.com>
6210 Ilya Tocar <ilya.tocar@intel.com>
6211 Andrey Turetskiy <andrey.turetskiy@intel.com>
6212 Ilya Verbin <ilya.verbin@intel.com>
6213 Kirill Yukhin <kirill.yukhin@intel.com>
6214 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6216 * config/i386/sse.md
6217 (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
6218 (define_insn "avx_shufps256_1<mask_name>"): Ditto.
6219 (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
6220 (define_insn "sse_shufps_v4sf_mask"): New.
6222 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
6223 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6224 Anna Tikhonova <anna.tikhonova@intel.com>
6225 Ilya Tocar <ilya.tocar@intel.com>
6226 Andrey Turetskiy <andrey.turetskiy@intel.com>
6227 Ilya Verbin <ilya.verbin@intel.com>
6228 Kirill Yukhin <kirill.yukhin@intel.com>
6229 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6231 * config/i386/sse.md
6232 (define_insn "avx_unpckhps256<mask_name>"): Add masking.
6233 (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
6234 (define_insn "avx_unpcklps256<mask_name>"): Ditto.
6235 (define_insn "unpcklps128_mask"): New.
6237 2014-09-23 Alexander Ivchenko <alexander.ivchenko@intel.com>
6238 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6239 Anna Tikhonova <anna.tikhonova@intel.com>
6240 Ilya Tocar <ilya.tocar@intel.com>
6241 Andrey Turetskiy <andrey.turetskiy@intel.com>
6242 Ilya Verbin <ilya.verbin@intel.com>
6243 Kirill Yukhin <kirill.yukhin@intel.com>
6244 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6246 * config/i386/sse.md
6247 (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
6248 (define_insn "avx512vl_unpckhpd128_mask"): New.
6249 (define_expand "avx_movddup256<mask_name>"): Add masking.
6250 (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
6251 (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
6252 (define_insn "avx512vl_unpcklpd128_mask"): New.
6254 2014-09-22 Joseph Myers <joseph@codesourcery.com>
6256 * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6257 * doc/tm.texi: Regenerate.
6258 * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
6259 * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6260 * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
6262 * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6263 * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6264 * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6265 * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6266 * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
6268 * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6269 * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6270 * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6271 * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6272 * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6273 * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6274 * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6275 * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6276 * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6277 * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
6278 * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
6281 2014-09-22 Jan Hubicka <hubicka@ucw.cz>
6283 * tree-ssa-ccp.c (prop_value_d): Rename to ...
6284 (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
6285 * ipa-prop.c (struct type_change_info): Rename to ...
6286 (prop_type_change_info): ... this; update uses.
6287 * ggc-page.c (globals): Rename to ...
6288 (static struct ggc_globals): ... this; update uses.
6289 * tree-ssa-loop-im.c (mem_ref): Rename to ...
6290 (im_mem_ref): ... this; update uses.
6291 * ggc-common.c (loc_descriptor): Rename to ...
6292 (ggc_loc_descriptor): ... this; update uses.
6293 * lra-eliminations.c (elim_table): Rename to ...
6294 (lra_elim_table): ... this; update uses.
6295 * bitmap.c (output_info): Rename to ...
6296 (bitmap_output_info): ... this; update uses.
6297 * gcse.c (expr): Rename to ...
6298 (gcse_expr) ... this; update uses.
6299 (occr): Rename to ...
6300 (gcse_occr): .. this; update uses.
6301 * tree-ssa-copy.c (prop_value_d): Rename to ...
6302 (prop_value_t): ... this.
6303 * predict.c (block_info_def): Rename to ...
6304 (block_info): ... this; update uses.
6305 (edge_info_def): Rename to ...
6306 (edge_info): ... this; update uses.
6307 * profile.c (bb_info): Rename to ...
6308 (bb_profile_info): ... this; update uses.
6309 * alloc-pool.c (output_info): Rename to ...
6310 (pool_output_info): ... this; update uses.
6311 * ipa-cp.c (topo_info): Rename to ..
6312 (ipa_topo_info): ... this; update uses.
6313 * tree-nrv.c (nrv_data): Rename to ...
6314 (nrv_data_t): ... this; update uses.
6315 * ipa-split.c (bb_info): Rename to ...
6316 (split_bb_info): ... this one.
6317 * profile.h (edge_info): Rename to ...
6318 (edge_profile_info): ... this one; update uses.
6319 * dse.c (bb_info): Rename to ...
6320 (dse_bb_info): ... this one; update uses.
6321 * cprop.c (occr): Rename to ...
6322 (cprop_occr): ... this one; update uses.
6323 (expr): Rename to ...
6324 (cprop_expr): ... this one; update uses.
6326 2014-09-22 Jason Merrill <jason@redhat.com>
6328 * Makefile.in (check-parallel-%): Add @.
6330 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
6332 * config/aarch64/geniterators.sh: New.
6333 * config/aarch64/iterators.md (VDQF_DF): New.
6334 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
6335 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
6337 2014-09-22 Peter A. Bigot <pab@pabigot.com>
6339 * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
6340 -lnosys when -msim absent.
6342 2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
6344 * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
6346 2014-09-22 Richard Biener <rguenther@suse.de>
6348 * gimplify.c (gimplify_init_constructor): Do not leave
6349 non-GIMPLE vector constructors around.
6350 * tree-cfg.c (verify_gimple_assign_single): Verify that
6351 CONSTRUCTORs have gimple elements.
6353 2014-09-22 Jakub Jelinek <jakub@redhat.com>
6356 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
6357 insert a debug source bind stmt setting DEBUG_EXPR_DECL
6358 instead of a normal gimple assignment stmt.
6360 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
6362 * config/bfin/bfin.md: Fix use of constraints in define_split.
6364 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
6366 * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
6367 GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
6369 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
6371 * hard-reg-set.h: Include hash-table.h.
6372 (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
6374 * target-globals.c (target_globals::~target_globals): Call
6375 hard_regs->finalize.
6376 * rtl.h (subreg_shape): New structure.
6377 (shape_of_subreg): New function.
6378 (simplifiable_subregs): Declare.
6379 * reginfo.c (simplifiable_subreg): New structure.
6380 (simplifiable_subregs_hasher): Likewise.
6381 (simplifiable_subregs): New function.
6382 (invalid_mode_changes): Delete.
6383 (alid_mode_changes, valid_mode_changes_obstack): New variables.
6384 (record_subregs_of_mode): Remove subregs_of_mode parameter.
6385 Record valid mode changes in valid_mode_changes.
6386 (find_subregs_of_mode): Remove subregs_of_mode parameter.
6387 Update calls to record_subregs_of_mode.
6388 (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
6389 handling. Initialize new variables. Update call to
6390 find_subregs_of_mode.
6391 (invalid_mode_change_p): Check new variables instead of
6392 invalid_mode_changes.
6393 (finish_subregs_of_mode): Finalize new variables instead of
6394 invalid_mode_changes.
6395 (target_hard_regs::finalize): New function.
6396 * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
6397 even when CLASS_CANNOT_CHANGE_MODE is undefined.
6399 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
6401 * combine.c (subst): Use simplify_subreg_regno rather than
6402 REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
6404 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
6406 * rtl.h (subreg_info): Expand commentary
6407 * rtlanal.c (subreg_get_info): Likewise.
6409 2014-09-22 Richard Sandiford <richard.sandiford@arm.com>
6411 * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
6412 (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
6413 (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
6415 2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com>
6417 * config/arm/arm.c: #include "tm-constrs.h"
6418 (thumb1_size_rtx_costs): Adjust rtx costs.
6420 2014-09-22 Hans-Peter Nilsson <hp@axis.com>
6422 * configure.ac (target_header_dir): Move block defining
6423 this to before the block setting inhibit_libc.
6424 (inhibit_libc): When considering $with_headers, just
6425 check it it's explicitly "no". If not, also check if
6426 $target_header_dir/stdio.h is present. If not, set
6428 * configure: Regenerate.
6430 2014-09-21 Patrick Oppenlander <pattyo.lists@gmail.com>
6432 * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
6434 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6436 * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different
6437 insn for divides by integer powers of two.
6438 (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
6439 (mod<mode>3): Fix formatting.
6440 (three anonymous define_insn and two define_split): Delete.
6442 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6444 * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
6445 *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
6446 (floatdisf2_internal2): Ditto.
6447 (ashrdi3_no_power): Ditto. Fix formatting.
6449 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6451 * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
6452 popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
6455 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6457 * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
6458 constant, use addsi3 directly.
6459 (three anonymous define_insn, two define_split): Delete.
6460 (sub<mode>3): Move. Do not allow constant second operand.
6461 Generate different insn for constant first operand.
6462 (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
6463 (subf<mode>3_imm): New.
6464 (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
6465 (*plus_ltu<mode>): Only handle registers.
6466 (*plus_ltu<mode>_1): New. Handle integer third operand.
6467 (*plus_gtu<mode>): Only handle registers.
6468 (*plus_gtu<mode>_1): New. Handle integer third operand.
6470 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6472 * config/rs6000/rs6000.md (iorxor): New code_iterator.
6473 (iorxor): New code_attr.
6474 (IORXOR): New code_attr.
6475 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
6476 (ior<mode>3, xor<mode>3): Delete.
6477 (<iorxor><mode>3): New.
6478 (splitter for "big" integer ior, xor): New.
6479 (*bool<mode>3): Move. Also handle AND.
6480 (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
6481 (splitter for "big" integer ior, xor): Delete.
6483 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6485 * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
6486 (two anonymous define_insn and two define_split): Delete.
6487 (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
6489 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6491 * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
6492 (two anonymous define_insn and two define_split): Delete.
6493 (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
6495 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6497 * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
6499 2014-09-21 Segher Boessenkool <segher@kernel.crashing.org>
6501 * config/rs6000/predicates.md (ca_operand): Allow subregs.
6502 (input_operand): Do not allow ca_operand.
6503 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
6504 carry bit, allow SImode and Pmode.
6505 (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
6507 2014-09-21 Uros Bizjak <ubizjak@gmail.com>
6509 * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
6510 clobbered registers using clobber_reg. Remove UNSPEC decoration.
6511 * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
6512 (*call_rex64_ms_sysv): Remove.
6513 (*call_value_rex64_ms_sysv): Ditto.
6514 * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
6516 2014-09-20 Joern Rennecke <joern.rennecke@embecosm.com>
6518 * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
6521 2014-09-20 Andreas Schwab <schwab@suse.de>
6523 * config/ia64/ia64.md: Remove constraints from define_split
6526 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
6528 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
6529 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
6530 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
6531 (get_dynamic_type): Remove.
6532 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
6533 (clear_speculation): Bring to ipa-deivrt.h
6534 (get_class_context): Rename to ...
6535 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
6536 (contains_type_p): Update.
6537 (get_dynamic_type): Rename to ...
6538 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
6539 (possible_polymorphic_call_targets): UPdate.
6540 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
6541 * ipa-prop.c (ipa_analyze_call_uses): Update.
6543 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
6545 * ipa-visibility.c (varpool_node::externally_visible_p): Do not
6546 privatize dynamic TLS variables.
6548 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
6550 * diagnostic.c (warning_n): New function.
6551 * diagnostic-core.h (warning_n): Declare.
6552 * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
6553 output dynamic counts when available.
6555 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
6557 PR tree-optimization/63255
6558 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
6559 issue in setting body_removed flag.
6561 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
6564 * c-family/c-common.c (handle_alias_ifunc_attribute): Check
6565 that visibility change is possible
6566 (handle_weakref_attribute): Likewise.
6567 * cgraph.h (symtab_node): Add method get_create and
6568 field refuse_visibility_changes.
6569 (symtab_node::get_create): New method.
6570 * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
6571 * varasm.c (mark_weak): Verify that visibility change is
6574 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
6576 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
6577 for base_reg_operand to be common between LO_SUM and PLUS.
6578 (fusion_gpr_mem_combo): New predicate to match a fused address
6579 that combines the addis and memory offset address.
6581 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
6583 (emit_fusion_gpr_load): Likewise.
6585 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
6586 signature to pass each argument separately, rather than
6587 using an operands array. Rewrite the insns found by peephole2 to
6588 be a single insn, rather than hoping the insns will still be
6589 together when the peephole pass is done. Drop being called via a
6591 (emit_fusion_gpr_load): Change calling signature to be called from
6592 the fusion_gpr_load_<mode> insns with a combined memory address
6593 instead of the peephole pass passing the addis and offset
6596 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
6598 (power8 fusion peephole): Drop support for doing power8 via a
6599 normal peephole that was created by the peephole2 pass.
6600 (power8 fusion peephole2): Create a new insn with the fused
6601 address, so that the fused operation is kept together after
6602 register allocation is done.
6603 (fusion_gpr_load_<mode>): Likewise.
6605 2014-09-19 Jan Hubicka <hubicka@ucw.cz>
6608 * tree.c (need_assembler_name_p): Do not mangle variadic types.
6610 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org>
6612 * recog.c (scratch_operand): Do not simply allow all hard registers:
6613 only allow those that are allocatable.
6615 2014-09-19 Felix Yang <felix.yang@huawei.com>
6617 * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
6618 comments and fix spacing to conform to coding style.
6620 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
6622 * genrecog.c (validate_pattern): Allow empty constraints in
6625 2014-09-19 Aldy Hernandez <aldyh@redhat.com>
6627 * dwarf2out.c (decl_ultimate_origin): Update comment.
6628 * tree.c (block_ultimate_origin): Same.
6630 2014-09-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6632 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
6633 Update GCC version name to GCC 5.
6634 (rs6000_function_arg_boundary): Likewise.
6635 (rs6000_function_arg): Likewise.
6637 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
6639 * config/sh/sh.md: Fix use of constraints in define_split.
6641 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de>
6644 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
6646 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
6648 * doc/md.texi (Modifiers): Consistently use "read/write"
6649 nomenclature rather than "input/output".
6650 * genrecog.c (constraints_supported_in_insn_p): New.
6651 (validate_pattern): If needed, also check constraints on
6652 MATCH_SCRATCH operands.
6653 * genoutput.c (validate_insn_alternatives): Catch earlyclobber
6654 operands with no '=' or '+' modifier.
6656 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
6658 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
6659 scratch register as written.
6661 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6663 * config/s390/s390.c (s390_emit_epilogue): Remove bogus
6666 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6668 * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
6671 2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6674 * config/s390/s390.c (s390_emit_epilogue): When doing the return
6675 address load optimization force s390_optimize_prologue to leave it
6676 that way. Only do the optimization if we already decided to push
6677 r14 into a stack slot.
6679 2014-09-19 Marat Zakirov <m.zakirov@samsung.com>
6681 * asan.c (build_check_stmt): Alignment arg was added.
6682 (asan_expand_check_ifn): Optimization for alignment >= 8.
6684 2014-09-19 Olivier Hainque <hainque@adacore.com>
6686 * config/i386/vxworksae.h: Remove obsolete definitions.
6687 (STACK_CHECK_PROTECT): Define.
6688 * config/i386/vx-common.h: Remove. Merge contents within
6689 config/i386/vxworks.h.
6690 * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
6693 2014-09-19 Olivier Hainque <hainque@adacore.com>
6695 * config.gcc (powerpc-wrs-vxworksmils): New configuration.
6696 * config/rs6000/t-vxworksmils: New file.
6697 * config/rs6000/vxworksmils.h: New file.
6699 2014-09-19 Olivier Hainque <hainque@adacore.com>
6701 * varasm.c (default_section_type_flags): Flag .persistent.bss
6702 sections as SECTION_BSS.
6704 2014-09-19 Nick Clifton <nickc@redhat.com>
6706 * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
6707 pop'ed registers so that DCE does not eliminate them.
6709 2014-09-18 Jan Hubicka <hubicka@ucw.cz>
6712 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
6714 2014-09-18 Joseph Myers <joseph@codesourcery.com>
6716 * system.h (LIBGCC2_TF_CEXT): Poison.
6717 * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
6718 * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
6719 * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
6720 * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
6721 * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
6722 * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
6723 * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
6724 * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
6725 * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
6727 2014-09-19 Kito Cheng <kito@0xlab.org>
6729 * except.h: Fix header guard.
6730 * addresses.h: Add missing header guard.
6731 * cfghooks.h: Likewise.
6732 * collect-utils.h: Likewise.
6733 * collect2-aix.h: Likewise.
6734 * conditions.h: Likewise.
6735 * cselib.h: Likewise.
6736 * dwarf2asm.h: Likewise.
6737 * graphds.h: Likewise.
6738 * graphite-scop-detection.h: Likewise.
6739 * gsyms.h: Likewise.
6740 * hw-doloop.h: Likewise.
6741 * incpath.h: Likewise.
6742 * ipa-inline.h: Likewise.
6743 * ipa-ref.h: Likewise.
6744 * ira-int.h: Likewise.
6746 * lra-int.h: Likewise.
6748 * lto-section-names.h: Likewise.
6749 * read-md.h: Likewise.
6750 * reload.h: Likewise.
6751 * rtl-error.h: Likewise.
6752 * sdbout.h: Likewise.
6753 * targhooks.h: Likewise.
6754 * tree-affine.h: Likewise.
6755 * xcoff.h: Likewise.
6756 * xcoffout.h: Likewise.
6758 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
6761 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
6764 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
6767 * lra.c (lra): Call recog_init.
6769 2014-09-18 Jakub Jelinek <jakub@redhat.com>
6772 * asan.c (transform_statements): Don't instrument clobber statements.
6774 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6776 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
6777 to neon_load1_1reg<q>.
6779 2014-09-17 Jakub Jelinek <jakub@redhat.com>
6782 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
6783 if there are only debug stmts after the noreturn call, instead
6784 remove the debug stmts.
6786 2014-09-17 Jan Hubicka <hubicka@ucw.cz>
6788 * ipa-devirt.c (type_pair, default_hashset_traits): New types.
6789 (odr_types_equivalent_p): Use pair hash.
6790 (odr_subtypes_equivalent_p): Likewise, do structural compare
6791 on ODR types that may be mismatched.
6792 (warn_odr): Support warning when only one field is given.
6793 (odr_types_equivalent_p): Strenghten comparsions made;
6795 (add_type_duplicate): Update VISITED hash set.
6797 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
6799 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
6800 Enable selection of 'posix' or no thread model.
6802 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
6804 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
6805 when architecture is older than ARMv7.
6807 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
6810 * config/pa/pa.c (pa_function_value): Directly handle aggregates
6811 that fit exactly in a word or double word.
6813 2014-09-16 Ilya Tocar <ilya.tocar@intel.com>
6815 * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
6818 2014-09-16 Alexander Ivchenko <alexander.ivchenko@intel.com>
6819 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6820 Anna Tikhonova <anna.tikhonova@intel.com>
6821 Ilya Tocar <ilya.tocar@intel.com>
6822 Andrey Turetskiy <andrey.turetskiy@intel.com>
6823 Ilya Verbin <ilya.verbin@intel.com>
6824 Kirill Yukhin <kirill.yukhin@intel.com>
6825 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6827 * config/i386/i386.c
6828 (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
6829 * config/i386/sse.md
6830 (define_mode_iterator VI48F_256): New.
6831 (define_mode_attr extract_type): Ditto.
6832 (define_mode_attr extract_suf): Ditto.
6833 (define_mode_iterator AVX512_VEC): Ditto.
6835 "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
6837 (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
6839 "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
6841 (define_mode_attr extract_type_2): Ditto.
6842 (define_mode_attr extract_suf_2): Ditto.
6843 (define_mode_iterator AVX512_VEC_2): Ditto.
6845 "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
6846 AVX512_VEC_2 mode iterator.
6847 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
6848 (define_expand "avx512vl_vextractf128<mode>"): Ditto.
6849 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
6850 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
6851 (define_split for V16FI mode): Ditto.
6852 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
6853 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
6854 (define_split for VI8F_256 mode): Ditto.
6855 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
6856 (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
6857 (define_insn "vec_extract_lo_<mode><mask_name>"): New.
6858 (define_split for VI4F_256 mode): Ditto.
6859 (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
6860 (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
6861 (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
6862 (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
6863 (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
6864 (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
6865 (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
6866 Update `type' attribute, remove explicit `memory' attribute calculation.
6868 2014-09-16 Kito Cheng <kito@0xlab.org>
6870 * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
6871 ira_spilled_reg_stack_slots_num if using lra.
6872 (do_reload): Remove release ira_spilled_reg_stack_slots part.
6873 * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
6874 make sure not using lra.
6875 (ira_reuse_stack_slot): Likewise.
6876 (ira_mark_new_stack_slot): Likewise.
6878 2014-09-15 Andi Kleen <ak@linux.intel.com>
6880 * function.c (allocate_struct_function): Force
6881 DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
6882 profiling is disabled.
6884 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
6886 * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
6887 config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
6888 emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
6889 reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
6890 macro with statically checked member functions.
6891 * rtl.h (rtx_insn::deleted): New method.
6892 (rtx_insn::set_deleted): Likewise.
6893 (rtx_insn::set_undeleted): Likewise.
6894 (INSN_DELETED_P): Remove.
6896 2014-09-15 Trevor Saunders <tsaunders@mozilla.com>
6898 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
6899 result of emit_jump_insn_before to a new variable.
6900 * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
6901 (mark_jump_label_1): Likewise.
6902 (mark_jump_label_asm): Likewise.
6903 * reload1.c (gen_reload): Change type of tem to rtx_insn *.
6904 * rtl.h (mark_jump_label): Adjust.
6906 2014-09-15 Jakub Jelinek <jakub@redhat.com>
6908 * Makefile.in (dg_target_exps): Remove.
6909 (check_gcc_parallelize): Change to just an upper bound number.
6910 (check-%-subtargets): Always print the non-parallelized goals.
6911 (check_p_vars, check_p_comma, check_p_subwork): Remove.
6912 (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
6913 check_p_numbers3, check_p_numbers4, check_p_numbers5,
6914 check_p_numbers6): New variables.
6915 (check_p_numbers): Set to sequence from 1 to 9999.
6916 (check_p_subdirs): Set to sequence from 1 to minimum of
6917 $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
6919 (check-%, check-parallel-%): Rewritten so that for parallelized
6920 testing each job runs all the *.exp files, with
6921 GCC_RUNTEST_PARALLELIZE_DIR set in environment.
6923 2014-09-15 David Malcolm <dmalcolm@redhat.com>
6925 * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
6927 (arc_sets_cc_p): Likewise.
6928 * config/arc/arc.c (arc_print_operand): Use methods of
6929 "final_sequence" for clarity, and to enable strengthening of
6930 locals "jump" and "delay" from rtx to rtx_insn *.
6931 (arc_adjust_insn_length): Strengthen local "prev" from rtx to
6932 rtx_insn *; use method of rtx_sequence for typesafety.
6933 (arc_get_insn_variants): Use insn method of rtx_sequence for
6935 (arc_pad_return): Likewise.
6936 (arc_attr_type): Strengthen param from rtx to rtx_insn *.
6937 (arc_sets_cc_p): Likewise. Also, convert a GET_CODE check to a
6938 dyn_cast to rtx_sequence *, using insn method for typesafety.
6939 * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
6940 rtx_sequence * and use insn method when invoking get_attr_length.
6941 * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
6942 to rtx_insn *. Replace a GET_CODE check with a dyn_cast to
6943 rtx_sequence *, introducing a local "seq", using its insn method
6944 from typesafety and clarity.
6945 (add_sched_insns_for_speculation): Strengthen local "next" from
6947 * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
6948 (predicate_insn): Likewise.
6949 * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
6951 * config/cris/cris.c (cris_notice_update_cc): Likewise.
6952 * config/epiphany/epiphany-protos.h
6953 (extern void epiphany_insert_mode_switch_use): Likewise for param
6955 (get_attr_sched_use_fpu): Likewise for param.
6956 * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
6957 Likewise for param "insn".
6958 * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
6959 param "insn" of "target_insert_mode_switch_use" callback.
6960 * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
6961 (frv_issues_to_branch_unit_p): Likewise.
6962 (frv_pack_insn_p): Likewise.
6963 (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
6964 const rtx * (i.e. mutable rtx_def * const *) to
6966 * config/i386/i386-protos.h (standard_sse_constant_opcode):
6967 Strengthen first param from rtx to rtx_insn *.
6968 (output_fix_trunc): Likewise.
6969 * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
6970 (output_fix_trunc): Likewise.
6971 (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
6973 (min_insn_size): Likewise for param "insn".
6974 (get_mem_group): Likewise.
6976 (get_insn_path): Likewise.
6977 (get_insn_group): Likewise.
6978 (count_num_restricted): Likewise.
6979 (fits_dispatch_window): Likewise.
6980 (add_insn_window): Likewise.
6981 (add_to_dispatch_window): Likewise.
6982 (debug_insn_dispatch_info_file): Likewise.
6983 * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
6985 * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
6986 "cmp" and local "prev".
6987 (m32c_output_compare): Likewise for param "insn".
6988 * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
6989 a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
6990 (define_predicate "large_insn_p"): Likewise.
6991 * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
6992 param from rtx to rtx_insn *.
6993 (attr_op_mem m68k_sched_attr_op_mem): Likewise.
6994 * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
6995 (m68k_sched_attr_size): Likewise.
6996 (sched_get_opxy_mem_type): Likewise for param "insn".
6997 (m68k_sched_attr_op_mem): Likewise.
6998 (sched_mem_operand_p): Likewise.
6999 * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
7000 * config/mep/mep.c (mep_multi_slot): Likewise.
7001 * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
7003 (mips_sync_loop_insns): Likewise.
7004 * config/mips/mips.c (mips_print_operand_punctuation): Use insn
7005 method of "final_sequence" for typesafety.
7006 (mips_process_sync_loop): Strengthen param "insn" from rtx to
7008 (mips_output_sync_loop): Likewise.
7009 (mips_sync_loop_insns): Likewise.
7010 (mips_74k_agen_init): Likewise.
7011 (mips_sched_init): Use NULL rather than NULL_RTX when working with
7013 * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
7014 Strengthen param "insn" from rtx to rtx_insn *.
7015 * config/nds32/nds32.c (nds32_target_alignment): Likewise for
7017 * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
7019 * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
7020 "insn". Use method of rtx_sequence for typesafety.
7021 (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
7023 (branch_needs_nop_p): Likewise.
7024 (use_skip_p): Likewise.
7025 (pa_insn_refs_are_delayed): Likewise.
7026 * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
7027 for locals "insn", "ninsn".
7028 * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
7030 (is_cracked_insn): Likewise.
7031 (is_branch_slot_insn): Likewise.
7032 (is_nonpipeline_insn): Likewise.
7033 (insn_terminates_group_p): Likewise.
7034 (insn_must_be_first_in_group): Likewise.
7035 (insn_must_be_last_in_group): Likewise.
7036 (force_new_group): Likewise for param "next_insn".
7037 * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
7039 (s390_sched_score): Likewise.
7040 * config/sh/sh-protos.h (output_branch): Likewise for param 2.
7041 (rtx sfunc_uses_reg): Likewise for sole param.
7042 * config/sh/sh.c (sh_print_operand): Use insn method of
7043 final_sequence for typesafety.
7044 (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
7045 Use insn method of final_sequence for typesafety.
7046 (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
7047 * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
7049 (eligible_for_return_delay): Likewise.
7050 (eligible_for_sibcall_delay): Likewise.
7051 * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
7052 (eligible_for_return_delay): Likewise.
7053 (eligible_for_sibcall_delay): Likewise.
7054 * config/stormy16/stormy16-protos.h
7055 (xstormy16_output_cbranch_hi): Likewise for final param.
7056 (xstormy16_output_cbranch_si): Likewise.
7057 * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
7058 (xstormy16_output_cbranch_si): Likewise.
7059 * config/v850/v850-protos.h (notice_update_cc): Likewise.
7060 * config/v850/v850.c (notice_update_cc): Likewise.
7062 * final.c (get_attr_length_1): Strengthen param "insn" and param
7063 of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
7064 (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
7065 (get_attr_min_length): Likewise.
7066 (shorten_branches): Likewise for signature of locals "length_fun"
7067 and "inner_length_fun". Introduce local rtx_sequence * "seqn"
7068 from a checked cast and use its methods for clarity and to enable
7069 strengthening local "inner_insn" from rtx to rtx_insn *.
7070 * genattr.c (gen_attr): When writing out the prototypes of the
7071 various generated "get_attr_" functions, strengthen the params of
7072 the non-const functions from rtx to rtx_insn *.
7073 Similarly, strengthen the params of insn_default_length,
7074 insn_min_length, insn_variable_length_p, insn_current_length.
7075 (main): Similarly, strengthen the param of num_delay_slots,
7076 internal_dfa_insn_code, insn_default_latency, bypass_p,
7077 insn_latency, min_issue_delay, print_reservation,
7078 insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
7079 "insn_default_latency" callbacks. Rename hook_int_rtx_unreachable
7080 to hook_int_rtx_insn_unreachable.
7081 * genattrtab.c (write_attr_get): When writing out the generated
7082 "get_attr_" functions, strengthen the param "insn" from rtx to
7083 rtx_insn *, eliminating a checked cast.
7084 (make_automaton_attrs): When writing out prototypes of
7085 "internal_dfa_insn_code_", "insn_default_latency_" functions
7086 and the "internal_dfa_insn_code" and "insn_default_latency"
7087 callbacks, strengthen their params from rtx to rtx_insn *
7088 * genautomata.c (output_internal_insn_code_evaluation): When
7089 writing out code, add a checked cast from rtx to rtx_insn * when
7090 invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
7091 (output_dfa_insn_code_func): Strengthen param of generated
7092 function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
7093 (output_trans_func): Likewise for generated function
7095 (output_internal_insn_latency_func): When writing out generated
7096 function "internal_insn_latency", rename params from "insn" and
7097 "insn2" to "insn_or_const0" and "insn2_or_const0". Reintroduce
7098 locals "insn" and "insn2" as rtx_insn * with checked casts once
7099 we've proven that we're not dealing with const0_rtx.
7100 (output_insn_latency_func): Strengthen param of generated
7101 function "insn_latency" from rtx to rtx_insn *.
7102 (output_print_reservation_func): Likewise for generated function
7103 "print_reservation".
7104 (output_insn_has_dfa_reservation_p): Likewise for generated
7105 function "insn_has_dfa_reservation_p".
7106 * hooks.c (hook_int_rtx_unreachable): Rename to...
7107 (hook_int_rtx_insn_unreachable): ...this, and strengthen param
7108 from rtx to rtx_insn *.
7109 * hooks.h (hook_int_rtx_unreachable): Likewise.
7110 (extern int hook_int_rtx_insn_unreachable): Likewise.
7111 * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
7112 (get_attr_min_length): Likewise.
7113 * recog.c (get_enabled_alternatives): Likewise.
7114 * recog.h (alternative_mask get_enabled_alternatives): Likewise.
7115 * reorg.c (find_end_label): Introduce local rtx "pat" and
7116 strengthen local "insn" from rtx to rtx_insn *.
7117 (redundant_insn): Use insn method of "seq" rather than element for
7118 typesafety; strengthen local "control" from rtx to rtx_insn *.
7119 * resource.c (mark_referenced_resources): Add checked cast to
7120 rtx_insn * within INSN/JUMP_INSN case.
7121 (mark_set_resources): Likewise.
7122 * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
7125 2014-09-15 David Malcolm <dmalcolm@redhat.com>
7127 * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
7128 param "label" from rtx to rtx_insn *.
7129 * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
7131 * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
7132 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
7133 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
7134 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
7135 * final.c (default_label_align_after_barrier_max_skip): Strengthen
7136 param from rtx to rtx_insn *.
7137 (default_loop_align_max_skip): Likewise.
7138 (default_label_align_max_skip): Likewise.
7139 (default_jump_align_max_skip): Likewise.
7140 * target.def (label_align_after_barrier_max_skip): Likewise.
7141 (loop_align_max_skip): Likewise.
7142 (label_align_max_skip): Likewise.
7143 (jump_align_max_skip): Likewise.
7144 * targhooks.h (default_label_align_after_barrier_max_skip):
7146 (default_loop_align_max_skip): Likewise.
7147 (default_label_align_max_skip): Likewise.
7148 (default_jump_align_max_skip): Likewise.
7150 2014-09-15 David Malcolm <dmalcolm@redhat.com>
7152 * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
7153 from const_rtx to const rtx_insn *. Update union members from rtx
7155 * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
7156 * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
7157 (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
7158 strengthen both params from const_rtx to const rtx_insn *.
7159 * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
7160 (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
7161 * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
7163 * target.def (can_follow_jump): Strengthen both params from
7164 const_rtx to const rtx_insn *, and update default implementation
7165 from hook_bool_const_rtx_const_rtx_true to
7166 hook_bool_const_rtx_insn_const_rtx_insn_true.
7168 2014-09-15 David Malcolm <dmalcolm@redhat.com>
7170 * sched-deps.c (deps_start_bb): Strengthen param "head" and local
7171 "insn" from rtx to rtx_insn *.
7172 * sched-int.h (deps_start_bb): Likewise for 2nd param.
7174 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
7175 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7176 Anna Tikhonova <anna.tikhonova@intel.com>
7177 Ilya Tocar <ilya.tocar@intel.com>
7178 Andrey Turetskiy <andrey.turetskiy@intel.com>
7179 Ilya Verbin <ilya.verbin@intel.com>
7180 Kirill Yukhin <kirill.yukhin@intel.com>
7181 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7183 * config/i386/sse.md
7184 (define_insn "vcvtph2ps<mask_name>"): Add masking.
7185 (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
7186 (define_insn "vcvtph2ps256<mask_name>"): Ditto.
7187 (define_expand "vcvtps2ph_mask"): New.
7188 (define_insn "*vcvtps2ph<mask_name>"): Add masking.
7189 (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
7190 (define_insn "vcvtps2ph256<mask_name>"): Ditto.
7192 2014-09-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
7193 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7194 Anna Tikhonova <anna.tikhonova@intel.com>
7195 Ilya Tocar <ilya.tocar@intel.com>
7196 Andrey Turetskiy <andrey.turetskiy@intel.com>
7197 Ilya Verbin <ilya.verbin@intel.com>
7198 Kirill Yukhin <kirill.yukhin@intel.com>
7199 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7201 * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
7203 (define_mode_iterator VI24_AVX512BW_1): Ditto.
7204 (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
7205 (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
7206 (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
7207 also for TARGET_AVX512VL.
7208 (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
7210 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
7212 * doc/install.texi (Options specification): add
7213 --disable-libsanitizer item.
7215 2014-09-14 James Clarke <jrtc27@jrtc27.com>
7216 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7219 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
7221 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
7222 kernel version check to avoid incrementing it after every major OS X
7224 (darwin_default_min_version): Avoid static memory buffer.
7226 2014-09-13 Jan Hubicka <hubicka@ucw.cz>
7228 * tree.c (need_assembler_name_p): Store C++ type mangling only
7231 2014-09-13 Marek Polacek <polacek@redhat.com>
7233 * tree.c (protected_set_expr_location): Don't check whether T is
7236 2014-09-12 DJ Delorie <dj@redhat.com>
7238 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
7239 (extend_and_shift1_hipsi2): Likewise.
7240 (extend_and_shift2_hipsi2): Likewise.
7242 2014-09-12 David Malcolm <dmalcolm@redhat.com>
7244 * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
7245 with NULL when dealing with an insn.
7246 * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
7247 from rtx to rtx_insn *.
7248 * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
7249 const_rtx to const rtx_insn *.
7250 * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
7252 2014-09-12 Trevor Saunders <tsaunders@mozilla.com>
7254 * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
7257 2014-09-12 Joseph Myers <joseph@codesourcery.com>
7259 * target.def (libgcc_floating_mode_supported_p): New hook.
7260 * targhooks.c (default_libgcc_floating_mode_supported_p): New
7262 * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
7263 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
7264 (LIBGCC2_HAS_TF_MODE): Remove.
7265 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
7266 * doc/tm.texi: Regenerate.
7267 * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
7269 * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
7270 (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
7271 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
7272 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
7273 * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7274 * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
7275 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
7276 * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
7277 * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
7278 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
7280 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
7281 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7282 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7283 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7284 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7285 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7286 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7287 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
7288 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
7289 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
7290 * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
7291 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
7292 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
7293 * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
7295 * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
7297 (ia64_libgcc_floating_mode_supported_p): New function.
7298 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
7299 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
7300 (IA64_NO_LIBGCC_TFMODE): Define.
7301 * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
7302 * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
7304 (pdp11_scalar_mode_supported_p): New function.
7305 * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
7306 * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
7308 2014-09-12 Richard Biener <rguenther@suse.de>
7311 * gimple-fold.c (get_maxval_strlen): Gimplify string length.
7313 2014-09-12 Marc Glisse <marc.glisse@inria.fr>
7315 * tree.c (integer_each_onep): New function.
7316 * tree.h (integer_each_onep): Declare it.
7317 * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
7318 -A - 1 to ~A. Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
7319 (X & 1) == 0 for vector and complex.
7321 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
7323 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
7325 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
7326 cost to spilling from integer to FP registers.
7328 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
7330 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
7332 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
7333 are now handled correctly.
7335 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
7337 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
7338 handling of CALLER_SAVE_REGS and POINTER_REGS.
7340 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
7342 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
7343 the number of hard registers.
7345 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
7346 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7347 Anna Tikhonova <anna.tikhonova@intel.com>
7348 Ilya Tocar <ilya.tocar@intel.com>
7349 Andrey Turetskiy <andrey.turetskiy@intel.com>
7350 Ilya Verbin <ilya.verbin@intel.com>
7351 Kirill Yukhin <kirill.yukhin@intel.com>
7352 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7354 * config/i386/sse.md
7355 (define_mode_iterator VI48_AVX512VL): New.
7356 (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
7357 "avx512f_vternlog<mode>_maskz" and update mode iterator.
7358 (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
7359 from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
7360 (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
7361 "avx512f_vternlog<mode>_mask" and update mode iterator.
7362 (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
7363 from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
7365 (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
7366 "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
7367 (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
7368 "avx512f_<rotate><mode><mask_name>" and update mode iterator.
7369 (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
7370 (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
7372 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
7373 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7374 Anna Tikhonova <anna.tikhonova@intel.com>
7375 Ilya Tocar <ilya.tocar@intel.com>
7376 Andrey Turetskiy <andrey.turetskiy@intel.com>
7377 Ilya Verbin <ilya.verbin@intel.com>
7378 Kirill Yukhin <kirill.yukhin@intel.com>
7379 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7381 * config/i386/sse.md (VI128_256): Delete.
7382 (define_mode_iterator VI124_256): New.
7383 (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
7384 (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
7385 (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
7386 (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
7387 "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
7388 (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
7389 (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
7390 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
7392 (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
7393 in presence of AVX-512.
7395 2014-09-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
7396 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7397 Anna Tikhonova <anna.tikhonova@intel.com>
7398 Ilya Tocar <ilya.tocar@intel.com>
7399 Andrey Turetskiy <andrey.turetskiy@intel.com>
7400 Ilya Verbin <ilya.verbin@intel.com>
7401 Kirill Yukhin <kirill.yukhin@intel.com>
7402 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7404 * config/i386/sse.md
7405 (define_expand "<avx512>_gathersi<mode>"): Rename from
7406 "avx512f_gathersi<mode>".
7407 (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
7408 (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
7409 (define_expand "<avx512>_gatherdi<mode>"): Rename from
7410 "avx512f_gatherdi<mode>".
7411 (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
7412 (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
7414 (define_expand "<avx512>_scattersi<mode>"): Rename from
7415 "avx512f_scattersi<mode>".
7416 (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
7417 (define_expand "<avx512>_scatterdi<mode>"): Rename from
7418 "avx512f_scatterdi<mode>".
7419 (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
7421 2014-09-12 Richard Sandiford <richard.sandiford@arm.com>
7423 * ira.h (ira_finish_once): Delete.
7424 * ira-int.h (target_ira_int::~target_ira_int): Declare.
7425 (target_ira_int::free_ira_costs): Likewise.
7426 (target_ira_int::free_register_move_costs): Likewise.
7427 (ira_finish_costs_once): Delete.
7428 * ira.c (free_register_move_costs): Replace with...
7429 (target_ira_int::free_register_move_costs): ...this new function.
7430 (target_ira_int::~target_ira_int): Define.
7431 (ira_init): Call free_register_move_costs as a member function rather
7432 than a global function.
7433 (ira_finish_once): Delete.
7434 * ira-costs.c (free_ira_costs): Replace with...
7435 (target_ira_int::free_ira_costs): ...this new function.
7436 (ira_init_costs): Call free_ira_costs as a member function rather
7437 than a global function.
7438 (ira_finish_costs_once): Delete.
7439 * target-globals.c (target_globals::~target_globals): Call the
7440 target_ira_int destructor.
7441 * toplev.c: Include lra.h.
7442 (finalize): Call lra_finish_once rather than ira_finish_once.
7444 2014-09-11 Jan Hubicka <hubicka@ucw.cz>
7446 * common.opt (flto-odr-type-merging): New flag.
7447 * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
7448 (types_same_for_odr): Likewise.
7449 (odr_subtypes_equivalent_p): Likewise.
7450 (add_type_duplicate): Do not walk type variants.
7451 (register_odr_type): New function.
7452 * ipa-utils.h (register_odr_type): Declare.
7453 (odr_type_p): New function.
7454 * langhooks.c (lhd_set_decl_assembler_name): Do not compute
7456 * doc/invoke.texi (-flto-odr-type-merging): Document.
7457 * tree.c (need_assembler_name_p): Compute ODR names when asked
7459 * tree.h (DECL_ASSEMBLER_NAME): Update comment.
7461 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
7464 * config/i386/i386.c (ix86_option_override_internal): Also turn
7465 off OPTION_MASK_ABI_X32 for -m16.
7467 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
7469 * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
7472 2014-09-11 Marc Glisse <marc.glisse@inria.fr>
7475 * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
7476 Directly forward to __*_DENORM_MIN__.
7478 2014-09-11 David Malcolm <dmalcolm@redhat.com>
7480 * rtl.h (LABEL_REF_LABEL): New macro.
7482 * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
7483 of XEXP (, 0), where we know that we have a LABEL_REF.
7484 * cfgbuild.c (make_edges): Likewise.
7485 (purge_dead_tablejump_edges): Likewise.
7486 * cfgexpand.c (convert_debug_memory_address): Likewise.
7487 * cfgrtl.c (patch_jump_insn): Likewise.
7488 * combine.c (distribute_notes): Likewise.
7489 * cse.c (hash_rtx_cb): Likewise.
7490 (exp_equiv_p): Likewise.
7491 (fold_rtx): Likewise.
7492 (check_for_label_ref): Likewise.
7493 * cselib.c (rtx_equal_for_cselib_1): Likewise.
7494 (cselib_hash_rtx): Likewise.
7495 * emit-rtl.c (mark_label_nuses): Likewise.
7496 * explow.c (convert_memory_address_addr_space): Likewise.
7497 * final.c (output_asm_label): Likewise.
7498 (output_addr_const): Likewise.
7499 * gcse.c (add_label_notes): Likewise.
7500 * genconfig.c (walk_insn_part): Likewise.
7501 * genrecog.c (validate_pattern): Likewise.
7502 * ifcvt.c (cond_exec_get_condition): Likewise.
7503 (noce_emit_store_flag): Likewise.
7504 (noce_get_alt_condition): Likewise.
7505 (noce_get_condition): Likewise.
7506 * jump.c (maybe_propagate_label_ref): Likewise.
7507 (mark_jump_label_1): Likewise.
7508 (redirect_exp_1): Likewise.
7509 (rtx_renumbered_equal_p): Likewise.
7510 * lra-constraints.c (operands_match_p): Likewise.
7511 * reload.c (operands_match_p): Likewise.
7512 (find_reloads): Likewise.
7513 * reload1.c (set_label_offsets): Likewise.
7514 * reorg.c (get_branch_condition): Likewise.
7515 * rtl.c (rtx_equal_p_cb): Likewise.
7516 (rtx_equal_p): Likewise.
7517 * rtlanal.c (reg_mentioned_p): Likewise.
7518 (rtx_referenced_p): Likewise.
7519 (get_condition): Likewise.
7520 * sched-vis.c (print_value): Likewise.
7521 * varasm.c (const_hash_1): Likewise.
7522 (compare_constant): Likewise.
7523 (const_rtx_hash_1): Likewise.
7524 (output_constant_pool_1): Likewise.
7526 2014-09-11 Segher Boessenkool <segher@kernel.crashing.org>
7528 * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
7529 tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
7531 * config/rs6000/vector.md (cr6_test_for_zero_reverse,
7532 cr6_test_for_lt_reverse): Ditto.
7534 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com>
7537 * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
7539 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
7541 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
7542 TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
7543 aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
7544 aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
7547 (aarch64_fold_builtin): Remove all reinterpret cases.
7549 * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
7551 * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
7553 * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
7554 aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
7555 aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
7556 aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
7557 aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
7558 aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
7559 aarch64_reinterpretv2df<mode>): Delete.
7561 * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
7563 * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
7564 vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
7565 vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
7566 vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
7567 vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
7568 vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
7569 vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
7570 vreinterpret_u32_f64): Use cast.
7572 * config/aarch64/iterators.md (VD_RE): Delete.
7574 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
7576 * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
7577 (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
7578 vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
7579 vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
7580 vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
7581 vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
7582 vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
7583 Replace inline assembler with __aarch64_vset_lane_any.
7585 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
7587 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
7589 (vmull_high_lane_s32): Likewise.
7590 (vmull_high_lane_u16): Likewise.
7591 (vmull_high_lane_u32): Likewise.
7593 2014-09-11 Jason Merrill <jason@redhat.com>
7596 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
7598 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
7601 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
7602 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
7603 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
7605 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
7606 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7607 Anna Tikhonova <anna.tikhonova@intel.com>
7608 Ilya Tocar <ilya.tocar@intel.com>
7609 Andrey Turetskiy <andrey.turetskiy@intel.com>
7610 Ilya Verbin <ilya.verbin@intel.com>
7611 Kirill Yukhin <kirill.yukhin@intel.com>
7612 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7614 * config/i386/sse.md
7615 (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
7616 "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
7617 (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
7619 (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
7620 from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
7622 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
7624 (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
7625 "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
7626 (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
7627 (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
7628 "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
7629 (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
7630 (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
7631 from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
7633 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
7635 (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
7636 "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
7637 (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
7639 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
7641 * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
7642 to access removed nodes.
7644 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
7646 PR tree-optimization/63186
7647 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
7648 (mark_nonssa_use): Likewise.
7649 (verify_non_ssa_vars): Verify all header blocks for label
7652 2014-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
7653 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7654 Anna Tikhonova <anna.tikhonova@intel.com>
7655 Ilya Tocar <ilya.tocar@intel.com>
7656 Andrey Turetskiy <andrey.turetskiy@intel.com>
7657 Ilya Verbin <ilya.verbin@intel.com>
7658 Kirill Yukhin <kirill.yukhin@intel.com>
7659 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7661 * config/i386/sse.md
7662 (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
7663 (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
7664 (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
7665 "<avx2_avx512f>_permvar<mode><mask_name>".
7666 (define_insn "<avx512>_permvar<mode><mask_name>"): New.
7667 (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
7668 Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
7669 (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
7671 (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
7672 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
7673 (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
7674 Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
7676 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
7678 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
7679 V2DF, V4SF, DF, and DI modes.
7680 (vsx_fmav2df2): Likewise.
7681 (vsx_float_fix_<mode>2): Likewise.
7682 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
7684 2014-09-10 Xinliang David Li <davidxl@google.com>
7687 * config/arm/arm.md (movcond_addsi): Handle case where source
7688 and target operands are the same.
7690 2014-09-10 David Malcolm <dmalcolm@redhat.com>
7692 * final.c (this_is_asm_operands): Strengthen this variable from
7693 rtx to const rtx_insn *.
7694 * output.h (this_is_asm_operands): Likewise.
7695 * rtl-error.c (location_for_asm): Strengthen param "insn" from
7696 const_rtx to const rtx_insn *.
7697 (diagnostic_for_asm): Likewise.
7698 * rtl-error.h (error_for_asm): Likewise.
7699 (warning_for_asm): Likewise.
7701 2014-09-10 David Malcolm <dmalcolm@redhat.com>
7703 * genextract.c (print_header): When writing out insn_extract to
7704 insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
7705 * recog.h (insn_extract): Strengthen the param from rtx to
7708 2014-09-10 Mike Stump <mikestump@comcast.net>
7710 * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
7713 2014-09-10 Martin Jambor <mjambor@suse.cz>
7715 * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
7716 (analyze): Do not set analyze flag if expand_thunk returns false;.
7717 (create_wrapper): Likewise.
7718 * cgraphclones.c (duplicate_thunk_for_node): Likewise.
7720 2014-09-10 Martin Jambor <mjambor@suse.cz>
7723 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
7724 new decl properly. Analyze the new thunk if it is expanded.
7726 2014-09-10 Andreas Schwab <schwab@suse.de>
7728 * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
7729 [USED_FOR_TARGET]: Define.
7731 2014-09-10 Matthew Fortune <matthew.fortune@imgtec.com>
7733 * config/mips/mips.c (mips_secondary_reload_class): Handle
7736 2014-09-10 Robert Suchanek <robert.suchanek@imgtec.com>
7738 * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
7741 2014-09-10 Jakub Jelinek <jakub@redhat.com>
7743 * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
7744 and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
7745 * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
7746 SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
7747 flag_delete_null_pointer_checks for them.
7748 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
7749 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
7750 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
7751 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
7752 * ubsan.c (instrument_bool_enum_load): Set *gsi back to
7754 (instrument_nonnull_arg, instrument_nonnull_return): New functions.
7755 (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
7756 or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
7757 (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
7758 * doc/invoke.texi (-fsanitize=nonnull-attribute,
7759 -fsanitize=returns-nonnull-attribute): Document.
7761 * ubsan.h (struct ubsan_mismatch_data): Removed.
7762 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
7763 * ubsan.c (ubsan_source_location): For unknown locations,
7764 pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
7765 (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
7766 Allow more than one location and arbitrary extra arguments passed
7767 in ... instead of through MISMATCH pointer.
7768 (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
7769 ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
7770 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
7773 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
7774 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7775 Anna Tikhonova <anna.tikhonova@intel.com>
7776 Ilya Tocar <ilya.tocar@intel.com>
7777 Andrey Turetskiy <andrey.turetskiy@intel.com>
7778 Ilya Verbin <ilya.verbin@intel.com>
7779 Kirill Yukhin <kirill.yukhin@intel.com>
7780 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7782 * config/i386/sse.md
7783 (define_mode_iterator VI48F): New.
7784 (define_insn "<avx512>_compress<mode>_mask"): Rename from
7785 "avx512f_compress<mode>_mask" and update mode iterator.
7786 (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
7787 "avx512f_compressstore<mode>_mask" and update mode iterator.
7788 (define_expand "<avx512>_expand<mode>_maskz"): Rename from
7789 "avx512f_expand<mode>_maskz" and update mode iterator.
7790 (define_insn "<avx512>_expand<mode>_mask"): Rename from
7791 "avx512f_expand<mode>_mask" and update mode iterator.
7793 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
7794 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7795 Anna Tikhonova <anna.tikhonova@intel.com>
7796 Ilya Tocar <ilya.tocar@intel.com>
7797 Andrey Turetskiy <andrey.turetskiy@intel.com>
7798 Ilya Verbin <ilya.verbin@intel.com>
7799 Kirill Yukhin <kirill.yukhin@intel.com>
7800 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7802 * config/i386/i386.c
7803 (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
7804 avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
7805 avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
7806 avx512dq_rangepv4sf_mask.
7807 * config/i386/sse.md
7808 (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
7810 (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
7811 (define_insn "reduces<mode>"): Ditto.
7812 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
7814 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
7815 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
7816 (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
7818 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
7819 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7820 Anna Tikhonova <anna.tikhonova@intel.com>
7821 Ilya Tocar <ilya.tocar@intel.com>
7822 Andrey Turetskiy <andrey.turetskiy@intel.com>
7823 Ilya Verbin <ilya.verbin@intel.com>
7824 Kirill Yukhin <kirill.yukhin@intel.com>
7825 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7827 * config/i386/i386.c
7828 (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
7829 (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
7830 (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
7831 avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
7832 avx512vl_getmantv2df_mask.
7833 (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
7834 avx512f_vgetmantv4sf_round.
7835 * config/i386/sse.md
7836 (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
7837 Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
7839 (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
7840 (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
7841 (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
7842 from "avx512f_scalef<mode><mask_name><round_name>" and update mode
7844 (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
7845 Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
7846 update mode iterator.
7848 "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
7849 "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
7852 "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
7853 from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
7854 update mode iterator.
7855 (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
7856 from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
7859 "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
7860 "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
7862 (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
7863 Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
7864 update mode iterator.
7865 (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
7866 "avx512f_getmant<mode><round_saeonly_name>".
7868 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
7871 * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
7873 2014-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
7874 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7875 Anna Tikhonova <anna.tikhonova@intel.com>
7876 Ilya Tocar <ilya.tocar@intel.com>
7877 Andrey Turetskiy <andrey.turetskiy@intel.com>
7878 Ilya Verbin <ilya.verbin@intel.com>
7879 Kirill Yukhin <kirill.yukhin@intel.com>
7880 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7882 * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
7883 (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
7884 (define_mode_iterator FMAMODE_AVX512): New.
7885 (define_mode_iterator FMAMODE): Remove conditions.
7886 (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
7887 (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
7888 from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
7890 (define_mode_iterator FMAMODE_NOVF512): Remove.
7891 (define_insn "*fma_fmadd_<mode>"): Rename from
7892 "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
7893 FMAMODE mode iterator.
7894 (define_mode_iterator VF_SF_AVX512VL): New.
7895 (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
7896 Use VF_SF_AVX512VL mode iterator.
7897 (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
7898 "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
7900 (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
7901 "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
7903 (define_insn "*fma_fmsub_<mode>"): Rename from
7904 "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
7905 FMAMODE mode iterator.
7906 (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
7907 Use VF_SF_AVX512VL mode iterator.
7908 (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
7909 "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
7911 (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
7912 "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
7914 (define_insn "*fma_fnmadd_<mode>"): Rename from
7915 "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
7916 use FMAMODE mode iterator.
7917 (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
7918 Use VF_SF_AVX512VL mode iterator.
7919 (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
7920 "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
7922 (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
7923 "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
7925 (define_insn "*fma_fnmsub_<mode>"): Rename from
7926 "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
7927 FMAMODE mode iterator.
7928 (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
7929 Use VF_SF_AVX512VL mode iterator.
7930 (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
7931 "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
7933 (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
7934 "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
7936 (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
7937 Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
7938 use VF_AVX512VL mode iterator.
7939 (define_insn "*fma_fmaddsub_<mode>"): Rename from
7940 "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
7942 (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
7943 Use VF_SF_AVX512VL mode iterator.
7944 (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
7945 "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
7947 (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
7948 "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
7950 (define_insn "*fma_fmsubadd_<mode>"): Rename from
7951 "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
7952 remove usage of subst.
7953 (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
7954 Use VF_SF_AVX512VL mode iterator.
7955 (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
7956 "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
7958 (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
7959 "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
7962 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org>
7965 * calls.c (precompute_arguments): Check
7966 promoted_for_signed_and_unsigned_p and set the promoted mode.
7967 (promoted_for_signed_and_unsigned_p): New function.
7968 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
7969 and set the promoted mode.
7970 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
7971 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
7972 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
7974 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
7976 * opth-gen.awk: Generate mapping from cpp message reasons to the
7977 options that enable them.
7978 * doc/options.texi (CppReason): Document.
7980 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
7982 * doc/invoke.texi (Wnormalized=): Update.
7984 2014-09-09 Segher Boessenkool <segher@kernel.crashing.org>
7987 * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
7988 operands. Split off the constant operand alternative to ...
7989 (*bool<mode>3_imm): New.
7991 2014-09-09 David Malcolm <dmalcolm@redhat.com>
7993 * rtl.h (single_set_2): Strengthen first param from const_rtx to
7994 const rtx_insn *, and move prototype to above...
7995 (single_set): ...this. Convert this from a macro to an inline
7996 function, enforcing the requirement that the param is a const
7998 (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
8000 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
8001 Strengthen both params from rtx to rtx_insn *.
8002 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8003 Likewise; introduce locals "producer_set", "consumer_set", using
8004 them in place of "producer" and "consumer" when dealing with SET
8006 * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
8007 when invoking single_set in region guarded by INSN_P.
8008 (avr_out_bitop): Likewise.
8009 (_reg_unused_after): Introduce local rtx_sequence * "seq" in
8010 region guarded by GET_CODE check, using methods to strengthen
8011 local "this_insn" from rtx to rtx_insn *, and for clarity.
8012 * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
8013 Strengthen local "insn" from rtx to rtx_insn *.
8014 (define_insn_and_split "xload<mode>_A"): Likewise.
8015 * config/bfin/bfin.c (trapping_loads_p): Likewise for param
8017 (find_load): Likewise for return type.
8018 (workaround_speculation): Likewise for both locals named
8020 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
8022 * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
8024 * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
8026 * config/h8300/h8300.c (notice_update_cc): Likewise.
8027 * config/i386/i386.c (ix86_flags_dependent): Likewise for params
8028 "insn" and "dep_insn".
8029 (exact_store_load_dependency): Likewise for both params.
8030 (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
8031 since this now clashes with inline function. Instead, delay
8032 calling single_set until the point where its needed, and then
8033 assign the result to "compare_set" and rework the conditional that
8035 * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
8036 local "last" from rtx to rtx_insn *.
8037 * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
8039 (mips_store_data_bypass_p): Likewise for both params.
8040 * config/mips/mips.c (mips_load_store_insns): Likewise for second
8042 (mips_store_data_bypass_p): Likewise for both params.
8043 (mips_orphaned_high_part_p): Likewise for param "insn".
8044 * config/mn10300/mn10300.c (extract_bundle): Likewise.
8045 (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
8046 Introduce local rtx "insn2_pat".
8047 * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
8049 (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
8050 Introduce local rtx "set", using it in place of "insn" for the
8051 result of single_set. This appears to fix a bug, since the call
8052 to find_regno_note on a SET does nothing.
8053 * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
8054 params from rtx to rtx_insn *.
8055 (set_to_load_agen): Likewise.
8056 * config/s390/s390.c (s390_label_align): Likewise for local
8057 "prev_insn". Introduce new rtx locals "set" and "src", using
8058 them in place of "prev_insn" for the results of single_set
8059 and SET_SRC respectively.
8060 (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
8061 Introduce new rtx local "set" using in place of "jump" for the
8062 result of single_set. Use SET_SRC (set) rather than plain
8064 * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
8066 (noncall_uses_reg): Likewise.
8067 (reg_unused_after): Introduce local rtx_sequence * "seq" in region
8068 guarded by GET_CODE check, using its methods for clarity, and to
8069 enable strengthening local "this_insn" from rtx to rtx_insn *.
8070 * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
8071 "insn" from rtx to rtx_insn *.
8072 (define_expand "umulhisi3"): Likewise.
8073 (define_expand "smulsi3_highpart"): Likewise.
8074 (define_expand "umulsi3_highpart"): Likewise.
8075 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8076 local "after". Replace GET_CODE check with a dyn_cast,
8077 introducing new local rtx_sequence * "seq", using insn method for
8080 * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
8081 from rtx to rtx_insn *. Introduce local rtx "pat", using it in
8082 place of "insn" once we're dealing with patterns rather than the
8084 (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
8085 (scan_trace): Likewise for local "elt", updating lookups within
8086 sequence to use insn method rather than element method.
8087 * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
8089 * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
8090 * ifcvt.c (noce_try_abs): Likewise for local "insn".
8091 * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
8092 invoking single_set.
8093 * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
8094 "insn" from rtx to rtx_insn *.
8095 (skip_usage_debug_insns): Likewise for return type, adding a
8097 (check_secondary_memory_needed_p): Likewise for local "insn".
8098 (inherit_reload_reg): Likewise.
8099 * modulo-sched.c (sms_schedule): Likewise for local "count_init".
8100 * recog.c (peep2_attempt): Likewise for local "old_insn", adding
8102 (store_data_bypass_p): Likewise for both params.
8103 (if_test_bypass_p): Likewise.
8104 * recog.h (store_data_bypass_p): Likewise for both params.
8105 (if_test_bypass_p): Likewise.
8106 * reload.c (find_equiv_reg): Likewise for local "where".
8107 * reorg.c (delete_jump): Likewise for param "insn".
8108 * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
8109 to const rtx_insn *.
8110 * store-motion.c (replace_store_insn): Likewise for param "del".
8111 (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
8112 and use its methods for clarity, and to strengthen local "del"
8113 from rtx to rtx_insn *.
8114 (build_store_vectors): Use insn method of "st" when calling
8115 replace_store_insn for typesafety and clarity.
8117 2014-09-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8119 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
8120 UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
8121 on how to make it legal in future.
8123 2014-09-09 David Malcolm <dmalcolm@redhat.com>
8125 * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
8127 (restinsn): Likewise.
8128 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
8130 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
8132 * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
8134 (arc_hazard): Likewise for both params.
8135 * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
8136 checked casts to rtx_sequence * and uses of the insn method for
8138 (arc_hazard): Strengthen both params from rtx to rtx_insn *.
8139 (arc_adjust_insn_length): Likewise for param "insn".
8140 (struct insn_length_parameters_s): Likewise for first param of
8141 "get_variants" callback field.
8142 (arc_get_insn_variants): Likewise for first param and local
8143 "inner". Replace a check of GET_CODE with a dyn_cast to
8144 rtx_sequence *, using methods for type-safety and clarity.
8145 * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
8146 rtx_sequence * and uses of the insn method for type-safety when
8147 invoking arc_adjust_insn_length.
8148 * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
8150 (arm_address_offset_is_imm): Likewise.
8151 (struct tune_params): Likewise for params 1 and 3 of the
8152 "sched_adjust_cost" callback field.
8153 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
8154 params 1 and 3 ("insn" and "dep").
8155 (xscale_sched_adjust_cost): Likewise.
8156 (fa726te_sched_adjust_cost): Likewise.
8157 (cortexa7_older_only): Likewise for param "insn".
8158 (cortexa7_younger): Likewise.
8159 (arm_attr_length_move_neon): Likewise.
8160 (arm_address_offset_is_imm): Likewise.
8161 * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
8162 * config/avr/avr.c (avr_notice_update_cc): Likewise.
8163 * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
8164 (workaround_speculation): Likewise for local "last_condjump".
8165 * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
8166 (shadow_or_blockage_p): Likewise.
8167 (get_unit_reqs): Likewise.
8168 (get_unit_operand_masks): Likewise.
8169 (c6x_registers_update): Likewise.
8170 (returning_call_p): Likewise.
8171 (can_use_callp): Likewise.
8172 (convert_to_callp): Likewise.
8173 (find_last_same_clock): Likwise for local "t".
8174 (reorg_split_calls): Likewise for local "shadow".
8175 (hwloop_pattern_reg): Likewise for param "insn".
8176 * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
8177 * config/frv/frv.c (frv_final_prescan_insn): Likewise.
8178 (frv_extract_membar): Likewise.
8179 (frv_optimize_membar_local): Strengthen param "last_membar" from
8180 rtx * to rtx_insn **.
8181 (frv_optimize_membar_global): Strengthen param "membar" from rtx
8183 (frv_optimize_membar): Strengthen local "last_membar" from rtx *
8185 * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
8186 both params from rtx to rtx_insn *.
8187 (ia64_ld_address_bypass_p): Likewise.
8188 * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
8190 (ia64_safe_type): Likewise.
8191 (group_barrier_needed): Likewise.
8192 (safe_group_barrier_needed): Likewise.
8193 (ia64_single_set): Likewise.
8194 (is_load_p): Likewise.
8195 (record_memory_reference): Likewise.
8196 (get_mode_no_for_insn): Likewise.
8197 (important_for_bundling_p): Likewise.
8198 (unknown_for_bundling_p): Likewise.
8199 (ia64_st_address_bypass_p): Likewise for both params.
8200 (ia64_ld_address_bypass_p): Likewise.
8201 (expand_vselect): Introduce new local rtx_insn * "insn", using it
8202 in place of rtx "x" after the emit_insn call.
8203 * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
8204 Strengthen param from rtx to rtx_insn *.
8205 (ix86_agi_dependent): Likewise for both params.
8206 (ix86_attr_length_immediate_default): Likewise for param 1.
8207 (ix86_attr_length_address_default): Likewise for param.
8208 (ix86_attr_length_vex_default): Likewise for param 1.
8209 * config/i386/i386.c (ix86_attr_length_immediate_default):
8210 Likewise for param "insn".
8211 (ix86_attr_length_address_default): Likewise.
8212 (ix86_attr_length_vex_default): Likewise.
8213 (ix86_agi_dependent): Likewise for both params.
8214 (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
8215 (vselect_insn): Likewise for this variable.
8216 * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
8218 (m68k_sched_attr_opy_type): Likewise.
8219 * config/m68k/m68k.c (sched_get_operand): Likewise.
8220 (sched_attr_op_type): Likewise.
8221 (m68k_sched_attr_opx_type): Likewise.
8222 (m68k_sched_attr_opy_type): Likewise.
8223 (sched_get_reg_operand): Likewise.
8224 (sched_get_mem_operand): Likewise.
8225 (m68k_sched_address_bypass_p): Likewise for both params.
8226 (sched_get_indexed_address_scale): Likewise.
8227 (m68k_sched_indexed_address_bypass_p): Likewise.
8228 * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
8229 (m68k_sched_indexed_address_bypass_p): Likewise.
8230 * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
8231 "label", "ret" from rtx to rtx_insn *, adding a checked cast and
8233 * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
8234 params from rtx to rtx_insn *.
8235 (mips_fmadd_bypass): Likewise.
8236 * config/mips/mips.c (mips_fmadd_bypass): Likewise.
8237 (mips_linked_madd_p): Likewise.
8238 (mips_macc_chains_last_hilo): Likewise for this variable.
8239 (mips_macc_chains_record): Likewise for param.
8240 (vr4130_last_insn): Likewise for this variable.
8241 (vr4130_swap_insns_p): Likewise for both params.
8242 (mips_ls2_variable_issue): Likewise for param.
8243 (mips_need_noat_wrapper_p): Likewise for param "insn".
8244 (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
8245 in place of "x" after the emit_insn.
8246 * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
8247 params from rtx to rtx_insn *.
8248 * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
8249 (pa_combine_instructions): Introduce local "par" for result of
8250 gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
8252 (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
8253 * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
8254 (rl78_alloc_physical_registers_op1): Likewise.
8255 (rl78_alloc_physical_registers_op2): Likewise.
8256 (rl78_alloc_physical_registers_ro1): Likewise.
8257 (rl78_alloc_physical_registers_cmp): Likewise.
8258 (rl78_alloc_physical_registers_umul): Likewise.
8259 (rl78_alloc_address_registers_macax): Likewise.
8260 (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
8261 * config/s390/predicates.md (execute_operation): Likewise for
8263 * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
8265 * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
8266 (addr_generation_dependency_p): Likewise for param "insn".
8267 (s390_agen_dep_p): Likewise for both params.
8268 (s390_fpload_toreg): Likewise for param "insn".
8269 * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
8270 * config/sh/sh.c (sh_loop_align): Likewise for param and local
8272 * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
8273 * config/sh/sh_treg_combine.cc
8274 (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
8276 (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
8277 * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
8278 "and_insn", "load", "shift".
8279 * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
8281 * final.c (final_scan_insn): Introduce local rtx_insn * "other"
8282 for XEXP (note, 0) of the REG_CC_SETTER note.
8283 (cleanup_subreg_operands): Strengthen param "insn" from rtx to
8284 rtx_insn *, eliminating a checked cast made redundant by this.
8285 * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
8287 * genattr.c (main): When writing out the prototype to
8288 const_num_delay_slots, strengthen the param from rtx to
8290 * genattrtab.c (write_const_num_delay_slots): Likewise when
8291 writing out the implementation of const_num_delay_slots.
8292 * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
8293 "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
8294 * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
8295 favor of new rtx locals "src" and "set" and new local rtx_insn *
8297 (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
8299 (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
8300 locals "cond", "if_then_else", "set" and new rtx_insn * locals
8302 (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
8303 "last" from rtx to rtx_insn *. Likewise for a local "tmp",
8304 renaming to "tmp_insn". Eliminate the other local rtx "tmp" from
8305 the top-level scope, replacing with new more tightly-scoped rtx
8306 locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
8307 "new_insn", "copy_of_insn_b", and make local rtx "set" more
8309 * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
8311 * ira.c (setup_prohibited_mode_move_regs): Likewise for local
8313 (ira_setup_alts): Likewise for param "insn".
8314 * lra-constraints.c (emit_inc): Likewise for local "add_insn".
8315 * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
8317 (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
8318 new more-tightly scoped rtx locals "add3_insn", "insn",
8319 "add2_insn" and rtx_insn * "move_insn".
8320 * postreload-gcse.c (eliminate_partially_redundant_load): Add
8321 checked cast on result of gen_move_insn when invoking
8323 * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
8325 (verify_changes): Add a checked cast on "object" when invoking
8327 (extract_insn_cached): Strengthen param "insn" from rtx to
8329 (extract_constrain_insn_cached): Likewise.
8330 (extract_insn): Likewise.
8331 * recog.h (insn_invalid_p): Likewise for param 1.
8332 (recog_memoized): Likewise for param.
8333 (extract_insn): Likewise.
8334 (extract_constrain_insn_cached): Likewise.
8335 (extract_insn_cached): Likewise.
8336 * reload.c (can_reload_into): Likewise for local "test_insn".
8337 * reload.h (cleanup_subreg_operands): Likewise for param.
8338 * reload1.c (emit_insn_if_valid_for_reload): Rename param from
8339 "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
8340 result of emit_insn. Remove a checked cast made redundant by this
8342 * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
8344 * sel-sched.c (get_reg_class): Likewise.
8346 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
8347 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8349 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
8350 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
8352 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
8354 2014-09-09 David Malcolm <dmalcolm@redhat.com>
8356 * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
8357 const rtx_insn *, and from rtx to rtx_insn * for the other
8359 (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
8360 INSN_LOCATION, since we know INSN_P holds.
8361 (insn_line): Strengthen param from const_rtx to const rtx_insn *.
8362 (insn_file): Likewise.
8363 (insn_scope): Likewise.
8364 (insn_location): Likewise.
8366 * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
8367 "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
8368 for the result of gen_load_const_gp.
8369 * config/rs6000/rs6000-protos.h (output_call): Strengthen first
8370 param from rtx to rtx_insn *.
8371 * config/rs6000/rs6000.c (output_call): Likewise.
8372 * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
8373 introducing a checked cast to rtx_sequence * and use of the insn
8375 * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
8376 from rtx to rtx_insn *.
8377 (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
8378 (insn_line): Likewise.
8379 (insn_file): Likewise.
8380 (insn_location): Likewise.
8381 * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
8382 from rtx to rtx_insn *.
8383 * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
8384 cast, using it for calls to INSN_HAS_LOCATION and insn_location.
8385 * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
8387 * reorg.c (relax_delay_slots): Strengthen locals named "after"
8388 from rtx to rtx_insn *; use methods of "pat" for type-safety.
8390 2014-09-09 David Malcolm <dmalcolm@redhat.com>
8392 * combine.c (try_combine): Eliminate checked cast on result of
8394 * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
8395 autogenerated one by strengthening the return type and params 2 and 3
8396 from rtx to rtx_insn *, and by naming the params.
8397 * gengenrtl.c (special_rtx): Add INSN to those that are
8399 * rtl.h (gen_rtx_INSN): New prototype.
8401 2014-09-09 David Malcolm <dmalcolm@redhat.com>
8403 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
8405 (no_equiv): Likewise.
8406 (update_equiv_regs): Likewise.
8407 (setup_reg_equiv): Likewise. Strengthen locals "elem",
8408 "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
8409 from rtx to rtx_insn *. Use methods of "elem" for typesafety and
8411 * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
8412 from rtx to rtx_insn_list *.
8413 * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
8414 rtx_insn_list * and use methods for clarity and typesafety.
8415 * lra-constraints.c (contains_deleted_insn_p): Likewise for param
8417 (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove
8418 redundant check on INSN_P (insns): this cannot hold, as "insns" is
8419 an INSN_LIST, not an insn.
8420 (reverse_equiv_p): Strengthen local "insns" from rtx to
8421 rtx_insn_list * and use methods for clarity and typesafety.
8422 (contains_reloaded_insn_p): Likewise for local "list".
8424 2014-09-09 Jiong Wang <jiong.wang@arm.com>
8426 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
8427 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
8428 (arm_builtin_vectorized_function): Likewise.
8429 * config/arm/arm_neon_builtins.def: New macro for copysignf.
8430 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
8432 2014-09-09 Richard Sandiford <richard.sandiford@arm.com>
8434 * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
8435 * builtins.h (default_target_builtins): Likewise.
8436 * gcse.h (default_target_gcse): Likewise.
8437 * target-globals.h (target_globals): Add a destructor. Convert
8438 void-pointer fields back to their real type and change from
8439 GTY((atomic)) to GTY((skip)).
8440 (restore_target_globals): Remove casts accordingly.
8441 * target-globals.c (save_target_globals): Use XCNEW rather than
8442 ggc_internal_cleared_alloc to allocate non-GC structures.
8443 Use ggc_cleared_alloc to allocate the target_globals structure
8445 (target_globals::~target_globals): Define.
8447 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8449 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
8450 mnemonic instead of fldmfdd.
8451 * config/arm/arm.c (vfp_output_fstmd): Rename to...
8452 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
8453 Output vpush when address register is SP.
8454 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
8455 (vfp_output_vstmd): ... This.
8456 * config/arm/vfp.md (push_multi_vfp): Update call to
8459 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8461 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
8463 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8465 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
8466 (*sqrtdf2_vfp): Likewise.
8467 (*cmpsf_vfp): Likewise.
8468 (*cmpsf_trap_vfp): Likewise.
8469 (*cmpdf_vfp): Likewise.
8470 (*cmpdf_trap_vfp): Likewise.
8472 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8474 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
8475 (*truncdfsf2_vfp): Likewise.
8476 (*truncsisf2_vfp): Likewise.
8477 (*truncsidf2_vfp): Likewise.
8478 (fixuns_truncsfsi2): Likewise.
8479 (fixuns_truncdfsi2): Likewise.
8480 (*floatsisf2_vfp): Likewise.
8481 (*floatsidf2_vfp): Likewise.
8482 (floatunssisf2): Likewise.
8483 (floatunssidf2): Likewise.
8485 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8487 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
8488 (*muldf3_vfp): Likewise.
8489 (*mulsf3negsf_vfp): Likewise.
8490 (*muldf3negdf_vfp): Likewise.
8491 (*mulsf3addsf_vfp): Likewise.
8492 (*muldf3adddf_vfp): Likewise.
8493 (*mulsf3subsf_vfp): Likewise.
8494 (*muldf3subdf_vfp): Likewise.
8495 (*mulsf3negsfaddsf_vfp): Likewise.
8496 (*fmuldf3negdfadddf_vfp): Likewise.
8497 (*mulsf3negsfsubsf_vfp): Likewise.
8498 (*muldf3negdfsubdf_vfp): Likewise.
8500 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8502 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
8503 (*absdf2_vfp): Likewise.
8504 (*negsf2_vfp): Likewise.
8505 (*negdf2_vfp): Likewise.
8506 (*addsf3_vfp): Likewise.
8507 (*adddf3_vfp): Likewise.
8508 (*subsf3_vfp): Likewise.
8509 (*subdf3_vfp): Likewise.
8510 (*divsf3_vfp): Likewise.
8511 (*divdf3_vfp): Likewise.
8513 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8515 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
8517 (arm_print_operand): Don't convert real values to decimal
8518 representation in default case.
8519 (fp_immediate_constant): Delete.
8520 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
8521 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
8523 (*thumb2_movsi_vfp): Likewise.
8524 (*movdi_vfp): Likewise.
8525 (*movdi_vfp_cortexa8): Likewise.
8526 (*movhf_vfp_neon): Likewise.
8527 (*movhf_vfp): Likewise.
8528 (*movsf_vfp): Likewise.
8529 (*thumb2_movsf_vfp): Likewise.
8530 (*movdf_vfp): Likewise.
8531 (*thumb2_movdf_vfp): Likewise.
8532 (*movsfcc_vfp): Likewise.
8533 (*thumb2_movsfcc_vfp): Likewise.
8534 (*movdfcc_vfp): Likewise.
8535 (*thumb2_movdfcc_vfp): Likewise.
8537 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
8539 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
8543 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8546 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
8547 Use qualifier_immediate for last operand. Rename to...
8548 (aarch64_types_ternop_lane_qualifiers): ... This.
8549 (TYPES_QUADOP): Rename to...
8550 (TYPES_TERNOP_LANE): ... This.
8551 (aarch64_simd_expand_args): Return const0_rtx when encountering user
8552 error. Change return of 0 to return of NULL_RTX.
8553 (aarch64_crc32_expand_builtin): Likewise.
8554 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
8555 ICE when expanding unknown builtin.
8556 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
8557 TERNOP_LANE qualifiers.
8558 (sqdmlsl_lane): Likewise.
8559 (sqdmlal_laneq): Likewise.
8560 (sqdmlsl_laneq): Likewise.
8561 (sqdmlal2_lane): Likewise.
8562 (sqdmlsl2_lane): Likewise.
8563 (sqdmlal2_laneq): Likewise.
8564 (sqdmlsl2_laneq): Likewise.
8566 2014-09-09 Nick Clifton <nickc@redhat.com>
8568 * doc/invoke.texi (Optimization Options): Add missing @gol to the
8570 (S/390 and zSeries Options): Remove superfluous word from the
8571 description of the -mhotpatch option.
8573 2014-09-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
8575 * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
8576 * ira.c: #include "shrink-wrap.h"
8577 (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
8578 * ifcvt.c: #include "shrink-wrap.h"
8579 (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
8581 2014-09-08 Trevor Saunders <tsaunders@mozilla.com>
8583 * common/config/picochip/picochip-common.c: Remove.
8584 * config.gcc: Remove support for picochip.
8585 * config/picochip/constraints.md: Remove.
8586 * config/picochip/dfa_space.md: Remove.
8587 * config/picochip/dfa_speed.md: Remove.
8588 * config/picochip/picochip-protos.h: Remove.
8589 * config/picochip/picochip.c: Remove.
8590 * config/picochip/picochip.h: Remove.
8591 * config/picochip/picochip.md: Remove.
8592 * config/picochip/picochip.opt: Remove.
8593 * config/picochip/predicates.md: Remove.
8594 * config/picochip/t-picochip: Remove.
8595 * doc/md.texi: Don't document picochi.
8597 2014-09-08 David Malcolm <dmalcolm@redhat.com>
8599 * basic-block.h (control_flow_insn_p): Strengthen param from
8600 const_rtx to const rtx_insn *.
8601 * cfgbuild.c (control_flow_insn_p): Likewise.
8603 2014-09-08 David Malcolm <dmalcolm@redhat.com>
8605 * gcse.c (modify_mem_list): Strengthen this variable from
8606 vec<rtx> * to vec<rtx_insn *> *.
8607 (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
8609 (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
8610 vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
8611 (record_last_mem_set_info): Strengthen param "insn" from rtx to
8613 (record_last_set_info): Likewise for local "last_set_insn".
8615 2014-09-08 DJ Delorie <dj@redhat.com>
8617 * doc/invoke.texi (MSP430 Options): Add -minrt.
8619 2014-09-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8621 * config/rs6000/rs6000.c (special_handling_values): Add SH_SPLAT.
8622 (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
8623 statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
8625 (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
8627 (adjust_splat): New function.
8628 (handle_special_swappables): Call adjust_splat for SH_SPLAT.
8629 (dump_swap_insn_table): Add case for SH_SPLAT.
8631 2014-09-08 Richard Biener <rguenther@suse.de>
8634 * tree-inline.c (copy_loops): The source loop header should
8636 (tree_function_versioning): If loops need fixup after removing
8637 unreachable blocks fix them.
8638 * omp-low.c (simd_clone_adjust): Do not add incr block to
8639 loop under construction.
8641 2014-09-08 Alan Lawrence <alan.lawrence@arm.com>
8643 * config/aarch64/aarch64-builtins.c
8644 (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
8646 2014-09-08 Joseph Myers <joseph@codesourcery.com>
8648 * config/i386/cygming.h (TF_SIZE): Remove.
8649 * config/i386/darwin.h (TF_SIZE): Remove.
8650 * config/i386/dragonfly.h (TF_SIZE): Remove.
8651 * config/i386/freebsd.h (TF_SIZE): Remove.
8652 * config/i386/gnu-user-common.h (TF_SIZE): Remove.
8653 * config/i386/openbsdelf.h (TF_SIZE): Remove.
8654 * config/i386/sol2.h (TF_SIZE): Remove.
8655 * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
8656 * config/ia64/linux.h (TF_SIZE): Remove.
8657 * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
8658 * doc/tm.texi: Regenerate.
8659 * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
8661 2014-09-08 Joseph Myers <joseph@codesourcery.com>
8663 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
8665 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
8667 * doc/tm.texi: Regenerate.
8668 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
8670 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
8671 * config/cris/cris.h (__make_dp): Remove.
8673 2014-09-08 Richard Biener <rguenther@suse.de>
8676 * cfgloop.c (mark_loop_for_removal): Track former header
8678 * cfgloop.h (struct loop): Add former_header member unconditionally.
8679 * loop-init.c (fix_loop_structure): Enable bogus loop removal
8680 diagnostic unconditionally.
8682 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
8685 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
8686 constraint for operand0 and remove write only modifier from operand3.
8688 2014-09-07 Richard Sandiford <richard.sandiford@arm.com>
8690 PR rtl-optimization/62208
8691 * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
8692 rather than const0_rtx in eq/ne-xor simplifications.
8694 2014-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
8696 * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
8697 (arc_output_mi_thunk): Likewise.
8699 * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
8700 arguments to silence bogus warning.
8702 2014-09-06 Richard Sandiford <richard.sandiford@arm.com>
8705 * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
8707 2014-09-06 Tom de Vries <tom@codesourcery.com>
8709 * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
8710 IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
8711 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
8713 2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
8716 * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
8717 * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
8719 2014-09-05 Easwaran Raman <eraman@google.com>
8721 PR rtl-optimization/62146
8722 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
8723 hoisted instruction unconditional.
8725 2014-09-05 Segher Boessenkool <segher@kernel.crashing.org>
8728 * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
8729 Do not allow any_mask_operand for operands[2].
8730 (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
8732 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8734 * config/arc/arc.c (arc_print_operand): Use insn method of
8735 final_sequence for type-safety.
8736 * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
8737 "insn" from rtx to rtx_insn *.
8738 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
8739 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
8740 Likewise for locals "branch", "label".
8741 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
8742 locals "i1", "i2". Use NULL rather than NULL_RTX in comparisons.
8743 (same_cmp_following_p): Likewise for locals "i2", "i3".
8744 * config/sh/sh_optimize_sett_clrt.cc
8745 (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
8746 param "cbranch_insn".
8747 * function.c (convert_jumps_to_returns): Likewis for local "jump".
8748 * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
8749 * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
8751 (condjump_p): Likewise.
8752 (condjump_in_parallel_p): Likewise.
8754 (any_uncondjump_p): Likewise.
8755 (any_condjump_p): Likewise.
8756 (condjump_label): Likewise.
8757 (returnjump_p): Strengthen param "insn" from rtx to
8759 (onlyjump_p): Strengthen param "insn" from const_rtx to
8761 (jump_to_label_p): Likewise.
8762 (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
8763 (invert_jump): Likewise.
8764 * reorg.c (simplejump_or_return_p): Add checked cast when calling
8766 (get_jump_flags): Strengthen param "insn" from rtx to
8768 (get_branch_condition): Likewise.
8769 (condition_dominates_p): Likewise.
8770 (make_return_insns): Move declaration of local "pat" earlier, to
8771 after we've handled NONJUMP_INSN_P and non-sequences, using its
8772 methods to simplify the code and for type-safety.
8773 * rtl.h (find_constant_src): Strengthen param from const_rtx to
8775 (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
8776 (condjump_p): Strengthen param from const_rtx to
8778 (any_condjump_p): Likewise.
8779 (any_uncondjump_p): Likewise.
8781 (condjump_label): Likewise.
8782 (simplejump_p): Likewise.
8783 (returnjump_p): Likewise.
8784 (onlyjump_p): Likewise.
8785 (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
8786 (invert_jump): Likewise.
8787 (condjump_in_parallel_p): Strengthen param from const_rtx to
8789 * rtlanal.c (find_constant_src): Strengthen param from const_rtx
8790 to const rtx_insn *.
8791 * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
8792 to const rtx_insn *.
8793 * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
8795 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8797 * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
8798 above the conditional, and convert the check on GET_CODE to a
8799 dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
8800 the conditional. Simplify the conditional by using methods of
8803 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8805 * haifa-sched.c (check_clobbered_conditions): Strengthen local
8806 "link" from rtx to rtx_insn_list *, and use its methods for
8807 clarity and type-safety.
8808 (toggle_cancelled_flags): Likewise.
8809 (restore_last_backtrack_point): Likewise.
8810 (queue_to_ready): Use insn method of "link" in one place.
8811 (schedule_block): Strengthen local "link" from rtx to
8812 rtx_insn_list *, and use its methods for clarity and type-safety.
8814 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8816 * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
8817 param "insn" from const_rtx to const rtx_insn *.
8818 (sched_get_reverse_condition_uncached): Likewise.
8819 (sched_get_condition_with_rev): Likewise.
8820 (sched_has_condition_p): Likewise.
8821 (sched_insns_conditions_mutex_p): Likewise for both params.
8822 (sched_insn_is_legitimate_for_speculation_p): Likewise for param
8823 "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
8824 (setup_insn_reg_uses): Move local "list" to be more tightly
8825 scoped, strengthening it from an rtx to an rtx_insn_list *. Use
8826 its methods for clarity and type-safety.
8827 (sched_analyze_1): Strengthen local "pending" from rtx to
8828 rtx_insn_list *, and local "pending_mem" from rtx to
8829 rtx_expr_list *. Use methods of each for clarity and type-safety.
8830 (sched_analyze_2): Likewise.
8831 (sched_analyze_insn): Likewise.
8833 * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
8834 param from const_rtx to const rtx_insn *.
8835 (sched_insns_conditions_mutex_p): Likewise for both params.
8836 (sched_insn_is_legitimate_for_speculation_p): Likewise for first
8839 * system.h (CONST_CAST_RTX_INSN): New macro.
8841 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8843 * recog.c (peep2_attempt): Strengthen return type from rtx to
8845 (peep2_update_life): Likewise for params "last", "prev", removing
8846 a checked cast made redundant by this.
8847 (peephole2_optimize): Likewise for local "last".
8849 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8851 * basic-block.h (set_block_for_insn): Eliminate this macro in
8853 * rtl.h (set_block_for_insn): New inline function, imposing the
8854 requirement that the "insn" param is an rtx_insn *.
8856 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8858 * caller-save.c (setup_save_areas): Strengthen local "insn" from
8860 * final.c (get_call_reg_set_usage): Likewise for first param,
8861 eliminating a checked cast.
8862 * regs.h (get_call_reg_set_usage): Likewise for first param.
8863 * resource.c (mark_set_resources): Introduce local rtx_call_insn *
8864 "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
8865 cast, replacing references to "x" with "call_insn" where
8867 (mark_target_live_regs): Strengthen local "real_insn" from rtx to
8868 rtx_insn *, adding a checked cast.
8870 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8872 * output.h (final_scan_insn): Strengthen first param from rtx to
8875 * final.c (final_scan_insn): Likewise, renaming it back from
8876 "uncast_insn" to "insn", eliminating the checked cast.
8878 * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
8879 "vec" with an rtx_sequence * "seq", taking a copy of
8880 "final_sequence", and using methods of "seq" for clarity, and for
8881 type-safety in the calls to final_scan_insn.
8882 * config/mips/mips.c (mips_output_conditional_branch): Use methods
8883 of "final_sequence" for clarity, and for type-safety in the call to
8885 * config/sh/sh.c (print_slot): Strengthen param from rtx to
8886 rtx_sequence * and rename from "insn" to "seq".
8888 2014-09-05 David Malcolm <dmalcolm@redhat.com>
8890 * jump.c (delete_related_insns): Introduce a new local "table" by
8891 replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
8892 get_labels method of "table" to simplify access to the labels in
8895 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8897 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
8898 f_minmaxs, f_minmaxd types.
8900 2014-09-05 Richard Biener <rguenther@suse.de>
8902 * cfgloop.c (mark_loop_for_removal): Record former header
8903 when ENABLE_CHECKING.
8904 * cfgloop.h (strut loop): Add former_header member when
8906 * loop-init.c (fix_loop_structure): Sanity check loops
8907 marked for removal if they re-appeared.
8909 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8911 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
8912 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
8914 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
8915 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
8916 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
8917 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
8918 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
8919 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
8920 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
8921 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
8922 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
8923 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
8924 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
8925 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
8926 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
8927 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
8928 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
8929 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
8930 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
8931 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
8932 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
8933 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
8934 with int{32,16,8}_t.
8936 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8938 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
8939 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
8940 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
8941 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
8942 Remove temporary __asm__ and reimplement.
8944 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8946 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
8947 handling cmge, cmgt, cmeq, cmtst.
8949 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
8950 cmlt, cmgeu, cmgtu, cmtst): Remove.
8952 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
8953 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
8954 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
8955 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
8957 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8959 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
8961 (aarch64_fold_builtin): Update pattern for cmtst.
8963 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
8966 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
8968 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
8969 Switch operands, separate out more cases, refactor.
8971 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
8973 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
8974 argument; rename old version to...
8975 (aarch64_const_vec_all_same_in_range_p): ...this.
8976 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
8978 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
8980 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8982 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
8983 Remove qualifier_const_pointer, update comment.
8985 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8987 * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
8989 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
8991 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
8992 varargs with pointer parameter.
8993 (aarch64_simd_expand_builtin): pass pointer into previous.
8995 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8997 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
9000 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
9002 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
9003 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
9004 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
9005 Replace temporary asm with call to builtin.
9006 (vrbit_p8, vrbitq_p8): New functions.
9008 2014-09-05 Richard Biener <rguenther@suse.de>
9010 * cfgloop.c (mark_loop_for_removal): New function.
9011 * cfgloop.h (mark_loop_for_removal): Declare.
9012 * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
9013 (merge_blocks): Likewise.
9014 (duplicate_block): Likewise.
9015 * except.c (sjlj_emit_dispatch_table): Likewise.
9016 * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
9017 * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
9018 (thread_through_loop_header): Likewise.
9020 2014-09-05 Richard Biener <rguenther@suse.de>
9023 * fold-const.c (try_move_mult_to_index): Remove.
9024 (fold_binary_loc): Do not call it.
9025 * tree-data-ref.c (dr_analyze_indices): Strip conversions
9026 from the base object again.
9028 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
9030 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
9033 2014-09-05 Bin Cheng <bin.cheng@arm.com>
9036 * config/arm/arm.md (setmem): New pattern.
9037 * config/arm/arm-protos.h (struct tune_params): New fields.
9038 (arm_gen_setmem): New prototype.
9039 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
9040 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
9041 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
9042 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
9043 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
9044 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
9045 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
9046 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
9047 (arm_const_inline_cost): New function.
9048 (arm_block_set_max_insns): New function.
9049 (arm_block_set_non_vect_profit_p): New function.
9050 (arm_block_set_vect_profit_p): New function.
9051 (arm_block_set_unaligned_vect): New function.
9052 (arm_block_set_aligned_vect): New function.
9053 (arm_block_set_unaligned_non_vect): New function.
9054 (arm_block_set_aligned_non_vect): New function.
9055 (arm_block_set_vect, arm_gen_setmem): New functions.
9057 2014-09-05 Bin Cheng <bin.cheng@arm.com>
9059 * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
9061 2014-09-05 Bin Cheng <bin.cheng@arm.com>
9063 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
9065 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
9067 * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
9069 * valtrack.h: Adjust.
9071 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
9073 * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
9075 (emit_jump_insn_before_noloc): Likewise.
9076 (emit_call_insn_before_noloc): Likewise.
9077 (emit_label_before): Likewise.
9078 (emit_label_after): Likewise.
9079 (emit_insn_before_setloc): Likewise.
9080 (emit_jump_insn_before_setloc): Likewise.
9081 (emit_call_insn_before_setloc): Likewise.
9082 (emit_call_insn_before): Likewise.
9085 2014-09-05 David Malcolm <dmalcolm@redhat.com>
9087 * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
9088 rtx_insn *, eliminating a checked cast.
9090 2014-09-05 David Malcolm <dmalcolm@redhat.com>
9092 * rtl.h (modified_between_p): Strengthen params 2 and 3 from
9093 const_rtx to const rtx_insn *.
9094 * rtlanal.c (modified_between_p): Likewise, eliminating a checked
9097 2014-09-05 David Malcolm <dmalcolm@redhat.com>
9099 * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
9100 fixup_args_size_notes.
9101 * expr.c (fixup_args_size_notes): Strengthen first two params from
9102 rtx to rtx_insn *, eliminating a checked cast.
9103 * rtl.h (fixup_args_size_notes): Strengthen first two params from
9106 2014-09-05 David Malcolm <dmalcolm@redhat.com>
9108 * haifa-sched.c (get_ready_element): Strengthen return type from
9110 * sched-int.h (get_ready_element): Likewise.
9112 2014-09-04 Segher Boessenkool <segher@kernel.crashing.org>
9115 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
9116 indexed_or_indirect_operand instead of memory_operand.
9117 (floatsi<mode>2_lfiwzx_mem): Ditto.
9119 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
9121 * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
9122 config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
9123 ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
9125 2014-09-04 Trevor Saunders <tsaunders@mozilla.com>
9127 * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
9129 (get_last_nonnote_insn): Likewise.
9130 (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
9131 * resource.c (find_basic_block): Likewise.
9133 * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
9136 2014-09-04 David Malcolm <dmalcolm@redhat.com>
9138 * genattr.c (main): Within the prototype of insn_latency written
9139 out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
9140 * genautomata.c (output_internal_maximal_insn_latency_func):
9141 Within the implementation of insn_latency written out to
9142 insn-automata.c, strengthen both params from rtx to rtx_insn *,
9143 eliminating a pair of checked casts.
9145 2014-09-04 David Malcolm <dmalcolm@redhat.com>
9147 * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
9150 * rtl.h (eh_returnjump_p): Likewise.
9152 2014-09-04 Aldy Hernandez <aldyh@redhat.com>
9154 * Makefile.in (TAGS): Handle constructs in timevar.def.
9156 2014-09-04 Guozhi Wei <carrot@google.com>
9159 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
9160 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
9161 it into two patterns.
9162 (move_lo_quad_internal_be_<mode>): Likewise.
9164 2014-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
9166 * doc/options.texi: Document that Var and Init are required if CPP
9168 * optc-gen.awk: Require Var and Init if CPP is given.
9169 * common.opt (Wpedantic): Use Init.
9171 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9173 * config/rs6000/rs6000.c (special_handling_values): Add
9175 (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
9176 wrapped in a VEC_DUPLICATE, representing an extract. Mark these
9177 as swappable with special handling SH_EXTRACT. Remove
9178 UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
9180 (adjust_extract): New function.
9181 (handle_special_swappables): Add default to case statement; add
9182 case for SH_EXTRACT that calls adjust_extract.
9183 (dump_swap_insn_table): Handle SH_EXTRACT.
9185 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9187 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
9188 selection of 0th memory doubleword, regardless of endianness.
9190 2014-09-04 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9192 * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
9194 2014-09-04 Alan Modra <amodra@gmail.com>
9197 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
9200 2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
9202 * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
9203 * targhooks.c (default_dwarf_frame_reg_mode): New function.
9204 * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
9205 * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
9206 * doc/tm.texi: Regenerate.
9207 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
9208 selection logic to default_dwarf_frame_reg_mode.
9210 2014-09-03 Marek Polacek <polacek@redhat.com>
9212 * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
9215 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
9217 * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
9218 the automodified register.
9220 2014-09-03 Richard Sandiford <richard.sandiford@arm.com>
9222 * output.h (get_some_local_dynamic_name): Declare.
9223 * final.c (some_local_dynamic_name): New variable.
9224 (get_some_local_dynamic_name): New function.
9225 (final_end_function): Clear some_local_dynamic_name.
9226 * config/alpha/alpha.c (machine_function): Remove some_ld_name.
9227 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
9228 (print_operand): Report an error if '%&' is used inappropriately.
9229 * config/i386/i386.c (get_some_local_dynamic_name): Delete.
9230 (get_some_local_dynamic_name_1): Delete.
9231 * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
9232 (rs6000_get_some_local_dynamic_name): Delete.
9233 (rs6000_get_some_local_dynamic_name_1): Delete.
9234 (print_operand): Report an error if '%&' is used inappropriately.
9235 * config/s390/s390.c (machine_function): Remove some_ld_name.
9236 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
9237 (print_operand): Assert that get_some_local_dynamic_name is nonnull.
9238 * config/sparc/sparc.c: Include rtl-iter.h.
9239 (machine_function): Remove some_ld_name.
9240 (sparc_print_operand): Report an error if '%&' is used inappropriately.
9241 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
9243 2014-09-03 Richard Henderson <rth@redhat.com>
9245 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
9246 (aarch64_popwb_pair_reg): Remove.
9247 (aarch64_set_frame_expr): Remove.
9248 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
9249 the restore ops performed by the insns generated.
9250 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
9251 insn. Perform the calls_eh_return addition later; do not attempt to
9252 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
9253 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
9254 special markup at all. Load cfun->machine->frame.hard_fp_offset
9255 into a local variable.
9256 (aarch64_frame_pointer_required): Don't check calls_alloca.
9258 2014-09-03 Richard Biener <rguenther@suse.de>
9260 * opts.c (default_options_optimization): Adjust
9261 max-combine-insns to 2 for -Og.
9263 2014-09-03 Martin Jambor <mjambor@suse.cz>
9266 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
9267 pass-trough jump functions correctly.
9269 2014-09-03 Martin Jambor <mjambor@suse.cz>
9272 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
9273 created replacements in ascending order of offsets.
9274 (known_aggs_to_agg_replacement_list): Likewise.
9276 2014-09-03 Martin Liska <mliska@suse.cz>
9278 * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
9279 is set to set uninitialized value for vnresult.
9281 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9283 * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
9284 for TARGET_MUST_PASS_IN_STACK.
9286 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9288 * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
9289 for TARGET_ARG_PARTIAL_BYTES.
9291 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9293 * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
9294 instructions for varargs implementation.
9295 (nds32_expand_epilogue): Emit stack adjustment instructions for
9296 varargs implementation.
9298 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9300 * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
9301 optimization detection.
9303 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9305 * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
9307 (nds32_function_arg_advance): Deal with nameless arguments.
9308 * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
9309 (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
9310 (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
9312 2014-09-03 Richard Biener <rguenther@suse.de>
9314 * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
9315 (struct bb_bitmap_sets): Remove deferred member.
9316 (BB_DEFERRED): Remove.
9317 (defer_or_phi_translate_block): Remove.
9318 (compute_antic_aux): Remove deferring of blocks, assert
9319 proper iteration order.
9320 (compute_antic): Do not set BB_DEFERRED.
9321 (eliminate): Allocate el_avail of proper size initially.
9323 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9325 * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
9326 according to the value of crtl->args.pretend_args_size.
9328 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9330 * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
9331 varargs information.
9333 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9335 * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
9336 implementation for TARGET_SETUP_INCOMING_VARARGS.
9337 (nds32_strict_argument_naming): Refine comment.
9338 * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
9339 Define for future implementation.
9341 2014-09-03 Ilya Tocar <ilya.tocar@intel.com>
9343 * config/i386/adxintrin.h (_subborrow_u32): New.
9344 (_addcarry_u32): Ditto.
9345 (_subborrow_u64): Ditto.
9346 (_addcarry_u64): Ditto.
9347 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
9349 (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
9350 __builtin_ia32_sbb_u64
9352 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9354 * config/nds32/nds32.c (nds32_function_arg): Define and rename some
9356 (nds32_function_arg_advance): Likewise.
9357 (nds32_init_cumulative_args): Likewise.
9358 * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
9359 (NDS32_FIRST_GPR_REGNUM): Define.
9360 (NDS32_LAST_GPR_REGNUM): Define.
9361 (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
9362 (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
9363 (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
9364 (machine_function): Use GRP-specific stuff.
9366 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9368 * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
9369 (nds32_expand_epilogue): Likewise.
9370 (nds32_expand_prologue_v3push): Likewise.
9371 (nds32_expand_epilogue_v3pop): Likewise.
9373 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9375 * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
9376 v3push/v3pop for variadic function.
9377 * config/nds32/nds32.md (prologue, epilogue): Likewise.
9379 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9381 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
9382 Check rtx for varargs implementation.
9383 (nds32_output_stack_pop): Likewise.
9384 * config/nds32/nds32-protos.h: Have a rtx argument for
9385 nds32_output_stack_push and nds32_output_stack_pop.
9386 * config/nds32/nds32.md: Likewise.
9388 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9390 * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
9391 to check if FUNC is an interrupt service routine.
9392 * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
9394 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9396 * config/nds32/nds32.h (machine_function): Add some fields for variadic
9397 arguments implementation.
9399 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9401 * config/nds32/nds32-predicates.c
9402 (nds32_valid_stack_push_pop): Rename to ...
9403 (nds32_valid_stack_push_pop_p): ... this.
9404 * config/nds32/nds32-protos.h: Likewise.
9405 * config/nds32/predicates.md: Likewise.
9407 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9409 * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
9410 (nds32_emit_stack_v3push): ... this.
9411 (nds32_gen_stack_v3pop): Rename to ...
9412 (nds32_emit_stack_v3pop): ... this and consider CFA restore
9415 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9417 * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
9418 (nds32_emit_stack_push_multiple): ... this.
9419 (nds32_gen_stack_pop_multiple): Rename to ...
9420 (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
9423 2014-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9426 * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
9427 and add a second splitter to handle the remaining cases.
9429 2014-09-03 Chung-Ju Wu <jasonwucj@gmail.com>
9431 * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
9433 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
9435 * cfgexpand.c (label_rtx_for_bb): Change type to
9436 hash_map<basic_block, rtx_code_label *> *.
9437 (expand_gimple_basic_block): Adjust.
9438 (pass_expand::execute): Likewise.
9440 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
9442 * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
9443 config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
9444 config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
9445 config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
9446 config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
9447 config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
9448 stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
9451 2014-09-02 Trevor Saunders <tsaunders@mozilla.com>
9453 * alloc-pool.c: Include coretypes.h.
9454 * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
9455 function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
9456 hash_set instead of htab.
9457 * ggc-page.c (in_gc): New variable.
9458 (ggc_free): Do nothing if a collection is taking place.
9459 (ggc_collect): Set in_gc appropriately.
9460 * ggc.h (gt_ggc_mx(const char *)): New function.
9461 (gt_pch_nx(const char *)): Likewise.
9462 (gt_ggc_mx(int)): Likewise.
9463 (gt_pch_nx(int)): Likewise.
9464 * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
9465 (hash_map::hash_entry::pch_nx): Likewise.
9466 (hash_map::hash_entry::pch_nx_helper): Likewise.
9467 (hash_map::hash_map): Adjust.
9468 (hash_map::create_ggc): New function.
9469 (gt_ggc_mx): Likewise.
9470 (gt_pch_nx): Likewise.
9471 * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
9472 (default_hashset_traits::pch_nx): Likewise.
9473 (hash_set::hash_entry::ggc_mx): Likewise.
9474 (hash_set::hash_entry::pch_nx): Likewise.
9475 (hash_set::hash_entry::pch_nx_helper): Likewise.
9476 (hash_set::hash_set): Adjust.
9477 (hash_set::create_ggc): New function.
9478 (hash_set::elements): Likewise.
9479 (gt_ggc_mx): Likewise.
9480 (gt_pch_nx): Likewise.
9481 * hash-table.h (hash_table::hash_table): Adjust.
9482 (hash_table::m_ggc): New member.
9483 (hash_table::~hash_table): Adjust.
9484 (hash_table::expand): Likewise.
9485 (hash_table::empty): Likewise.
9486 (gt_ggc_mx): New function.
9487 (hashtab_entry_note_pointers): Likewise.
9488 (gt_pch_nx): Likewise.
9490 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9492 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
9493 built-in definition.
9494 (XVCVUXDDP_SCALE): Likewise.
9495 (XVCVDPSXDS_SCALE): Likewise.
9496 (XVCVDPUXDS_SCALE): Likewise.
9497 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9498 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
9499 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
9500 VSX_BUILTIN_XVCVDPUXDS_SCALE.
9501 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
9503 * config/rs6000/rs6000.c (real.h): New include.
9504 (rs6000_scale_v2df): New function.
9505 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
9506 (UNSPEC_VSX_XVCVUXDDP): Likewise.
9507 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
9508 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
9509 (vsx_xvcvsxddp_scale): New define_expand.
9510 (vsx_xvcvsxddp): New define_insn.
9511 (vsx_xvcvuxddp_scale): New define_expand.
9512 (vsx_xvcvuxddp): New define_insn.
9513 (vsx_xvcvdpsxds_scale): New define_expand.
9514 (vsx_xvcvdpsxds): New define_insn.
9515 (vsx_xvcvdpuxds_scale): New define_expand.
9516 (vsx_xvcvdpuxds): New define_insn.
9517 * doc/extend.texi (vec_ctf): Add new prototypes.
9518 (vec_cts): Likewise.
9519 (vec_ctu): Likewise.
9520 (vec_splat): Likewise.
9521 (vec_div): Likewise.
9522 (vec_mul): Likewise.
9524 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9527 * config/arm/neon.md
9528 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
9529 <v_cmp_result>): New pattern.
9530 * config/arm/iterators.md (NEON_VCVT): New int iterator.
9531 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
9532 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
9533 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
9534 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
9535 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
9537 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9540 * config/arm/iterators.md (FIXUORS): New code iterator.
9541 (VCVT): New int iterator.
9542 (su_optab): New code attribute.
9544 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
9546 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9548 * config/aarch64/predicates.md (aarch64_comparison_operation):
9549 New special predicate.
9550 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
9551 aarch64_comparison_operation instead of matching an operator.
9552 Update operand numbers.
9553 (csinc3<mode>_insn): Likewise.
9554 (*csinv3<mode>_insn): Likewise.
9555 (*csneg3<mode>_insn): Likewise.
9556 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
9557 * config/aarch64/aarch64.c (aarch64_get_condition_code):
9558 Return -1 instead of aborting on invalid condition codes.
9559 (aarch64_print_operand): Update aarch64_get_condition_code callsites
9560 to assert that the returned condition code is valid.
9561 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
9563 2014-09-02 Aldy Hernandez <aldyh@redhat.com>
9565 * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
9566 tree.def, and gimple.def
9568 2014-09-02 Jakub Jelinek <jakub@redhat.com>
9569 Balaji V. Iyer <balaji.v.iyer@intel.com>
9570 Igor Zamyatin <igor.zamyatin@intel.com>
9572 * cilk-builtins.def (__cilkrts_cilk_for_32): New.
9573 (__cilkrts_cilk_for_64): Likewise.
9574 * cilk-common.c (declare_cilk_for_builtin): New function.
9575 (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
9576 __cilkrts_cilk_for_64 bultins.
9577 * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
9579 (cilk_for_32_fndecl): New define.
9580 (cilk_for_64_fndecl): Likewise.
9581 * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
9582 GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
9583 * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
9584 GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
9585 GF_OMP_FOR_COMBINED_INTO.
9586 * gimplify.c (gimplify_scan_omp_clauses): Added
9587 OMP_CLAUSE__CILK_FOR_COUNT_ case.
9588 (gimplify_adjust_omp_clauses): Ditto.
9589 (gimplify_omp_for): Added CILK_FOR case.
9590 (gimplify_expr): Ditto.
9591 * omp-low.c: Include cilk.h.
9592 (extract_omp_for_data): Set appropriate kind for
9593 GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
9594 (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
9595 (create_omp_child_function_name): Added second argument to handle
9597 (cilk_for_check_loop_diff_type): New function.
9598 (expand_cilk_for_call): Likewise.
9599 (expand_cilk_for): Likewise.
9600 (create_omp_child_function): Set cilk_for_count; handle the cases when
9601 it is true; call create_omp_child_function_name with second argument.
9602 (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
9603 (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
9604 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
9605 * tree-nested.c (convert_nonlocal_omp_clauses): Added
9606 OMP_CLAUSE__CILK_FOR_COUNT_ case.
9607 (convert_local_omp_clauses): Ditto.
9608 * tree-pretty-print.c (dump_omp_clause): Added
9609 OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
9610 (dump_generic_node): Added CILK_FOR case.
9611 * tree.c (omp_clause_num_ops): New element
9612 OMP_CLAUSE__CILK_FOR_COUNT_ (1).
9613 (omp_clause_code_name): New element _Cilk_for_count_.
9614 (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
9615 * tree.def: Add tree code for CILK_FOR.
9617 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
9619 * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
9620 (ppc403-compare): Add "exts with dot" case.
9621 * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
9622 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
9623 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
9624 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
9625 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
9626 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
9627 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
9628 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
9629 cell-cmp-microcoded): Similarly.
9630 * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
9631 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
9632 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
9633 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
9634 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
9635 * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
9636 * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
9637 * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
9638 (power6-compare): Add "exts with dot" case.
9639 * config/rs6000/power7.md (power7-integer, power7-compare): As before.
9640 * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
9641 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
9643 * config/rs6000/predicates.md (lwa_operand): Don't allow memory
9644 if avoiding Cell microcode.
9645 * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
9646 (is_cracked_insn): Ditto.
9647 (insn_must_be_first_in_group): Ditto.
9648 * config/rs6000/rs6000.md (dot): Adjust comment.
9649 (cell_micro): Handle exts+dot.
9650 (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
9651 *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
9652 extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
9653 (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
9654 extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
9655 *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
9656 *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
9658 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
9660 * config/rs6000/rs6000.md (QHSI): Delete.
9661 (EXTQI, EXTHI, EXTSI): New mode iterators.
9662 (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
9663 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
9664 *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
9665 9 anonymous instructions, and 8 splitters): Delete.
9666 (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
9667 *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
9668 *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
9669 zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
9670 *zero_extendsi<mode>2_dot2): New.
9672 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
9674 * config/rs6000/rs6000.md (any_extend): New code iterator.
9675 (u, su): New code attributes.
9676 (dmode, DMODE): New mode attributes.
9677 (<su>mul<mode>3_highpart): New.
9678 (*<su>mul<mode>3_highpart): New.
9679 (<su>mulsi3_highpart_le): New.
9680 (<su>muldi3_highpart_le): New.
9681 (<su>mulsi3_highpart_64): New.
9682 (<u>mul<mode><dmode>3): New.
9683 (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
9685 (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
9688 2014-09-02 Segher Boessenkool <segher@kernel.crashing.org>
9690 * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
9691 *mulsi3_internal2, and two splitters): Delete.
9692 (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
9694 (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
9696 2014-09-02 Richard Biener <rguenther@suse.de>
9698 PR tree-optimization/62695
9699 * tree-ssa-structalias.c (find_func_clobbers): Add missing
9702 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
9705 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
9707 2014-09-01 Andi Kleen <ak@linux.intel.com>
9709 * file-find.c (add_prefix_begin): Add.
9710 (do_add_prefix): Rename from add_prefix with first argument.
9711 (add_prefix): Add new wrapper.
9712 * file-find.h (add_prefix_begin): Add.
9713 * gcc-ar.c (main): Support -B option.
9715 2014-09-01 Segher Boessenkool <segher@kernel.crashing.org>
9717 * genemit.c: Include dumpfile.h.
9718 (gen_split): Print name of splitter function to dump file.
9720 2014-09-01 Richard Biener <rguenther@suse.de>
9722 * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
9723 Use stack auto_vecs for constraint expressions.
9724 (find_func_aliases_for_call): Likewise.
9725 (find_func_aliases): Likewise.
9726 (find_func_clobbers): Likewise.
9728 2014-09-01 Richard Biener <rguenther@suse.de>
9730 * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
9731 operands vector in most cases. Remove redundant code.
9733 2014-09-01 Olivier Hainque <hainque@adacore.com>
9735 * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
9736 $WIND_BASE instead of designating a harcoded arbitrary home dir.
9737 (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
9739 2014-09-01 Richard Biener <rguenther@suse.de>
9741 * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
9742 copy_reference_ops_from_call, vn_nary_op_compute_hash,
9743 vn_reference_compute_hash, vn_reference_insert): Remove.
9744 (vn_reference_lookup_call): New function.
9745 * tree-ssa-sccvn.c (vn_reference_compute_hash,
9746 copy_reference_ops_from_ref, copy_reference_ops_from_call,
9747 vn_reference_insert, vn_nary_op_compute_hash): Make static.
9748 (create_reference_ops_from_call): Remove.
9749 (vn_reference_lookup_3): Properly update shared_lookup_references.
9750 (vn_reference_lookup_pieces): Assert that we updated
9751 shared_lookup_references properly.
9752 (vn_reference_lookup): Likewise.
9753 (vn_reference_lookup_call): New function.
9754 (visit_reference_op_call): Use it. Avoid re-building the
9756 (visit_reference_op_load): Remove redundant lookup.
9757 (visit_reference_op_store): Perform special tail-merging work
9758 only when possibly doing tail-merging.
9759 (visit_use): Likewise.
9760 * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
9762 2014-09-01 Jakub Jelinek <jakub@redhat.com>
9765 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
9766 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
9767 (find_inc): Revert 2014-08-13 change.
9769 2014-09-01 Marek Polacek <polacek@redhat.com>
9772 * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
9773 Change the type of V to unsigned HOST_WIDE_INT.
9775 2014-09-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
9777 * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
9778 the size of byte markers.
9779 (do_shift_rotate): Fix confusion between host, target and marker byte
9781 (verify_symbolic_number_p): Likewise.
9782 (find_bswap_or_nop_1): Likewise.
9783 (find_bswap_or_nop): Likewise.
9785 2014-09-01 Olivier Hainque <hainque@adacore.com>
9787 * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
9788 INSTALL_SCRIPT and INSTALL_PROGRAM as well.
9790 2014-09-01 Jakub Jelinek <jakub@redhat.com>
9792 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
9793 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
9794 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
9796 2014-09-01 Yury Gribov <y.gribov@samsung.com>
9800 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
9801 (build_check_stmt): Likewise.
9802 (instrument_strlen_call): Likewise.
9803 (asan_expand_check_ifn): Likewise and fix types.
9804 (maybe_cast_to_ptrmode): New function.
9806 2014-09-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9808 * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
9810 2014-08-31 Gerald Pfeifer <gerald@pfeifer.com>
9812 * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
9814 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
9816 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
9817 prefix to function labels when generating fast indirect calls.
9819 2014-08-30 David Malcolm <dmalcolm@redhat.com>
9823 * gcc/reorg.c (skip_consecutive_labels): Convert return type and
9824 param back from rtx_insn * to rtx. Rename param from "label" to
9825 "label_or_return", reintroducing "label" as an rtx_insn * after
9826 we've ensured it's not a RETURN.
9827 (first_active_target_insn): Likewise for return type and param;
9828 add a checked cast to rtx_insn * once we've ensured "insn" is not
9830 (steal_delay_list_from_target): Convert param "pnew_thread" back
9831 from rtx_insn ** to rtx *. Replace use of JUMP_LABEL_AS_INSN
9833 (own_thread_p): Convert param "thread" back from an rtx_insn * to
9834 an rtx. Introduce local rtx_insn * "thread_insn" with a checked
9835 cast once we've established we're not dealing with a RETURN,
9836 renaming subsequent uses of "thread" to "thread_insn".
9837 (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
9839 (follow_jumps): Convert return type and param "label" from
9840 rtx_insn * back to rtx. Move initialization of "value" to after
9841 the handling for ANY_RETURN_P, adding a checked cast there to
9842 rtx_insn *. Convert local rtx_insn * "this_label" to an rtx and
9843 rename to "this_label_or_return", reintroducing "this_label" as
9844 an rtx_insn * once we've handled the case where it could be an
9846 (fill_slots_from_thread): Rename param "thread" to
9847 "thread_or_return", converting from an rtx_insn * back to an rtx.
9848 Reintroduce name "thread" as an rtx_insn * local with a checked
9849 cast once we've handled the case of it being an ANY_RETURN_P.
9850 Convert local "new_thread" from an rtx_insn * back to an rtx.
9851 Add a checked cast when assigning to "trial" from "new_thread".
9852 Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL. Add a
9853 checked cast to rtx_insn * from "new_thread" when invoking
9855 (fill_eager_delay_slots): Convert locals "target_label",
9856 "insn_at_target" from rtx_insn * back to rtx.
9857 Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
9858 (relax_delay_slots): Convert locals "trial", "target_label" from
9859 rtx_insn * back to rtx. Convert uses of JUMP_LABEL_AS_INSN back
9860 to JUMP_LABEL. Add a checked cast to rtx_insn * on "trial" when
9861 invoking update_block.
9862 (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
9863 JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
9865 * resource.h (mark_target_live_regs): Undo erroneous conversion
9866 of second param of r214693, converting it back from rtx_insn * to
9867 rtx, since it could be a RETURN.
9869 * resource.c (find_dead_or_set_registers): Similarly, convert
9870 param "jump_target" back from an rtx_insn ** to an rtx *, as we
9871 could be writing back a RETURN. Rename local rtx_insn * "next" to
9872 "next_insn", and introduce "lab_or_return" as a local rtx,
9873 handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
9874 (mark_target_live_regs): Undo erroneous conversion
9875 of second param of r214693, converting it back from rtx_insn * to
9876 rtx, since it could be a RETURN. Rename it from "target" to
9877 "target_maybe_return", reintroducing the name "target" as a local
9878 rtx_insn * with a checked cast, after we've handled the case of
9881 2014-08-29 DJ Delorie <dj@redhat.com>
9883 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
9884 pointer size up to a power of two.
9885 * defaults.h (DWARF2_ADDR_SIZE): Round up.
9886 (POINTER_SIZE_UNITS): New, rounded up value.
9887 * dwarf2asm.c (size_of_encoded_value): Use it.
9888 (dw2_output_indirect_constant_1): Likewise.
9889 * expmed.c (init_expmed_one_conv): We now know the sizes of
9891 * loop-iv.c (iv_number_of_iterations): Use precision, not size.
9892 * optabs.c (expand_float): Use precision, not size.
9893 (expand_fix): Likewise.
9894 * simplify-rtx (simplify_unary_operation_1): Likewise.
9895 * tree-dfa.c (get_ref_base_and_extent): Likewise.
9896 * varasm.c (assemble_addr_to_section): Round up pointer sizes.
9897 (default_assemble_integer) Likewise.
9898 (dump_tm_clone_pairs): Likewise.
9899 * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
9900 * var-tracking.c (adjust_mems): Allow partial-int modes also.
9901 (prepare_call_arguments): Likewise.
9902 * stor-layout.c (finalize_type_size): Preserve precision.
9903 (layout_type): Use precision, not size.
9905 * expr.c (convert_move): If the target has an explicit converter,
9908 2014-08-29 David Malcolm <dmalcolm@redhat.com>
9910 * gdbinit.in: Skip various inline functions in rtl.h when
9913 2014-08-29 Richard Sandiford <richard.sandiford@arm.com>
9916 * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
9918 2014-08-29 Richard Biener <rguenther@suse.de>
9920 PR tree-optimization/62291
9921 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
9922 exactly the vector size needed and use quick_push.
9923 (phi_translate_1): Adjust comment.
9924 (valid_in_sets): Remove block argument and remove pointless
9926 (dependent_clean): Adjust for removal of block argument.
9928 (compute_antic_aux): Likewise.
9929 (compute_partial_antic_aux): Likewise.
9931 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
9932 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9933 Anna Tikhonova <anna.tikhonova@intel.com>
9934 Ilya Tocar <ilya.tocar@intel.com>
9935 Andrey Turetskiy <andrey.turetskiy@intel.com>
9936 Ilya Verbin <ilya.verbin@intel.com>
9937 Kirill Yukhin <kirill.yukhin@intel.com>
9938 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9940 * config/i386/sse.md
9941 (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
9942 (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
9943 (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
9944 (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
9946 2014-08-29 Alexander Ivchenko <alexander.ivchenko@intel.com>
9947 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9948 Anna Tikhonova <anna.tikhonova@intel.com>
9949 Ilya Tocar <ilya.tocar@intel.com>
9950 Andrey Turetskiy <andrey.turetskiy@intel.com>
9951 Ilya Verbin <ilya.verbin@intel.com>
9952 Kirill Yukhin <kirill.yukhin@intel.com>
9953 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9955 * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
9956 * config/i386/sse.md
9957 (define_mode_iterator VI4_128_8_256): New.
9958 (define_mode_iterator VI2_128_4_256): Ditto.
9959 (define_mode_iterator PMOV_DST_MODE): Rename into
9960 (define_mode_iterator PMOV_DST_MODE_1): this.
9961 (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
9962 Use PMOV_DST_MODE_1 mode iterator.
9963 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
9965 (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
9967 (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
9968 (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
9969 (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
9970 (define_mode_iterator PMOV_DST_MODE_2): New.
9971 (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
9972 (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
9973 (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
9975 (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
9976 (define_mode_attr pmov_dst_3): Ditto.
9977 (define_mode_attr pmov_dst_zeroed_3): Ditto.
9978 (define_mode_attr pmov_suff_3): Ditto.
9979 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
9980 (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
9981 (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
9982 (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
9983 (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
9984 (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
9985 (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
9986 (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
9987 (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
9988 (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
9989 (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
9990 (define_mode_attr pmov_dst_4): Ditto.
9991 (define_mode_attr pmov_dst_zeroed_4): Ditto.
9992 (define_mode_attr pmov_suff_4): Ditto.
9993 (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
9994 (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
9995 (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
9996 (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
9997 (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
9998 (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
9999 (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
10000 (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
10001 (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
10002 (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
10003 (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
10005 2014-08-29 Richard Biener <rguenther@suse.de>
10007 * tree-cfg.c (verify_gimple_assign_unary): Do not allow
10008 NON_LVALUE_EXPR in gimple.
10010 2014-08-29 Richard Biener <rguenther@suse.de>
10012 PR middle-end/62292
10013 * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
10014 from previous refactoring.
10015 (gimple_fold_builtin_strncpy): Likewise.
10017 2014-08-29 David Malcolm <dmalcolm@redhat.com>
10020 * function.c (assign_parm_setup_reg): Remove erroneous checked
10021 cast to rtx_insn * on result of gen_extend_insn in favor of
10022 introducing a new local rtx "pat".
10024 2014-08-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10026 * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
10027 to silence warning.
10028 * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
10030 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10032 * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
10033 (next_insn): Likewise.
10034 * emit-rtl.c (next_insn): Likewise.
10035 (previous_insn): Likewise.
10036 * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
10037 "insn" and "next" from rtx to rtx_insn *.
10038 * config/picochip/picochip.c (picochip_reorg): Likewise for locals
10039 "insn", "insn1", "vliw_start", "prologue_end_note",
10040 "last_insn_in_packet".
10042 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10044 * shrink-wrap.h (active_insn_between): Strengthen both params from
10046 * function.c (active_insn_between): Likewise.
10048 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10050 * genattr.c (main): When writing out insn-attr.h, strengthen param
10051 of dfa_clear_single_insn_cache from rtx to rtx_insn *.
10052 * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
10053 writing out the definition of dfa_clear_single_insn_cache to the
10054 generated insn-automata.c
10056 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10058 * resource.h (clear_hashed_info_for_insn): Strengthen param from
10060 (incr_ticks_for_insn): Likewise.
10061 (init_resource_info): Likewise.
10063 * resource.c (init_resource_info): Likewise.
10064 (clear_hashed_info_for_insn): Likewise.
10065 (incr_ticks_for_insn): Likewise.
10067 * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
10069 (steal_delay_list_from_target): Use methods of "seq".
10070 (try_merge_delay_insns): Use methods of "merged_insns".
10071 (update_block): Strengthen param "insn" from rtx to rtx_insn *.
10072 (reorg_redirect_jump): Likewise for param "jump".
10074 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10076 * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
10078 * config/s390/s390.c (s390_split_branches): Eliminate top-level
10079 local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
10081 (s390_mainpool_finish): In three places, split out a local rtx
10082 "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
10083 "insn". Strengthen local "pool_end" from rtx to rtx_code_label *
10084 and split another local rtx "insn" out into rtx "pat" and
10086 * config/sh/sh.c (output_branchy_insn): Rather than working
10087 directly on operands[9], introduce local rtx_code_label *
10088 variables named "lab" in two places, working on them, and then
10089 assigning them to operands[9], so that the intervening operations
10090 are known by the type system to be on insns.
10092 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10094 * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
10097 * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
10098 in invocation of INSN_HAS_LOCATION.
10100 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10102 * config/rs6000/altivec.h (vec_xl): New #define.
10103 (vec_xst): Likewise.
10104 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
10105 (XXSPLTD_V2DI): Likewise.
10106 (DIV_V2DI): Likewise.
10107 (UDIV_V2DI): Likewise.
10108 (MUL_V2DI): Likewise.
10109 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10110 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
10111 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
10112 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
10113 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
10114 (UNSPEC_VSX_DIVSD): Likewise.
10115 (UNSPEC_VSX_DIVUD): Likewise.
10116 (UNSPEC_VSX_MULSD): Likewise.
10117 (vsx_mul_v2di): New insn-and-split.
10118 (vsx_div_v2di): Likewise.
10119 (vsx_udiv_v2di): Likewise.
10120 (vsx_xxspltd_<mode>): New insn.
10122 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10124 * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
10126 (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
10127 (NEXT_INSN): Likewise.
10128 (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
10129 (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
10131 (no_labels_between_p): Likewise for both params.
10133 * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
10134 cast when using NEXT_INSN on operands[2].
10135 * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
10136 "insn" from rtx to rtx_insn *, adding a checked cast.
10137 (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
10139 * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
10141 (arc_text_label): Likewise for param "insn".
10142 * config/arc/arc.c (arc_expand_epilogue): Likewise for local
10144 (arc_ccfsm_record_condition): Likewise for param "jump".
10145 (arc_text_label): Likewise for local "label".
10146 * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
10147 Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
10148 a method for typesafety. Add a checked cast.
10149 * config/arc/constraints.md (Clb): Add a checked cast when getting
10150 the CODE_LABEL from a LABEL_REF.
10151 * config/arm/arm.c (require_pic_register): Strengthen locals
10152 "seq", "insn" from rtx to rtx_insn *.
10153 (create_fix_barrier): Likewise for locals "selected", "next".
10154 (thumb1_reorg): Likewise for locals "prev", "insn".
10155 (arm_expand_prologue): Likewise for local "last".
10156 (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
10158 (thumb2_output_casesi): Likewise for operands[2].
10159 * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
10160 strengthen local "insn" from rtx to rtx_insn *.
10161 * config/bfin/bfin.c (find_next_insn_start): Likewise for return
10162 type and param "insn".
10163 (find_prev_insn_start): Likewise.
10164 (hwloop_optimize): Likewise for locals "insn", "last_insn",
10166 (gen_one_bundle): Likewise for loal "t".
10167 (find_load): Likewise for param "insn".
10168 (workaround_speculation): Likewise for locals "insn", "next",
10169 "target", "next_tgt".
10170 * config/c6x/c6x.c (assign_reservations): Likewise for both params
10171 and for locals "insn", "within", "last".
10172 (count_unit_reqs): Likewise for params "head", "tail" and local
10174 (try_rename_operands): Likewise for params "head", "tail".
10175 (reshuffle_units): Likewise for locals "head", "tail", "insn".
10176 (struct c6x_sched_context): Likewise for fields
10177 "last_scheduled_insn", "last_scheduled_iter0".
10178 (init_sched_state): Replace NULL_RTX with NULL.
10179 (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
10181 (undo_split_delayed_nonbranch): Likewise for param and for local
10183 (conditionalize_after_sched): Likewise for local "insn".
10184 (bb_earliest_end_cycle): Likewise.
10185 (filter_insns_above): Likewise for locals "insn", "next".
10186 (hwloop_optimize): Remove redundant checked cast.
10187 (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
10188 * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
10189 NULL_RTX with NULL.
10190 (cris_simple_epilogue): Likewise.
10191 (cris_expand_prologue): Likewise.
10192 (cris_expand_epilogue): Likewise.
10193 * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
10194 local "insn" from rtx to rtx_insn *.
10195 (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
10196 (struct frv_packet_group): Likewise for the elements within array
10197 fields "insns", "sorted", and for field "nop".
10198 (frv_packet): Likewise for the elements within array field
10200 (frv_add_insn_to_packet): Likewise for param "insn".
10201 (frv_insert_nop_in_packet): Likewise for param "insn" and local
10203 (frv_for_each_packet): Likewise for locals "insn", "next_insn".
10204 (frv_sort_insn_group_1): Likewise for local "insn".
10205 (frv_optimize_membar_local): Likewise.
10206 (frv_align_label): Likewise for locals "x", "last", "barrier",
10208 * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
10210 (ia64_sched_init): Likewise for local "insn".
10211 (scheduled_good_insn): Likewise for param "last".
10212 (struct _ia64_sched_context): Likewise for field
10213 "last_scheduled_insn".
10214 (ia64_init_sched_context): Replace NULL_RTX with NULL.
10215 (struct bundle_state): Likewise for field "insn".
10216 (issue_nops_and_insn): Likewise for param "insn".
10217 (get_next_important_insn): Likewise for return type and both
10219 (ia64_add_bundle_selector_before): Likewise for param "insn".
10220 (bundling): Likewise for params "prev_head_insn", "tail" and
10221 locals "insn", "next_insn", "b". Eliminate top-level local rtx
10222 "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
10223 * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
10224 Strengthen final param from rtx to rtx_insn *.
10225 (iq2000_move_1word): Likewise for second param.
10226 * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
10227 param "cur_insn" and local "next_insn".
10228 (iq2000_move_1word): Likewise for param "insn".
10229 * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
10230 casts when using NEXT_INSN on operands[1].
10231 * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
10232 "insn" from rtx to rtx_insn *.
10233 * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
10234 "x", introducing local rtx_insn * "insn" for when working with the
10235 CODE_LABEL of the LABEL_REF.
10236 (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
10238 * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
10240 * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
10242 (conditionalize_block): Likewise for return type and param.
10243 (mcore_is_dead): Likewise for param "first" and local "insn".
10244 (emit_new_cond_insn): Likewise for return type.
10245 (conditionalize_block): Likewise for return type, param, and
10246 locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
10248 (conditionalize_optimization): Likewise for local "insn".
10249 * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
10251 * config/microblaze/microblaze.md: Add checked casts when using
10253 * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
10254 rtx "insn" in favor of various more tightly-scoped rtx "insn" and
10255 and rtx_insn * "insn".
10256 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
10257 checked cast when using NEXT_INSN on operands[2].
10258 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
10259 local "insn" from rtx to rtx_insn *.
10260 * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
10262 * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
10263 Add a checked cast when using NEXT_INSN on operands[1].
10264 * config/pa/pa-protos.h (pa_following_call): Strengthen param from
10266 (pa_output_cbranch): Likewise for final param.
10267 (pa_output_lbranch): Likewise for second param.
10268 (pa_output_bb): Likewise for third param.
10269 (pa_output_bvb): Likewise.
10270 (pa_output_dbra): Likewise for second param.
10271 (pa_output_movb): Likewise.
10272 (pa_output_parallel_movb): Likewise.
10273 (pa_output_parallel_addb): Likewise.
10274 (pa_output_millicode_call): Likewise for first param.
10275 (pa_output_mul_insn): Likewise for second param.
10276 (pa_output_div_insn): Likewise for third param.
10277 (pa_output_mod_insn): Likewise for second param.
10278 (pa_jump_in_call_delay): Likewise for param.
10279 * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
10280 (pa_output_div_insn): Likewise.
10281 (pa_output_mod_insn): Likewise.
10282 (pa_output_cbranch): Likewise.
10283 (pa_output_lbranch): Likewise.
10284 (pa_output_bb): Likewise.
10285 (pa_output_bvb): Likewise.
10286 (pa_output_dbra): Likewise.
10287 (pa_output_movb): Likewise.
10288 (pa_output_millicode_call): Likewise; use method of rtx_sequence *
10289 to simplify and for typesafety.
10290 (pa_output_call): Use method of rtx_sequence *.
10291 (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
10292 (pa_jump_in_call_delay): Likewise.
10293 (pa_output_parallel_movb): Likewise.
10294 (pa_output_parallel_addb): Likewise.
10295 (pa_following_call): Likewise.
10296 (pa_combine_instructions): Likewise for locals "anchor",
10298 (pa_can_combine_p): Likewise for params "anchor", "floater" and
10299 locals "start", "end".
10300 * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
10301 param "insn" and local "local_insn".
10302 (picochip_final_prescan_insn): Likewise for local "local_insn".
10303 * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
10305 (uses_TOC): Likewise.
10306 * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
10307 (s390_mainpool_finish): Eliminate top-level local rtx "insn",
10308 splitting out to more tightly-scoped locals, 3 as rtx and one as
10310 (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
10312 (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
10314 * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
10316 (fixup_addr_diff_vecs): Likewise.
10317 (reg_unused_after): Likewise for param 2.
10318 (sh_can_redirect_branch): Likewise for both params.
10319 (check_use_sfunc_addr): Likewise for param 1.
10320 * config/sh/sh.c (fixup_mova): Likewise for local "worker".
10321 (find_barrier): Likewise for local "last_got".
10322 (gen_block_redirect): Likewise for return type, param "jump" and
10323 locals "prev", "scan", "next", "insn".
10324 (struct far_branch): Likewise for fields "near_label",
10325 "insert_place", "far_label".
10326 (gen_far_branch): Likewise for local "jump".
10327 (fixup_addr_diff_vecs): Likewise for param "first" and locals
10329 (barrier_align): Likewise for param and for locals "prev", "x".
10330 Introduce local rtx_sequence * "prev_seq" and use insn method for
10331 typesafety and clarity.
10332 (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
10333 (get_dest_uid): Likewise for local "dest".
10334 (split_branches): Likewise for locals "next", "beyond", "label",
10335 "block", "far_label". Add checked casts when assigning to
10336 bp->far_label and "far_label".
10337 (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
10338 (sequence_insn_p): Likewise.
10339 (mark_constant_pool_use): Likewise for locals "insn", "lab". Add a
10340 more loop-scoped rtx "insn" when walking LABEL_REFS.
10341 (sh_can_redirect_branch): Strengthen both params from rtx to
10343 (check_use_sfunc_addr): Likewise for param "insn". Introduce a
10344 new local rtx_sequence * "seq" via a dyn_cast, and use a method
10345 for clarity and typesafety.
10346 * config/sh/sh.md (define_expand "epilogue"): Strengthen local
10347 "insn" from rtx to rtx_insn *.
10348 (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
10349 when using NEXT_INSN on the CODE_LABEL in operands[2].
10350 (define_insn "casesi_worker_2"): Likewise.
10351 (define_insn "casesi_shift_media"): Likewise.
10352 (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
10354 * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
10355 Strengthen field "insn" from rtx to rtx_insn *.
10356 (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
10357 (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
10358 param "start_insn" and local "start_insn".
10359 * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
10361 (find_set_of_reg_bb): Likewise for param "insn".
10362 (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
10363 (trace_reg_uses): Likewise for param "start_insn".
10364 (sh_treg_combine::cbranch_trace): Likewise for field
10366 (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
10368 (sh_treg_combine::record_set_of_reg): Likewise for param
10369 "start_insn" and local "i".
10370 (sh_treg_combine::can_remove_cstore): Likewise for local
10372 (sh_treg_combine::try_optimize_cbranch): Likewise for param
10374 (sh_treg_combine::execute): Likewise for local "i".
10375 * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
10377 (sparc_check_64): Likewise for second param.
10378 * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
10379 locals "insn", "next". Introduce local rtx_sequence * "seq" via a
10380 dyn_cast, using its insn method for typesafety and clarity.
10381 (empty_delay_slot): Strengthen param "insn" from rtx to
10383 (set_extends): Likewise.
10384 (sparc_check_64): Likewise.
10385 * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
10386 for locals "seq", "last_insn".
10387 (combine_bnp): Likewise for param "insn".
10388 (xstormy16_reorg): Likewise for local "insn".
10389 * config/v850/v850.c (substitute_ep_register): Likewise for params
10390 "first_insn", "last_insn" and local "insn".
10391 (v850_reorg): Likewise for fields "first_insn", "last_insn" within
10392 elements of "regs" array, and local "insn".
10393 * except.c (emit_note_eh_region_end): Likewise for param "insn".
10394 * final.c (final_sequence): Strengthen this global from rtx to
10396 (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
10398 (final_scan_insn): Update assignment to "final_sequence" to be
10399 from "seq", the cast version of "body", for type-safety.
10400 * function.c (assign_parm_setup_reg): Strengthen locals "insn",
10401 "insns" from rtx to rtx_insn *.
10402 (thread_prologue_and_epilogue_insns): Likewise for local "seq".
10403 * genattr.c (main): When writing out generated insn-attr.h,
10404 strengthen params 1 and 3 of eligible_for_delay,
10405 eligible_for_annul_true, eligible_for_annul_false from rtx to
10407 * genattrtab.c (write_eligible_delay): Likewise when writing out
10408 generated insn-attrtab.c; also local "insn" the generated
10410 * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
10412 * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
10413 "start_label" from rtx to rtx_insn *.
10414 * ira.c (decrease_live_ranges_number): Likewise for local "p".
10415 (ira_update_equiv_info_by_shuffle_insn): Likewise for param
10416 "insns" and local "insn".
10417 (validate_equiv_mem): Likewise for param "start" and local "insn".
10418 (memref_used_between_p): Likewise for params "start", "end" and
10420 * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
10422 * loop-doloop.c (doloop_optimize): Within region guarded by
10423 INSN_P (doloop_pat), introduce a new local rtx_insn *
10424 "doloop_insn" via a checked cast, and use it for typesafety,
10425 eventually writing the value back into doloop_pat.
10426 * output.h (final_sequence): Strengthen this global from rtx to
10428 * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
10429 reintroducing "insn" as an rtx_insn * via a checked cast.
10430 Strengthen param "attempt" and local "new_insn"from rtx to
10432 (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
10434 * ree.c (emit_note_eh_region_end): Likewise for local "insn".
10435 * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
10436 "p" in favor of more tightly-scoped replacements, sometimes rtx
10437 and sometimes rtx_insn *, as appropriate.
10438 (delete_output_reload): Eliminate top-level rtx "i1", splitting
10439 into two loop-scoped locals, one an rtx, the other an rtx_insn *.
10440 * reorg.c (delete_scheduled_jump): Add checked cast. Strengthen
10441 local "trial" from rtx to rtx_insn *.
10442 (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
10443 rtx to rtx_insn *. Strenghten local "pat" from rtx to
10444 rtx_sequence * and use methods for clarity and typesafety.
10445 (redirect_with_delay_list_safe_p): Strengthen param "jump" from
10446 rtx to rtx_insn *. Strenghten local "li" from rtx to
10447 rtx_insn_list * and use its methods for clarity and typesafety.
10448 (steal_delay_list_from_target): Strengthen param "insn" from rtx
10450 (steal_delay_list_from_fallthrough): Likewise.
10451 (try_merge_delay_insns): Likewise for param "thread" and locals
10452 "trial", "next_trial", "delay_insn".
10453 (redundant_insn): Likewise for param "target" and local "trial".
10454 (own_thread_p): Likewise for param "thread" and locals
10455 "active_insn", "insn".
10456 (get_label_before): Likewise for param "insn".
10457 (fill_simple_delay_slots): Likewise for local "new_label"; use
10458 JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
10459 (label_before_next_insn): Strengthen return type and local "insn"
10460 from rtx to rtx_insn *.
10461 (relax_delay_slots): Likewise for locals "other", "tmp".
10462 (make_return_insns): Likewise for param "first" and locals "insn",
10463 "jump_insn", "prev". Move declaration of "pat" to its assignment
10464 and strengthen from rtx to rtx_sequence *. Use its methods for
10465 clarity and typesafety.
10466 * rtlanal.c (no_labels_between_p): Strengthen params from
10467 const_rtx to const rtx_insn *. Strengthen local "p" from rtx to
10469 (reg_used_between_p): Strengthen params "from_insn", "to_insn"
10470 from const_rtx to const rtx_insn *.
10471 (reg_set_between_p): Rename param "from_insn" to
10472 "uncast_from_insn", and reintroduce "from_insn" as a
10473 const rtx_insn * via a checked cast.
10474 (modified_between_p): Likewise for param "start" as "uncast_start".
10475 (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
10476 * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
10477 "tmp", head" from rtx to rtx_insn *.
10478 (recompute_rev_top_order): Likewise for local "insn".
10479 * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
10480 * store-motion.c (build_store_vectors): Likewise for local "insn".
10481 Strengthen local "st" from rtx to rtx_insn_list * and use methods
10482 for clarity and typesafety.
10483 * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
10485 (computation_cost): Likewise for local "seq".
10486 (get_address_cost): Likewise.
10488 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10490 * rtl.h (tablejump_p): Strengthen first param from const_rtx to
10492 (label_is_jump_target_p): Likewise for second param.
10494 * rtlanal.c (tablejump_p): Likewise for param "insn".
10495 (label_is_jump_target_p): Likewise for param "jump_insn".
10497 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10499 * rtl.h (find_first_parameter_load): Strengthen return type and
10500 both params from rtx to rtx_insn *.
10501 * rtlanal.c (find_first_parameter_load): Strengthen return type,
10502 both params and locals "before", "first_set" from rtx to
10503 rtx_insn *. Remove now-redundant cast.
10504 * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
10506 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10508 * rtl.h (find_last_value): Delete.
10509 * rtlanal.c (find_last_value): Delete.
10511 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10513 * cfgexpand.c (pass_expand::execute): Strengthen local "after"
10514 from rtx to rtx_insn *.
10515 * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
10516 rtx "note" with new local rtx_insn * "new_head" when calculating
10517 head insn of new basic block.
10518 * combine.c (combine_split_insns): Strengthen return type and local
10519 "ret" from rtx to rtx_insn *.
10520 (likely_spilled_retval_p): Likewise for locals "use" and "p".
10521 (try_combine): Eliminate local "m_split", splitting into new
10522 locals "m_split_insn" and "m_split_pat".
10523 (find_split_point): Strengthen local "seq" from rtx into
10525 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
10526 locals "label", "branch".
10527 * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
10529 (define_expand "umulsi3_highpart"): Likewise for local "insn".
10530 * dse.c (note_add_store_info): Likewise for fields "first",
10532 (note_add_store): Likewise for local "insn".
10533 (emit_inc_dec_insn_before): Likewise for locals "insn",
10535 (find_shift_sequence): Likewise for locals "shift_seq", "insn".
10536 (replace_read): Likewise for locals "insns", "this_insn".
10537 * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
10538 (notice_eh_throw): Likewise for param "insn".
10539 (before_next_cfi_note): Likewise for return type, param, and local
10541 (connect_traces): Likewise for local "note".
10542 * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
10543 (verify_rtl_sharing): Likewise.
10544 (unshare_all_rtl_in_chain): Likewise for param "insn".
10545 (get_first_nonnote_insn): Likewise for local "insn".
10546 (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence *
10547 "seq" and use its methods to clarify things.
10548 (next_insn): Strengthen return type from rtx to rtx_insn *.
10549 Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
10550 local rtx_insn * using a checked cast, dropping a checked cast
10551 made redundant by this change. Use a cast to and method of
10552 rtx_sequence to clarify the code.
10553 (previous_insn): Rename param "insn" to "uncast_insn" and
10554 reintroduce "insn" as a local rtx_insn * using a checked cast,
10555 dropping a checked cast made redundant by this change. Use a cast
10556 to and method of rtx_sequence to clarify the code.
10557 (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
10558 reintroduce "insn" as a local rtx_insn * using a checked cast,
10559 dropping a checked cast made redundant by this change.
10560 (next_nonnote_insn_bb): Likewise.
10561 (prev_nonnote_insn): Likewise.
10562 (prev_nonnote_insn_bb): Likewise.
10563 (next_nondebug_insn): Likewise.
10564 (prev_nondebug_insn): Likewise.
10565 (next_nonnote_nondebug_insn): Likewise.
10566 (prev_nonnote_nondebug_insn): Likewise.
10567 (next_real_insn): Likewise.
10568 (prev_real_insn): Likewise.
10569 (next_active_insn): Likewise.
10570 (prev_active_insn): Likewise.
10571 (next_cc0_user): Likewise. Use rtx_sequence and a method for
10573 (prev_cc0_setter): Likewise.
10574 (try_split): Rename param "trial" to "uncast_trial" and
10575 reintroduce "insn" as a local rtx_insn * using a checked cast,
10576 dropping checked casts made redundant by this change.
10577 Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
10579 (remove_insn): Rename param "insn" to "uncast_insn" and
10580 reintroduce "insn" as a local rtx_insn * using a checked cast.
10581 (emit_pattern_after_setloc): Likewise for param "after", as
10583 (emit_pattern_after): Likewise. Strengthen local "prev" from
10585 (emit_pattern_before_setloc): Rename param "before" to
10586 "uncast_before" and reintroduce "before" as a local rtx_insn *
10587 using a checked cast. Strengthen locals "first", "last" from
10589 (emit_pattern_before): Likewise rename/cast param "before" to
10590 "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
10591 * except.c (copy_reg_eh_region_note_forward): Strengthen param
10592 "first" and local "insn" from rtx to rtx_insn *.
10593 (copy_reg_eh_region_note_backward): Likewise for param "last"
10595 * expr.c (fixup_args_size_notes): Rename param "last" to
10596 "uncast_last" and reintroduce "last" as a local rtx_insn *
10597 using a checked cast. Strengthen local "insn" from rtx to
10599 * function.c (set_insn_locations): Strengthen param "insn" from
10601 (record_insns): Likewise for param "insns" and local "tmp".
10602 (active_insn_between): Rename param "tail" to
10603 "uncast_tail" and reintroduce "tail" as a local rtx_insn *
10604 using a checked cast.
10605 (thread_prologue_and_epilogue_insns): Split out top-level local
10606 rtx "seq" into three different rtx_insn * locals. Strengthen
10607 local "prologue_seq" from rtx to rtx_insn *.
10608 * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
10609 from rtx to rtx_insn *.
10610 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
10611 (priority): Likewise for locals "prev_first", "twin".
10612 (setup_insn_max_reg_pressure): Likewise for param "after".
10613 (sched_setup_bb_reg_pressure_info): Likewise.
10614 (no_real_insns_p): Strengthen params from const_rtx to
10616 (schedule_block): Strengthen local "next_tail" from rtx to
10618 * ifcvt.c (find_active_insn_before): Strengthen return type and
10619 param "insn" from rtx to rtx_insn *.
10620 (find_active_insn_after): Likewise.
10621 (cond_exec_process_insns): Likewise for param "start" and local "insn".
10622 (cond_exec_process_if_block): Likewise for locals "then_start",
10623 "then_end", "else_start", "else_end", "insn", "start", "end", "from".
10624 (noce_process_if_block): Likewise for local "jump".
10625 (merge_if_block): Likewise for two locals named "end".
10626 (cond_exec_find_if_block): Likewise for local "last_insn".
10627 * jump.c (delete_related_insns): Rename param "insn" to
10628 "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
10629 checked cast. Strengthen local "p" from rtx to rtx_insn *.
10630 * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
10632 (split_reg): Likewise.
10633 * lra.c (lra_process_new_insns): Likewise.
10634 * modulo-sched.c (permute_partial_schedule): Strengthen param
10635 "last" from rtx to rtx_insn *.
10636 * optabs.c (add_equal_note): Likewise for param "insns" and local
10638 (expand_binop_directly): Add checked casts to rtx_insn * within
10639 NEXT_INSN (pat) uses.
10640 (expand_unop_direct): Likewise.
10641 (maybe_emit_unop_insn): Likewise.
10642 * recog.c (peep2_attempt): Strengthen locals "last",
10643 "before_try", "x" from rtx to rtx_insn *.
10644 * reorg.c (optimize_skip): Strengthen return type and local
10645 "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn"
10646 and locals "trial", "next_trial" from rtx to rtx_insn *.
10647 * resource.c (next_insn_no_annul): Strengthen return type and
10648 param "insn" from rtx to rtx_insn *. Use a cast to and method of
10649 rtx_sequence to clarify the code.
10650 (mark_referenced_resources): Add a checked cast to rtx_insn *
10651 within PREV_INSN (x).
10652 (find_dead_or_set_registers): Strengthen return type, param
10653 "target", locals "insn", "next", "jump_insn", "this_jump_insn"
10654 from rtx to rtx_insn *. Strengthen param "jump_target" from rtx *
10656 (mark_target_live_regs): Strengthen params "insns" and "target",
10657 locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
10658 to rtx_insn *. Use cast to and method of rtx_sequence to clarify
10660 * resource.h (mark_target_live_regs): Strengthen params 1 and 2
10661 from rtx to rtx_insn *.
10662 * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
10663 from rtx to rtx_insn *.
10664 (copy_reg_eh_region_note_backward): Likewise.
10665 (unshare_all_rtl_in_chain): Likewise for sole param.
10666 (dump_rtl_slim): Strengthen second and third params from const_rtx
10667 to const rtx_insn *.
10668 * sched-deps.c (sched_free_deps): Strengthen params "head" and
10669 "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
10670 * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
10671 "next_tail" from rtx to rtx_insn *.
10672 (begin_move_insn): Likewise for local "next".
10673 * sched-int.h (sched_free_deps): Likewise for first and second
10675 (no_real_insns_p): Strengthen both params from const_rtx to
10677 (sched_setup_bb_reg_pressure_info): Strengthen second params from
10679 * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
10681 * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
10682 and locals "insn", "tail" from const_rtx to const rtx_insn *.
10683 (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
10685 (debug_rtl_slim): Strengthen params "first" and "last" from
10686 const_rtx to const rtx_insn *.
10687 * shrink-wrap.c (try_shrink_wrapping): Strengthen param
10688 "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
10689 (convert_to_simple_return): Likewise for param "returnjump".
10690 * shrink-wrap.h (try_shrink_wrapping): Likewise for param
10692 (convert_to_simple_return): Likewise for param "returnjump".
10693 * valtrack.c (propagate_for_debug): Likewise for params
10695 * valtrack.h (propagate_for_debug): Likewise for second param.
10697 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10699 * output.h (insn_current_reference_address): Strengthen param
10700 from rtx to rtx_insn *.
10701 * final.c (insn_current_reference_address): Likewise.
10703 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10705 * basic-block.h (inside_basic_block_p): Strengthen param from
10706 const_rtx to const rtx_insn *.
10707 * cfgbuild.c (inside_basic_block_p): Likewise.
10709 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10711 * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
10713 (get_trace_info): Likewise for param "insn".
10714 (save_point_p): Likewise.
10715 (maybe_record_trace_start): Likewise for both params.
10716 (maybe_record_trace_start_abnormal): Likewise.
10717 (create_trace_edges): Likewise for sole param and for three of the
10718 locals named "lab".
10719 (scan_trace): Strengthen local "prev", "insn", "control" from rtx
10720 to rtx_insn *, and update a call to pat->element to pat->insn.
10722 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10724 * function.h (struct expr_status): Convert field "x_forced_labels"
10725 from rtx_expr_list * to rtx_insn_list *.
10727 * cfgbuild.c (make_edges): Convert local "x" from an
10728 rtx_expr_list * to an rtx_insn_list *, replacing use of
10729 "element" method with "insn" method.
10730 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
10731 * except.c (sjlj_emit_dispatch_table): Replace use of
10732 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
10734 * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
10735 rtx_expr_list * to an rtx_insn_list *, replacing use of
10736 "element" method with "insn" method.
10737 * reload1.c (set_initial_label_offsets): Likewise for local "x".
10738 * stmt.c (label_rtx): Strengthen local "ref" from rtx to
10739 rtx_insn *, adding a checked cast. Replace use of
10740 gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
10742 (expand_label): Likewise for local "label_r".
10744 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10746 * function.h (struct rtl_data): Convert field
10747 "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
10749 * rtl.h (remove_node_from_insn_list): New prototype.
10751 * builtins.c (expand_builtin): When prepending to
10752 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
10754 * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
10755 to rtx_insn_list *, and use its "insn" method rather than
10757 * cfgrtl.c (delete_insn): Use new function
10758 remove_node_from_insn_list rather than
10759 remove_node_from_expr_list.
10760 (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
10761 to rtx_insn_list *, and use its "insn" method rather than
10763 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
10764 * reload1.c (set_initial_label_offsets): Likewise for local "x".
10765 * rtlanal.c (remove_node_from_insn_list): New function, adapted
10766 from remove_node_from_expr_list.
10767 * stmt.c (expand_label): When prepending to
10768 nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
10771 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10773 * function.h (struct rtl_data): Strengthen fields "x_return_label"
10774 and "x_naked_return_label" from rtx to rtx_code_label *.
10776 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10778 * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
10779 (SET_NEXT_INSN): Likewise.
10780 (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
10782 * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
10783 rtx * to rtx_insn **. Introduce a new local rtx "seq", using it
10784 to split out the SEQUENCE from local "bundle", strengthening the
10785 latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
10786 Strengthen locals "t" and "insn" from rtx to rtx_insn *.
10787 (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
10788 and the type of the elements of the "slot" array from rtx to
10790 (reorg_split_calls): Likewise for locals "insn" and "next", and
10791 the type of the elements of the "slot" array.
10793 * config/frv/frv.c (frv_nops): Likewise for the elements of this
10795 (frv_function_prologue): Likewise for locals "insn", "next",
10797 (frv_register_nop): Introduce a local "nop_insn" to be the
10798 rtx_insn * containing rtx "nop".
10800 * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
10801 used as an insn and sometimes as a pattern, so rename it to
10802 "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
10803 using it where dealing with the core insn.
10805 * config/picochip/picochip.c (reorder_var_tracking_notes):
10806 Strengthen locals "insn", "next", "last_insn", "queue",
10807 "next_queue", "prev" from rtx to rtx_insn *.
10809 * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
10810 the second param is an rtx_insn ** rather than an rtx **.
10811 (link_insn_into_chain): Strengthen locals "seq" and "sequence"
10812 from rtx to rtx_sequence *, and introduce local named "sequence",
10813 using methods of rtx_sequence to clarify the code.
10814 (remove_insn): Introduce local rtx_sequence * named "sequence" and
10816 (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
10817 Rename param "after" to "uncast_after", reintroducing "after" as a
10818 local rtx_insn * with a checked cast.
10819 (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
10820 reintroducing "after" as a local rtx_insn * with a checked cast.
10821 Strengthen local "last" from rtx to rtx_insn * and remove the
10822 now-redundant checked casts.
10823 (copy_delay_slot_insn): Strengthen return type and param from rtx
10826 * haifa-sched.c (reemit_notes): Strengthen params "insn" and
10827 "last" from rtx to rtx_insn *.
10829 2014-08-28 David Malcolm <dmalcolm@redhat.com>
10831 * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
10832 param from rtx to rtx_insn *.
10834 * emit-rtl.c (copy_delay_slot_insn): Likewise.
10836 * reorg.c (skip_consecutive_labels): Strengthen return type, param
10837 and local "insn" from rtx to rtx_insn *.
10838 (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
10839 (unfilled_slots_next): Likewise.
10840 (function_return_label): Strengthen from rtx to rtx_code_label *.
10841 (function_simple_return_label): Likewise.
10842 (first_active_target_insn): Strengthen return type and param from
10844 (find_end_label): Strengthen return type from rtx to
10845 rtx_code_label *; strengthen locals as appropriate.
10846 (emit_delay_sequence): Strengthen return type, param "insn" and
10847 local "seq_insn" from rtx to rtx_insn *. Strengthen param "list"
10848 and local "li" from rtx to rtx_insn_list *, using methods of
10849 rtx_insn_list for clarity and typesafety.
10850 (add_to_delay_list): Strengthen return type and param "insn" from
10851 rtx to rtx_insn *. Strengthen param "delay_list" from rtx to
10852 rtx_insn_list * and use methods of rtx_insn_list.
10853 (delete_from_delay_slot): Strengthen return type, param "insn",
10854 locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
10855 Strengthen local "seq" from rtx to rtx_sequence *, and local
10856 "delay_list" from rtx to rtx_insn_list *, using methods of
10857 rtx_sequence for clarity and type-safety.
10858 (delete_scheduled_jump): Add checked cast when invoking
10859 delete_from_delay_slot. Strengthen local "trial" from rtx to
10861 (optimize_skip): Strengthen return type and local "delay_list"
10862 from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to
10864 (steal_delay_list_from_target): Strengthen return type, param
10865 "delay_list" and local "new_delay_list" from rtx to
10866 rtx_insn_list *. Strengthen param "seq" from rtx to
10867 rtx_sequence *. Strengthen param "pnew_thread" from rtx * to
10869 Split out local "temp" into multiple more-tightly scoped locals:
10870 sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods
10871 of rtx_insn_list and rtx_sequence for clarity and typesafety.
10872 Strengthen locals named "trial" from rtx to rtx_insn *.
10873 (steal_delay_list_from_fallthrough): Strengthen return type and
10874 param "delay_list" from rtx to rtx_insn_list *. Strengthen param
10875 "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence.
10876 Strengthen local "trial" from rtx to rtx_insn *.
10877 (try_merge_delay_insns): Strength local "merged_insns" from rtx
10878 to rtx_insn_list * and use its methods. Strengthen local "pat"
10879 from rtx to rtx_sequence * and use its methods. Strengthen locals
10880 "dtrial" and "new_rtx" from rtx to rtx_insn *.
10881 (get_label_before): Strengthen return type and local "label" from
10883 (fill_simple_delay_slots): Likewise for locals "insn", "trial",
10884 "next_trial", "next", prev". Strengthen local "delay_list" from
10885 rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to
10887 (follow_jumps): Strengthen return type, param "label" and locals
10888 "insn", "next", "value", "this_label" from rtx to rtx_insn *.
10889 (fill_slots_from_thread): Strengthen return type, param
10890 "delay_list" from rtx to rtx_insn_list *. Strengthen params
10891 "insn", "thread", "opposite_thread" and locals "new_thread",
10892 "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local
10893 "sequence" from a checked cast to rtx_sequence so that we can call
10894 steal_delay_list_from_target and steal_delay_list_from_fallthrough
10895 with an rtx_sequence *.
10896 (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
10897 "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
10898 Strengthen local "delay_list" from rtx to rtx_insn_list *.
10899 (relax_delay_slots): Strengthen param "first" and locals "insn",
10900 "next", "trial", "delay_insn", "target_label" from rtx to
10901 rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *.
10902 Introduce a local "trial_seq" for PATTERN (trial) of type
10903 rtx_sequence *, in both cases using methods of rtx_sequence.
10904 (dbr_schedule): Strengthen param "first" and locals "insn",
10905 "next", "epilogue_insn" from rtx to rtx_insn *.
10907 2014-08-28 Richard Biener <rguenther@suse.de>
10909 PR tree-optimization/62283
10910 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
10911 Do not peel loops for alignment where the vector loop likely
10912 doesn't run at least VF times.
10914 2014-08-28 Bin Cheng <bin.cheng@arm.com>
10916 * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
10917 important_candidates. Consider all important candidates if
10918 IVS doesn't give any result. Remove check on ivs->upto.
10919 (try_add_cand_for): Call iv_ca_add_use only once.
10921 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10922 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10923 Anna Tikhonova <anna.tikhonova@intel.com>
10924 Ilya Tocar <ilya.tocar@intel.com>
10925 Andrey Turetskiy <andrey.turetskiy@intel.com>
10926 Ilya Verbin <ilya.verbin@intel.com>
10927 Kirill Yukhin <kirill.yukhin@intel.com>
10928 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10930 (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
10931 (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
10933 (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
10934 (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
10935 (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
10936 (define_insn "*mul<mode>3"): Add EVEX version.
10938 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10939 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10940 Anna Tikhonova <anna.tikhonova@intel.com>
10941 Ilya Tocar <ilya.tocar@intel.com>
10942 Andrey Turetskiy <andrey.turetskiy@intel.com>
10943 Ilya Verbin <ilya.verbin@intel.com>
10944 Kirill Yukhin <kirill.yukhin@intel.com>
10945 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10947 * config/i386/sse.md
10948 (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
10949 (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
10950 (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
10951 (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
10952 (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
10953 (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
10954 (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
10955 (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
10956 (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
10957 (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
10958 (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
10959 (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
10960 (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
10961 (define_insn "vec_interleave_highv16qi<mask_name>"): New.
10962 (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
10963 (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
10965 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10966 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10967 Anna Tikhonova <anna.tikhonova@intel.com>
10968 Ilya Tocar <ilya.tocar@intel.com>
10969 Andrey Turetskiy <andrey.turetskiy@intel.com>
10970 Ilya Verbin <ilya.verbin@intel.com>
10971 Kirill Yukhin <kirill.yukhin@intel.com>
10972 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10974 * config/i386/sse.md
10975 (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
10976 (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
10977 (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
10979 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10980 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10981 Anna Tikhonova <anna.tikhonova@intel.com>
10982 Ilya Tocar <ilya.tocar@intel.com>
10983 Andrey Turetskiy <andrey.turetskiy@intel.com>
10984 Ilya Verbin <ilya.verbin@intel.com>
10985 Kirill Yukhin <kirill.yukhin@intel.com>
10986 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10988 * config/i386/sse.md
10989 (define_mode_iterator VI128_256): New.
10990 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
10992 2014-08-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
10993 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
10994 Anna Tikhonova <anna.tikhonova@intel.com>
10995 Ilya Tocar <ilya.tocar@intel.com>
10996 Andrey Turetskiy <andrey.turetskiy@intel.com>
10997 Ilya Verbin <ilya.verbin@intel.com>
10998 Kirill Yukhin <kirill.yukhin@intel.com>
10999 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11001 * config/i386/sse.md
11002 (define_mode_iterator VI8_256_512): New.
11003 (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
11005 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
11006 (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
11008 (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
11010 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11012 * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx. Remove the
11013 pointer to the cumulative reloc value and return the value for
11014 this reloc instead.
11015 (compute_reloc_for_rtx): Take a const_rtx. Call
11016 compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
11017 avoiding any recursion. Use FOR_EACH_SUBRTX rather than
11018 for_each_rtx for the CONST case.
11020 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11022 * varasm.c (mark_constant): Replace this for_each_rtx callback with...
11023 (mark_constants_in_pattern): ...this new function to iterate over
11025 (mark_constants): Update accordingly.
11027 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11029 * varasm.c: Include rtl-iter.h.
11030 (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
11031 Remove the pointer to the cumulative hashval_t and just return
11032 the hash for this rtx instead. Remove recursive CONST_VECTOR case.
11033 (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
11034 Accumulate the hashval_ts here instead of const_rtx_hash_1.
11036 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11038 * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
11039 Give real type of data parameter. Remove return value.
11040 (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
11041 to iterate over subrtxes.
11043 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11045 * var-tracking.c (use_narrower_mode_test): Turn from being a
11046 for_each_rtx callback to being a function that examines each
11048 (adjust_mems): Update accordingly.
11050 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11052 * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
11053 callback to being a function that examines each subrtx itself.
11054 Remove handling of null rtxes.
11055 (add_uses): Update accordingly.
11057 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11059 * var-tracking.c: Include rtl-iter.h.
11060 (rtx_debug_expr_p): Turn from being a for_each_rtx callback
11061 to being a function that examines each subrtx itself.
11062 (use_type): Update accordingly.
11064 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11066 * store-motion.c: Include rtl-iter.h.
11067 (extract_mentioned_regs_1): Delete.
11068 (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
11069 for_each_rtx to iterate over subrtxes.
11071 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11073 * sel-sched.c: Include rtl-iter.h
11074 (count_occurrences_1): Delete.
11075 (count_occurrences_equiv): Turn rtxes into const_rtxes.
11076 Use FOR_EACH_SUBRTX rather than for_each_rtx.
11078 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11080 * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
11081 * rtlanal.c (tls_referenced_p_1): Delete.
11082 (tls_referenced_p): Take a const_rtx rather than an rtx.
11083 Use FOR_EACH_SUBRTX rather than for_each_rtx.
11085 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11087 * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
11088 (for_each_inc_dec): Take an rtx rather than an rtx *.
11089 * cselib.c (cselib_record_autoinc_cb): Update accordingly.
11090 (cselib_record_sets): Likewise.
11091 * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
11092 (check_for_inc_dec): Likewise.
11093 * rtlanal.c (for_each_inc_dec_ops): Delete.
11094 (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
11095 rather than a pointer to the memory address. Replace
11096 for_each_inc_dec_ops argument with separate function and data
11097 arguments. Abort on non-autoinc addresses.
11098 (for_each_inc_dec_find_mem): Delete.
11099 (for_each_inc_dec): Take an rtx rather than an rtx *. Use
11100 FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
11102 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11104 * rtl.h (find_all_hard_regs): Declare.
11105 * rtlanal.c (find_all_hard_regs): New function.
11106 (record_hard_reg_uses_1): Delete.
11107 (record_hard_reg_uses): Use find_all_hard_regs.
11109 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11111 * rtl.h (replace_label_data): Delete.
11112 (replace_label): Take the old label, new label and update-nuses flag
11113 as direct arguments. Return void.
11114 * cfgcleanup.c (outgoing_edges_match): Update accordingly.
11115 * rtlanal.c (replace_label): Update interface as above. Handle
11116 JUMP_TABLE_DATA as a special case. Handle JUMPs outside the
11117 iterator. Use FOR_EACH_SUBRTX_PTR.
11119 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11121 * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
11122 with const_rtx parameters.
11123 * varasm.c (get_pool_constant): Likewise.
11124 * rtlanal.c (rtx_referenced_p_1): Delete.
11125 (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
11126 Assert that the rtx we're looking for is nonnull. Allow searches
11127 for constant pool SYMBOL_REFs.
11129 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11131 * reload1.c: Include rtl-iter.h.
11132 (note_reg_elim_costly): Turn from being a for_each_rtx callback
11133 to being a function that examines each subrtx itself.
11134 (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
11136 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11138 * regcprop.c (cprop_find_used_regs_1): Delete.
11139 (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
11141 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11143 * regcprop.c: Include rtl-iter.h.
11144 (kill_value): Take a const_rtx.
11145 (kill_autoinc_value): Turn from being a for_each_rtx callback
11146 to being a function that examines each subrtx itself.
11147 (copyprop_hardreg_forward_1): Update accordingly.
11149 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11151 * reg-stack.c: Include rtl-iter.h.
11152 (subst_stack_regs_in_debug_insn): Delete.
11153 (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
11154 instead of for_each_rtx.
11156 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11158 * lower-subreg.c (find_decomposable_subregs): Turn from being
11159 a for_each_rtx callback to being a function that examines each
11160 subrtx itself. Remove handling of null rtxes.
11161 (decompose_multiword_subregs): Update accordingly.
11163 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11165 * lower-subreg.c (adjust_decomposed_uses): Delete.
11166 (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
11167 Remove handling of null rtxes.
11169 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11171 * lower-subreg.c: Include rtl-iter.h.
11172 (resolve_subreg_use): Turn from being a for_each_rtx callback
11173 to being a function that examines each subrtx itself. Remove
11174 handling of null rtxes.
11175 (resolve_reg_notes, resolve_simple_move): Update accordingly.
11176 (decompose_multiword_subregs): Likewise.
11178 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11180 * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
11181 to being a function that examines each subrtx itself.
11182 (simplify_using_condition, simplify_using_initial_values): Update
11185 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11187 * loop-iv.c: Include rtl-iter.h.
11188 (find_single_def_src): New function.
11189 (replace_single_def_regs): Turn from being a for_each_rtx callback
11190 to being a function that examines each subrtx itself.
11191 (replace_in_expr, simplify_using_initial_values): Update accordingly.
11193 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11195 * jump.c (eh_returnjump_p_1): Delete.
11196 (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
11197 Remove handling of null rtxes.
11199 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11201 * jump.c: Include rtl-iter.h.
11202 (returnjump_p_1): Delete.
11203 (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
11204 Remove handling of null rtxes.
11206 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11208 * ira.c: Include rtl-iter.h.
11209 (set_paradoxical_subreg): Turn from being a for_each_rtx callback
11210 to being a function that examines each subrtx itself. Remove
11211 handling of null rtxes.
11212 (update_equiv_regs): Update call accordingly.
11214 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11216 * fwprop.c: Include rtl-iter.h.
11217 (varying_mem_p): Turn from being a for_each_rtx callback to being
11218 a function that examines each subrtx itself.
11219 (propagate_rtx): Update accordingly.
11221 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11223 * function.c: Include rtl-iter.h
11224 (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
11225 callback to being a function that examines each subrtx itself.
11226 Return the changed flag.
11227 (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
11228 (instantiate_virtual_regs): Update calls accordingly.
11230 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11232 * final.c: Include rtl-iter.h.
11233 (mark_symbol_ref_as_used): Delete.
11234 (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
11237 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11239 * emit-rtl.c: Include rtl-iter.h.
11240 (find_auto_inc): Turn from being a for_each_rtx callback to being
11241 a function that examines each subrtx itself. Assume the first operand
11242 to an RTX_AUTOINC is the automodified register.
11243 (try_split): Update call accordingly.
11245 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11247 * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
11248 Return a bool, inverting the result so that 0/false means "not ok".
11249 Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
11250 subrtxes of a CONST.
11251 (mem_loc_descriptor, add_const_value_attribute)
11252 (resolve_addr_in_expr): Update calls accordingly.
11254 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11256 * dwarf2out.c: Include rtl-iter.h.
11257 (const_ok_for_output_1): Take the rtx instead of a pointer to it.
11258 Remove unused data parameter. Return a bool, inverting the result
11259 so that 0/false means "not ok".
11260 (const_ok_for_output): Update accordingly. Use FOR_EACH_SUBRTX_VAR
11261 instead of for_each_rtx.
11263 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11265 * dse.c: Include rtl-iter.h.
11266 (check_mem_read_rtx): Change void * parameter to real type.
11267 Remove return value.
11268 (check_mem_read_use): Fix comment. Use FOR_EACH_SUBRTX_PTR instead of
11269 for_each_rtx. Don't handle null rtxes.
11271 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11273 * df-problems.c: Include rtl-iter.h.
11274 (find_memory): Turn from being a for_each_rtx callback to being
11275 a function that examines each subrtx itself. Continue to look for
11276 volatile references even after a nonvolatile one has been found.
11277 (can_move_insns_across): Update calls accordingly.
11279 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11281 * ddg.c (walk_mems_2, walk_mems_1): Delete.
11282 (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
11283 to iterate over subrtxes. Return a bool rather than an int.
11285 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11287 * ddg.c: Include rtl-iter.h.
11288 (mark_mem_use_1): Rename to...
11289 (mark_mem_use): ...deleting old mark_mem_use. Use FOR_EACH_SUBRTX
11290 instead of for_each_rtx.
11291 (mem_read_insn_p): Update accordingly.
11293 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11295 * cse.c (change_cc_mode_args): Delete.
11296 (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
11297 a function that examines each subrtx itself. Take the fields of
11298 change_cc_mode_args as argument and return void.
11299 (cse_change_cc_mode_insn): Update calls accordingly.
11301 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11303 * cse.c (is_dead_reg): Change argument to const_rtx.
11304 (dead_debug_insn_data): Delete.
11305 (is_dead_debug_insn): Expand commentary. Turn from being a
11306 for_each_rtx callback to being a function that examines
11307 each subrtx itself. Take the fields of dead_debug_insn_data
11309 (delete_trivially_dead_insns): Update call accordingly.
11311 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11313 * cse.c (check_for_label_ref): Move earlier in file. Turn from
11314 being a for_each_rtx callback to being a function that examines
11315 each subrtx itself.
11316 (cse_extended_basic_block): Update call accordingly.
11318 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11320 * cse.c (check_dependence_data): Delete.
11321 (check_dependence): Change from being a for_each_rtx callback to being
11322 a function that examines all subrtxes itself. Don't handle null rtxes.
11323 (invalidate): Update call accordingly.
11325 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11327 * cse.c: Include rtl-iter.h.
11328 (approx_reg_cost_1): Delete.
11329 (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
11330 Don't handle null rtxes.
11332 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11334 * cfgcleanup.c: Include rtl-iter.h.
11335 (mentions_nonequal_regs): Turn from being a for_each_rtx callback
11336 to being a function that examines each subrtx itself.
11337 (thread_jump): Update accordingly.
11339 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11341 * combine-stack-adj.c: Include rtl-iter.h.
11342 (record_stack_refs_data): Delete.
11343 (record_stack_refs): Turn from being a for_each_rtx callback
11344 to being a function that examines each subrtx itself.
11345 Take a pointer to the reflist. Invert sense of return value
11346 so that true means success and false means failure. Don't
11348 (combine_stack_adjustments_for_block): Update accordingly.
11350 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11352 * combine.c (record_truncated_value): Turn from being a for_each_rtx
11353 callback to a function that takes an rtx and returns a bool
11354 (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
11357 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11359 * combine.c: Include rtl-iter.h.
11360 (unmentioned_reg_p_1): Delete.
11361 (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
11362 Don't handle null rtxes.
11364 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11366 * calls.c: Include rtl-iter.h.
11367 (internal_arg_pointer_based_exp_1): Delete.
11368 (internal_arg_pointer_based_exp): Take a const_rtx.
11369 Use FOR_EACH_SUBRTX to iterate over subrtxes.
11371 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11373 * caller-save.c: Include rtl-iter.h.
11374 (add_used_regs_1): Delete.
11375 (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
11376 to iterate over subrtxes. Assert that any remaining pseudos
11379 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11381 * bt-load.c: Include rtl-iter.h.
11382 (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
11383 (find_btr_use): Move further up file. Use FOR_EACH_SUBRTX_PTR
11384 to iterate over subrtxes.
11385 (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
11386 find_btr_use rather than btr_referenced_p.
11388 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11390 * alias.c: Include rtl-iter.h.
11391 (refs_newer_value_cb): Delete.
11392 (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
11394 2014-08-28 Richard Sandiford <rdsandiford@googlemail.com>
11396 * rtl-iter.h: New file.
11397 * rtlanal.c: Include it.
11398 (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
11399 (generic_subrtx_iterator <T>::add_single_to_queue)
11400 (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
11401 (generic_subrtx_iterator <T>::free_array): New functions.
11402 (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
11403 (generic_subrtx_iterator <const_rtx_accessor>)
11404 (generic_subrtx_iterator <rtx_var_accessor>
11405 (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
11406 (setup_reg_subrtx_bounds): New function.
11407 (init_rtlanal): Call it.
11409 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
11412 * config/sh/sh.md (ashlsi3): Handle negative shift count for
11414 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
11416 2014-08-27 Richard Sandiford <rdsandiford@googlemail.com>
11418 * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
11420 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11422 * rtl.h (JUMP_LABEL_AS_INSN): New.
11424 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11426 * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
11428 (alloc_EXPR_LIST): Strengthen return type from rtx to
11430 (remove_free_EXPR_LIST_node): Likewise for param.
11431 * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
11432 from rtx to rtx_expr_list *.
11433 * sched-int.h (struct deps_desc): Strengthen fields
11434 "pending_read_mems" and "pending_write_mems" from rtx to
11437 * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
11438 rtx to rtx_expr_list *.
11439 * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
11440 (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
11442 (remove_free_EXPR_LIST_node): Likewise. Strengthen local "node"
11443 from rtx to rtx_expr_list *.
11444 * loop-iv.c (simplify_using_initial_values): Strengthen local
11445 "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
11446 "pnote_next" from rtx * to rtx_expr_list **.
11447 * sched-deps.c (remove_from_both_dependence_lists): Strengthen
11448 param "exprp" from rtx * to rtx_expr_list **.
11449 (add_insn_mem_dependence): Strengthen local "mem_list" from
11450 rtx * to rtx_expr_list **. Strengthen local "mem_node" from rtx
11451 to rtx_expr_list *.
11452 * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
11453 and local "new_mems" from rtx to rtx_expr_list *. Strengthen
11454 param "old_mems_p" from rtx * to rtx_expr_list **.
11455 * var-tracking.c (struct adjust_mem_data): Strengthen field
11456 "side_effects" from rtx to rtx_expr_list *.
11457 (adjust_insn): Replace NULL_RTX with NULL when assigning to
11459 (prepare_call_arguments): Likewise.
11461 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11463 * function.h (struct rtl_data): Strengthen field
11464 "x_stack_slot_list" from rtx to rtx_expr_list *.
11466 * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
11467 when assigning to stack_slot_list.
11469 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11471 * function.h (struct rtl_data): Strengthen field
11472 x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
11473 * rtl.h (remove_node_from_expr_list): Strengthen second param from
11474 rtx * to rtx_expr_list **.
11476 * cfgbuild.c (make_edges): In loop over
11477 nonlocal_goto_handler_labels, strengthen local "x" from rtx to
11478 rtx_expr_list *, and use methods of the latter class to clarify
11480 * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
11481 rtx_expr_list *, and use methods of the latter class to clarify
11483 * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
11484 * reload1.c (set_initial_label_offsets): Likewise for local "x".
11485 * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
11486 from rtx * to rtx_expr_list **. Strengthen local "temp" from rtx
11487 to rtx_expr_list *. Use methods of the latter class to clarify
11490 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11492 * function.h (struct expr_status): Strengthen field
11493 "x_forced_labels" from rtx to rtx_expr_list *.
11495 * cfgbuild.c (make_edges): Split local "x" into two locals,
11496 strengthening one from rtx to rtx_expr_list *, and using methods
11498 * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
11499 loop over forced_labels, introduce strengthen it from rtx to
11500 rtx_expr_list *, using methods to clarify the code.
11501 * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
11502 to rtx_expr_list *, using methods of said class to clarify the
11504 * reload1.c (set_initial_label_offsets): Split local "x" into two
11505 per-loop variables, strengthening the first from rtx to
11506 rtx_expr_list * and using methods.
11508 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11510 * coretypes.h (class rtx_expr_list): Add forward declaration.
11511 * emit-rtl.c (gen_rtx_EXPR_LIST): New.
11512 * gengenrtl.c (special_rtx): Add EXPR_LIST.
11513 * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
11514 invariant: GET_CODE (X) == EXPR_LIST.
11515 (is_a_helper <rtx_expr_list *>::test): New.
11516 (rtx_expr_list::next): New.
11517 (rtx_expr_list::element): New.
11518 (gen_rtx_EXPR_LIST): New.
11520 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11522 * varasm.c (mark_constants): Convert a GET_CODE check into a
11523 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
11524 Use methods of rtx_sequence to clarify the code.
11526 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11528 * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
11529 local "seq" via a checked cast, and use methods of rtx_sequence
11530 to simplify the code.
11532 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11534 * resource.c (mark_referenced_resources): Strengthen local
11535 "sequence" from rtx to rtx_sequence *, adding a checked cast, and
11536 using methods of rtx_sequence to clarify the code.
11537 (find_dead_or_set_registers): Within the switch statement, convert
11538 a GET_CODE check to a dyn_cast, introducing local "seq". Within
11539 the JUMP_P handling, introduce another local "seq", adding a
11540 checked cast to rtx_sequence *. In both cases, use methods of
11541 rtx_sequence to clarify the code.
11542 (mark_set_resources): Within SEQUENCE case, introduce local "seq"
11543 via a checked cast, and use methods of rtx_sequence to simplify
11546 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11548 * reorg.c (redundant_insn): In two places in the function, replace
11549 a check of GET_CODE with a dyn_cast, introducing local "seq", and
11550 usings methods of rtx_sequence to clarify the code.
11552 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11554 * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
11555 local "seq" with a checked cast, and use methods of rtx_sequence
11556 to clarify the code.
11558 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11560 * function.c (contains): Introduce local "seq" for PATTERN (insn),
11561 with a checked cast, in the region for where we know it's a
11562 SEQUENCE. Use methods of rtx_sequence.
11564 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11566 * final.c (get_attr_length_1): Replace GET_CODE check with a
11567 dyn_cast, introducing local "seq" and the use of methods of
11569 (shorten_branches): Likewise, introducing local "body_seq".
11570 Strengthen local "inner_insn" from rtx to rtx_insn *.
11571 (reemit_insn_block_notes): Replace GET_CODE check with a
11572 dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
11573 Use methods of rtx_sequence.
11574 (final_scan_insn): Likewise, introducing local "seq" for when
11575 "body" is known to be a SEQUENCE, using its methods.
11577 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11579 * except.c (can_throw_external): Strengthen local "seq" from rtx
11580 to rtx_sequence *. Use methods of rtx_sequence.
11581 (insn_nothrow_p): Likewise.
11583 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11585 * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
11586 dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
11587 Use methods of rtx_sequence.
11588 (scan_trace): Likewise for local "pat".
11590 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11592 * coretypes.h (class rtx_sequence): Add forward declaration.
11593 * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
11594 invariant: GET_CODE (X) == SEQUENCE.
11595 (is_a_helper <rtx_sequence *>::test): New.
11596 (is_a_helper <const rtx_sequence *>::test): New.
11597 (rtx_sequence::len): New.
11598 (rtx_sequence::element): New.
11599 (rtx_sequence::insn): New.
11601 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11603 * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
11605 (alloc_INSN_LIST): Strengthen return type from rtx to
11607 (copy_INSN_LIST): Likewise for return type and param.
11608 (concat_INSN_LIST): Likewise for both params and return type.
11609 (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
11610 rtx_insn *. Strengthen second param from rtx * to rtx_insn_list **.
11611 (remove_free_INSN_LIST_node): Strenghten return type from rtx to
11612 rtx_insn *. Strengthen param from rtx * to rtx_insn_list **.
11614 * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
11615 "implicit_sets", "control_uses", "clobbers" from rtx to
11617 (struct deps_desc): Likewise for fields "pending_read_insns",
11618 "pending_write_insns", "pending_jump_insns",
11619 "last_pending_memory_flush", "last_function_call",
11620 "last_function_call_may_noreturn", "sched_before_next_call",
11621 "sched_before_next_jump".
11622 (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
11623 (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
11625 * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
11626 from rtx to rtx_insn_list *.
11627 (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
11630 * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
11631 to rtx_insn_list **.
11632 (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
11634 (queue_insn): Likewise for local "link".
11635 (struct haifa_saved_data): Strengthen field "insn_queue" from
11636 rtx * to rtx_insn_list **.
11637 (save_backtrack_point): Update allocation of save->insn_queue to
11638 reflect the strengthening of elements from rtx to rtx_insn_list *.
11639 (queue_to_ready): Strengthen local "link" from rtx to
11640 rtx_insn_list *; use methods "next" and "insn" when traversing the
11642 (early_queue_to_ready): Likewise for locals "link", "next_link",
11644 (schedule_block): Update allocation of insn_queue to reflect the
11645 strengthening of elements from rtx to rtx_insn_list *. Strengthen
11646 local "link" from rtx to rtx_insn_list *, and use methods when
11648 (add_to_speculative_block): Strengthen locals "twins" and
11649 "next_node" from rtx to rtx_insn_list *, and use methods when
11650 working with them. Strengthen local "twin" from rtx to
11651 rtx_insn *, eliminating a checked cast.
11652 (fix_recovery_deps): Strengthen locals "ready_list" and "link"
11653 from rtx to rtx_insn_list *, and use methods when working with
11656 * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
11657 from rtx to rtx_insn_list *, adding a checked cast.
11658 (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
11660 (copy_INSN_LIST): Strengthen return type and locals "new_queue",
11661 "newlink" from rtx to rtx_insn_list *. Strengthen local
11662 "pqueue" from rtx * to rtx_insn_list **. Strengthen local "x"
11663 from rtx to rtx_insn *.
11664 (concat_INSN_LIST): Strengthen return type and local "new_rtx",
11665 from rtx to rtx_insn_list *. Use methods of the latter class.
11666 (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
11667 rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
11668 (remove_free_INSN_LIST_node): Strengthen return type and local
11669 "elem" from rtx to rtx_insn *. Strenghten param "listp" from
11670 rtx * to rtx_insn_list **. Strengthen local "node" from rtx to
11671 rtx_insn_list *, using "insn" method.
11673 * sched-deps.c (add_dependence_list): Strengthen param "list"
11674 from rtx to rtx_insn_list *, and use methods when working with it.
11675 (add_dependence_list_and_free): Strengthen param "listp" from
11676 rtx * to rtx_insn_list **.
11677 (remove_from_dependence_list): Strenghten param "listp" from rtx *
11678 to rtx_insn_list **, and use methods when working with *listp.
11679 (remove_from_both_dependence_lists): Strengthen param "listp" from
11680 rtx * to rtx_insn_list **
11681 (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
11682 to rtx_insn_list **. Eliminate local "link", in favor of two new
11683 locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
11685 (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
11686 by introducing local "cond_deps".
11687 (remove_from_deps): Strengthen param "insn" from rtx to
11690 * sched-rgn.c (concat_insn_mem_list): Strengthen param
11691 "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
11692 Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
11693 Use methods of rtx_insn_list.
11695 * store-motion.c (struct st_expr): Strengthen fields
11696 "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
11697 (st_expr_entry): Replace NULL_RTX with NULL when dealing with
11699 (find_moveable_store): Split out "tmp" into multiple more-tightly
11700 scoped locals. Use methods of rtx_insn_list *.
11701 (compute_store_table): Strengthen local "tmp" from rtx to
11702 rtx_insn *. Use methods of rtx_insn_list *.
11704 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11706 * coretypes.h (class rtx_insn_list): Add forward declaration.
11707 * rtl.h (class rtx_insn_list): New subclass of rtx_def
11708 (is_a_helper <rtx_insn_list *>::test): New.
11709 (rtx_insn_list::next): New.
11710 (rtx_insn_list::insn): New.
11711 (gen_rtx_INSN_LIST): Add prototype.
11712 * emit-rtl.c (gen_rtx_INSN_LIST): New.
11713 * gengenrtl.c (special_rtx): Add INSN_LIST.
11715 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11717 * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
11718 "prev" from rtx to rtx_insn *.
11720 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11722 * rtl.h (INSN_UID): Convert from a macro to a pair of inline
11723 functions. Require merely an rtx for now, not an rtx_insn *.
11724 (BLOCK_FOR_INSN): Likewise.
11725 (INSN_LOCATION): Likewise.
11726 (INSN_HAS_LOCATION): Convert from a macro to an inline function.
11728 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11730 * rtl.h (PATTERN): Convert this macro into a pair of inline
11731 functions, for now, requiring const_rtx and rtx.
11733 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11735 * target.def (unwind_emit): Strengthen param "insn" from rtx to
11737 (final_postscan_insn): Likewise.
11738 (adjust_cost): Likewise.
11739 (adjust_priority): Likewise.
11740 (variable_issue): Likewise.
11741 (macro_fusion_pair_p): Likewise.
11742 (dfa_post_cycle_insn): Likewise.
11743 (first_cycle_multipass_dfa_lookahead_guard): Likewise.
11744 (first_cycle_multipass_issue): Likewise.
11745 (dfa_new_cycle): Likewise.
11746 (adjust_cost_2): Likewise for params "insn" and "dep_insn".
11747 (speculate_insn): Likewise for param "insn".
11748 (gen_spec_check): Likewise for params "insn" and "label".
11749 (get_insn_spec_ds): Likewise for param "insn".
11750 (get_insn_checked_ds): Likewise.
11751 (dispatch_do): Likewise.
11752 (dispatch): Likewise.
11753 (cannot_copy_insn_p): Likewise.
11754 (invalid_within_doloop): Likewise.
11755 (legitimate_combined_insn): Likewise.
11756 (needed): Likewise.
11759 * doc/tm.texi: Automatically updated to reflect changes to
11762 * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
11764 (schedule_block): Likewise.
11765 (sched_init): Likewise.
11766 (sched_speculate_insn): Strengthen param "insn" from rtx to
11768 (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
11770 * hooks.c (hook_bool_rtx_true): Rename to...
11771 hook_bool_rtx_insn_true): ...this, and strengthen first param from
11773 (hook_constcharptr_const_rtx_null): Rename to...
11774 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
11775 first param from const_rtx to const rtx_insn *.
11776 (hook_bool_rtx_int_false): Rename to...
11777 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
11778 param from rtx to rtx_insn *.
11779 (hook_void_rtx_int): Rename to...
11780 (hook_void_rtx_insn_int): ...this, and strengthen first param from
11783 * hooks.h (hook_bool_rtx_true): Rename to...
11784 (hook_bool_rtx_insn_true): ...this, and strengthen first param from
11786 (hook_bool_rtx_int_false): Rename to...
11787 (hook_bool_rtx_insn_int_false): ...this, and strengthen first
11788 param from rtx to rtx_insn *.
11789 (hook_void_rtx_int): Rename to...
11790 (hook_void_rtx_insn_int): ...this, and strengthen first param from
11792 (hook_constcharptr_const_rtx_null): Rename to...
11793 (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
11794 first param from const_rtx to const rtx_insn *.
11796 * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
11797 and local "prev" from rtx to rtx_insn *.
11799 * sched-int.h (sched_speculate_insn): Strengthen first param from
11802 * sel-sched.c (create_speculation_check): Likewise for local "label".
11803 * targhooks.c (default_invalid_within_doloop): Strengthen param
11804 "insn" from const_rtx to const rtx_insn *.
11805 * targhooks.h (default_invalid_within_doloop): Strengthen param
11806 from const_rtx to const rtx_insn *.
11808 * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
11809 (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
11811 * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
11813 (arc_invalid_within_doloop): Likewise, with const.
11815 * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
11816 (arm_cannot_copy_insn_p): Likewise for param "insn".
11817 (arm_unwind_emit): Likewise.
11819 * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
11822 * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
11823 (c6x_variable_issue): Likewise. Removed now-redundant checked
11825 (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
11827 * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
11828 Likewise for param "insn".
11829 (epiphany_mode_after): Likewise.
11830 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
11831 params "insn", "dep_insn".
11832 (epiphany_mode_needed): Likewise for param "insn".
11833 (epiphany_mode_after): Likewise.
11835 * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
11836 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
11837 (ix86_avx_u128_mode_needed): Likewise.
11838 (ix86_i387_mode_needed): Likewise.
11839 (ix86_mode_needed): Likewise.
11840 (ix86_avx_u128_mode_after): Likewise.
11841 (ix86_mode_after): Likewise.
11842 (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
11843 (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
11844 (ix86_adjust_priority): Likewise for param "insn".
11845 (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
11846 (do_dispatch): Likewise.
11847 (has_dispatch): Likewise.
11848 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
11850 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
11851 reflect renaming of default hook implementation from
11852 hook_constcharptr_const_rtx_null to
11853 hook_constcharptr_const_rtx_insn_null.
11854 (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
11856 (ia64_variable_issue): Likewise for param "insn".
11857 (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
11858 (ia64_dfa_new_cycle): Likewise.
11859 (ia64_get_insn_spec_ds): Likewise.
11860 (ia64_get_insn_checked_ds): Likewise.
11861 (ia64_speculate_insn): Likewise.
11862 (ia64_gen_spec_check): Likewise for params "insn", "label".
11863 (ia64_asm_unwind_emit): Likewise for param "insn".
11865 * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
11867 * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
11868 "insn", "def_insn".
11869 (m68k_sched_variable_issue): Likewise for param "insn".
11871 * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
11874 * config/microblaze/microblaze.c (microblaze_adjust_cost):
11875 Likewise for params "insn", "dep".
11877 * config/mips/mips.c (mips_adjust_cost): Likewise.
11878 (mips_variable_issue): Likewise for param "insn".
11879 (mips_final_postscan_insn): Likewise.
11881 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
11882 for params "insn", "dep".
11884 * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
11886 (pa_adjust_priority): Likewise for param "insn".
11888 * config/picochip/picochip.c (picochip_sched_adjust_cost):
11889 Likewise for params "insn", "dep_insn".
11891 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
11893 (rs6000_variable_issue): Likewise.
11894 (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
11895 (rs6000_debug_adjust_cost): Likewise.
11896 (rs6000_adjust_priority): Likewise for param "insn".
11897 (rs6000_use_sched_lookahead_guard): Likewise.
11898 (get_next_active_insn): Likewise for return type and both params.
11899 (redefine_groups): Likewise for params "prev_head_insn", "tail"
11900 and locals "insn", "next_insn".
11901 (pad_groups): Likewise.
11903 * config/s390/s390.c (s390_adjust_priority): Likewise for param
11905 (s390_cannot_copy_insn_p): Likewise.
11906 (s390_sched_variable_issue): Likewise for third param, eliminating
11908 (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
11909 default hook implementation from hook_constcharptr_const_rtx_null
11910 to hook_constcharptr_const_rtx_insn_null.
11912 * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
11913 from rtx to rtx_insn *.
11914 (sh_adjust_cost): Likewise for params "insn", "dep_insn".
11915 (sh_variable_issue): Likewise for param "insn".
11916 (sh_dfa_new_cycle): Likewise.
11917 (sh_mode_needed): Likewise.
11918 (sh_mode_after): Likewise.
11920 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
11921 params "insn", "dep_insn".
11922 (hypersparc_adjust_cost): Likewise.
11923 (sparc_adjust_cost): Likewise.
11925 * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
11926 param, eliminated checked cast.
11927 (spu_sched_adjust_cost): Likewise for first and third params.
11929 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
11930 params "insn" and "dep_insn" from rtx to rtx_insn *.
11932 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
11934 2014-08-27 David Malcolm <dmalcolm@redhat.com>
11936 * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
11937 (set_is_load_p): ...this, updating to work on a SET pattern rather
11939 (is_store_insn): Rename to...
11940 (set_is_store_p): ...this, updating to work on a SET pattern
11941 rather than an insn.
11942 (mn10300_adjust_sched_cost): Move call to get_attr_timings from
11943 top of function to where it is needed. Rewrite the bogus
11944 condition that checks for "insn" and "dep" being PARALLEL to
11945 instead use single_set, introducing locals "insn_set" and
11946 "dep_set". Given that we only ever returned "cost" for a non-pair
11947 of SETs, bail out early if we don't have a pair of SET.
11948 Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
11949 use the new locals "insn_set" and "dep_set", and update calls to
11950 is_load_insn and is_store_insn to be calls to set_is_load_p and
11953 2014-08-27 Guozhi Wei <carrot@google.com>
11956 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
11957 amount before using it.
11959 2014-08-27 Richard Biener <rguenther@suse.de>
11961 * gimple-fold.c (get_maxval_strlen): Add overload wrapping
11962 get_maxval_strlen inside a more useful API.
11963 (gimple_fold_builtin_with_strlen): Remove and fold into ...
11964 (gimple_fold_builtin): ... caller.
11965 (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
11966 gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
11967 gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
11968 gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
11969 gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
11970 gimple_fold_builtin_sprintf): Adjust to compute maxval
11973 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
11976 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
11978 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
11979 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11980 Anna Tikhonova <anna.tikhonova@intel.com>
11981 Ilya Tocar <ilya.tocar@intel.com>
11982 Andrey Turetskiy <andrey.turetskiy@intel.com>
11983 Ilya Verbin <ilya.verbin@intel.com>
11984 Kirill Yukhin <kirill.yukhin@intel.com>
11985 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11987 * config/i386/sse.md
11988 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
11989 Use `concat_tg_mode' attribute to determine asm register size.
11991 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
11992 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11993 Anna Tikhonova <anna.tikhonova@intel.com>
11994 Ilya Tocar <ilya.tocar@intel.com>
11995 Andrey Turetskiy <andrey.turetskiy@intel.com>
11996 Ilya Verbin <ilya.verbin@intel.com>
11997 Kirill Yukhin <kirill.yukhin@intel.com>
11998 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12000 * config/i386/sse.md
12001 (define_mode_iterator VI48_AVX512VL): New.
12002 (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
12003 (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
12004 (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
12005 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
12006 with VI1): Change mode iterator.
12007 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
12008 with VI_ULOADSTORE_BW_AVX512VL): New.
12009 (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
12010 with VI_ULOADSTORE_F_AVX512VL): Ditto.
12011 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
12012 with VI1): Change mode iterator.
12013 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
12014 with VI_ULOADSTORE_BW_AVX512VL): New.
12015 (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
12016 with VI_ULOADSTORE_F_AVX512VL): Ditto.
12017 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
12018 with VI1): Change mode iterator.
12019 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
12020 with VI_ULOADSTORE_BW_AVX512VL): New.
12021 (define_insn "<sse2_avx_avx512f>_storedqu<mode>
12022 with VI_ULOADSTORE_BW_AVX512VL): Ditto.
12023 (define_insn "avx512f_storedqu<mode>_mask"): Delete.
12024 (define_insn "<avx512>_storedqu<mode>_mask" with
12025 VI48_AVX512VL): New.
12026 (define_insn "<avx512>_storedqu<mode>_mask" with
12027 VI12_AVX512VL): Ditto.
12029 2014-08-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
12030 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
12031 Anna Tikhonova <anna.tikhonova@intel.com>
12032 Ilya Tocar <ilya.tocar@intel.com>
12033 Andrey Turetskiy <andrey.turetskiy@intel.com>
12034 Ilya Verbin <ilya.verbin@intel.com>
12035 Kirill Yukhin <kirill.yukhin@intel.com>
12036 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
12038 * config/i386/sse.md
12039 (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
12040 (define_mode_iterator VI48_AVX512BW): New.
12041 (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
12042 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
12043 with VI48_AVX2_48_AVX512F): New.
12044 (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
12045 with VI2_AVX512VL): Ditto.
12047 2014-08-27 Richard Biener <rguenther@suse.de>
12049 PR middle-end/62239
12050 * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
12051 (fold_builtin_3): Do not fold strcat_chk here.
12052 * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
12054 (gimple_fold_builtin): Fold strcat_chk here.
12056 2014-08-26 Aldy Hernandez <aldyh@redhat.com>
12058 * dwarf2out.h (dwarf2out_decl): Remove prototype.
12059 * dwarf2out.c (dwarf2out_decl): Make static.
12061 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
12063 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
12065 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12067 * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
12068 from rtx to rtx_insn *.
12069 (cselib_lookup_from_insn): Likewise for final param.
12070 (cselib_subst_to_values_from_insn): Likewise.
12071 (cselib_add_permanent_equiv): Likewise.
12073 * cselib.c (cselib_current_insn): Likewise for this variable.
12074 (cselib_subst_to_values_from_insn): Likewise for param "insn".
12075 (cselib_lookup_from_insn): Likewise.
12076 (cselib_add_permanent_equiv): Likewise for param "insn" and local
12077 "save_cselib_current_insn".
12078 (cselib_process_insn): Replace use of NULL_RTX with NULL.
12080 * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
12081 from rtx to rtx_insn *.
12083 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12085 * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
12088 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12090 * df.h (df_dump_insn_problem_function): Strengthen first param of
12091 this callback from const_rtx to const rtx_insn *.
12092 (struct df_insn_info): Strengthen field "insn" from rtx to
12094 (DF_REF_INSN): Eliminate this function, reinstating the older
12096 (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
12097 (df_reg_defined): Likewise.
12098 (df_find_use): Likewise.
12099 (df_reg_used): Likewise.
12100 (df_dump_insn_top): Strengthen param 1 from const_rtx to
12102 (df_dump_insn_bottom): Likewise.
12103 (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
12104 (df_insn_debug_regno): Likewise.
12105 (debug_df_insn): Likewise.
12106 (df_rd_simulate_one_insn): Likewise for param 2.
12107 (df_word_lr_simulate_defs): Likewise for param 1.
12108 (df_word_lr_simulate_uses): Likewise.
12109 (df_md_simulate_one_insn): Likewise for param 2.
12110 (df_simulate_find_noclobber_defs): Likewise for param 1.
12111 (df_simulate_find_defs): Likewise.
12112 (df_simulate_defs): Likewise.
12113 (df_simulate_uses): Likewise.
12114 (df_simulate_one_insn_backwards): Likewise for param 2.
12115 (df_simulate_one_insn_forwards): Likewise.
12116 (df_uses_create): Likewise for param 2.
12117 (df_insn_create_insn_record): Likewise for param 1.
12118 (df_insn_delete): Likewise.
12119 (df_insn_rescan): Likewise.
12120 (df_insn_rescan_debug_internal): Likewise.
12121 (df_insn_change_bb): Likewise.
12122 (df_notes_rescan): Likewise.
12123 * rtl.h (remove_death): Likewise for param 2.
12124 (print_rtl_with_bb): Strengthen param 2 from const_rtx to
12126 * sched-int.h (reemit_notes): Strengthen param from rtx to
12128 * valtrack.h (propagate_for_debug): Likewise for param 1.
12130 * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
12131 local "tmp_rtx" from const_rtx to const rtx_insn *.
12132 * combine.c (remove_death): Strengthen param "insn" from rtx to
12134 (move_deaths): Likewise for local "where_dead".
12135 * cse.c (delete_trivially_dead_insns): Introduce local
12136 "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
12137 * df-core.c (df_find_def): Strengthen param "insn" from rtx to
12139 (df_reg_defined): Likewise.
12140 (df_find_use): Likewise.
12141 (df_reg_used): Likewise.
12142 (df_dump_insn_problem_data): Strengthen param "insn" from
12143 const_rtx to const rtx_insn *.
12144 (df_dump_insn_top): Likewise.
12145 (df_dump_insn_bottom): Likewise.
12146 (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
12147 (df_insn_debug_regno): Likewise.
12148 (debug_df_insn): Likewise.
12149 (DF_REF_INSN): Delete.
12150 * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
12151 from rtx to rtx_insn *.
12152 (df_chain_insn_top_dump): Strengthen param "insn" from
12153 const_rtx to const rtx_insn *.
12154 (df_chain_insn_bottom_dump): Likewise.
12155 (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
12157 (df_word_lr_simulate_uses): Likewise.
12158 (df_print_note): Likewise.
12159 (df_remove_dead_and_unused_notes): Likewise.
12160 (df_set_unused_notes_for_mw): Likewise.
12161 (df_set_dead_notes_for_mw): Likewise.
12162 (df_create_unused_note): Likewise.
12163 (df_simulate_find_defs): Likewise.
12164 (df_simulate_find_uses): Likewise.
12165 (df_simulate_find_noclobber_defs): Likewise.
12166 (df_simulate_defs): Likewise.
12167 (df_simulate_uses): Likewise.
12168 (df_simulate_one_insn_backwards): Likewise.
12169 (df_simulate_one_insn_forwards): Likewise.
12170 (df_md_simulate_one_insn): Likewise.
12171 * df-scan.c (df_uses_create): Likewise.
12172 (df_insn_create_insn_record): Likewise.
12173 (df_insn_delete): Likewise.
12174 (df_insn_rescan): Likewise.
12175 (df_insn_rescan_debug_internal): Likewise.
12176 (df_insn_change_bb): Likewise.
12177 (df_notes_rescan): Likewise.
12178 (df_refs_add_to_chains): Likewise.
12179 (df_insn_refs_verify): Likewise.
12180 * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
12181 when invoking df_insn_delete.
12182 (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
12183 (set_unique_reg_note): Add checked cast.
12184 * final.c (cleanup_subreg_operands): Likewise.
12185 * gcse.c (update_ld_motion_stores): Likewise, strengthening local
12186 "insn" from rtx to rtx_insn *.
12187 * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
12188 "last" from rtx to rtx_insn *.
12189 * ira-emit.c (change_regs_in_insn): New function.
12190 (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
12191 Invoke change_regs_in_insn rather than change_regs.
12192 * ira.c (update_equiv_regs): Strengthen locals "insn",
12193 "init_insn", "new_insn" from rtx to rtx_insn *. Invoke
12194 for_each_rtx_in_insn rather than for_each_rtx.
12195 * recog.c (confirm_change_group): Add checked casts.
12196 (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
12198 (peep2_fill_buffer): Add checked cast.
12199 * rtlanal.c (remove_note): Likewise.
12200 * valtrack.c (propagate_for_debug): Strengthen param "insn" and
12201 locals "next" "end" from rtx to rtx_insn *.
12203 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12205 * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
12207 (struct reg_use_data): Likewise for field "insn".
12208 (insn_cost): Likewise for param.
12209 (real_insn_for_shadow): Likewise for return type and param.
12210 (increase_insn_priority): Likewise for param 1.
12211 (debug_dependencies): Likewise for both params.
12213 * haifa-sched.c (insn_delay): Likewise for param "insn".
12214 (real_insn_for_shadow): Likewise for return type and param "insn".
12215 (update_insn_after_change): Likewise for param "insn".
12216 (recompute_todo_spec): Likewise for param "next" and locals "pro",
12218 (insn_cost): Likewise for param "insn".
12219 (increase_insn_priority): Likewise.
12220 (calculate_reg_deaths): Likewise.
12221 (setup_insn_reg_pressure_info): Likewise.
12222 (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
12223 (model_index): Strengthen param "insn" from rtx to rtx_insn *.
12224 (model_recompute): Likewise.
12225 (must_restore_pattern_p): Likewise for param "next".
12226 (model_excess_cost): Likewise for param "insn".
12227 (queue_remove): Likewise.
12228 (adjust_priority): Likewise for param "prev".
12229 (update_register_pressure): Likewise for param "insn".
12230 (setup_insn_max_reg_pressure): Likewise for local "insn".
12231 (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
12232 (model_add_to_schedule): Likewise.
12233 (model_reset_queue_indices): Likewise for local "insn".
12234 (unschedule_insns_until): Strengthen local "recompute_vec" from
12235 auto_vec<rtx> to auto_vec<rtx_insn *>. Strengthen locals "last",
12236 "con" from rtx to rtx_insn *.
12237 (restore_last_backtrack_point): Likewise for both locals "x". Add
12239 (estimate_insn_tick): Likewise for param "insn".
12240 (commit_schedule): Likewise for params "prev_head", "tail" and
12242 (verify_shadows): Likewise for locals "i1", "i2".
12243 (dump_insn_stream): Likewise for params "head", "tail" and locals
12244 "next_tail", "insn".
12245 (schedule_block): Likewise for locals "insn", "x". Add a checked
12247 (fix_inter_tick): Likewise for params "head", "tail".
12248 (create_check_block_twin): Likewise for local "jump".
12249 (haifa_change_pattern): Likewise for param "insn".
12250 (haifa_speculate_insn): Likewise.
12251 (dump_new_block_header): Likewise for params "head", "tail".
12252 (fix_jump_move): Likewise for param "jump".
12253 (move_block_after_check): Likewise.
12254 (sched_init_insn_luid): Likewise for param "insn".
12255 (sched_init_luids): Likewise for local "insn".
12256 (insn_luid): Likewise for param "insn".
12257 (init_h_i_d): Likewise.
12258 (haifa_init_h_i_d): Likewise for local "insn".
12259 (haifa_init_insn): Likewise for param "insn".
12260 * sched-deps.c (add_dependence): Likewise for local "real_pro",
12262 (create_insn_reg_use): Likewise for param "insn".
12263 (setup_insn_reg_uses): Likewise. Add a checked cast.
12264 * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
12265 "tail" from rtx to rtx_insn *.
12266 * sched-rgn.c (void debug_dependencies): Likewise, also for locals
12267 "insn", "next_tail".
12269 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12271 * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
12272 from rtx to rtx_insn *.
12273 (model_add_to_schedule): Likewise for locals "start", "end",
12276 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12278 * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
12280 * cfgrtl.c (duplicate_insn_chain): Likewise for params "from",
12281 "to" and locals "insn", "next", "copy". Remove now-redundant
12284 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12286 * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
12287 rtx_insn * and param 4 from rtx * to rtx_insn **.
12288 (get_condition): Strengthen param 1 from rtx to rtx_insn * and
12289 param 2 from rtx * to rtx_insn **.
12291 * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
12292 rtx_insn * and final param from rtx * to rtx_insn **.
12294 * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
12295 from rtx to rtx_insn *.
12296 (try_head_merge_bb): Likewise for both locals named "move_upto".
12297 * df-problems.c (can_move_insns_across): Likewise for params
12298 "from", "to", "across_from", "across_to" and locals "insn",
12299 "next", "max_to". Strengthen param "pmove_upto" from rtx * to
12301 * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
12302 from rtx to rtx_insn *.
12303 (noce_get_alt_condition): Strengthen param "earliest" from rtx *
12304 to rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
12305 (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
12307 (noce_try_abs): Likewise.
12308 (noce_get_condition): Likewise for param "jump". Strengthen param
12309 "earliest" from rtx * to rtx_insn **.
12310 (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
12312 (find_cond_trap): Likewise.
12313 (dead_or_predicable): Likewise for local "earliest".
12314 * loop-iv.c (check_simple_exit): Likewise for local "at". Add
12316 * rtlanal.c (canonicalize_condition): Likewise for param "insn"
12317 and local "prev". Strengthen param "earliest" from rtx * to
12319 (get_condition): Strengthen param "jump" from rtx to rtx_insn *
12320 Strengthen param "earliest" from rtx * to rtx_insn **.
12322 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12324 * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
12325 "to" and local "insn" from rtx to rtx_insn *.
12327 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12329 * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
12330 from rtx to rtx_insn *.
12331 (need_nop_to_preserve_insn_bb): Likewise for param "insn".
12332 (code_motion_path_driver): Likewise for local "last_insn".
12333 (simplify_changed_insns): Likewise for local "insn".
12335 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12337 * rtl.h (push_to_sequence): Strengthen param from rtx to
12339 (push_to_sequence2): Likewise for both params.
12340 (delete_insns_since): Likewise for param.
12341 (reorder_insns_nobb): Likewise for all three params.
12342 (set_new_first_and_last_insn): Likewise for both params.
12344 * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
12345 rtx_insn *. Remove now-redundant cast.
12346 (set_last_insn): Likewise.
12348 * builtins.c (expand_builtin_return): Strengthen local
12349 "call_fusage" from rtx to rtx_insn *.
12350 * cfgrtl.c (create_basic_block_structure): Likewise for local
12352 * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
12353 "first", "last" and local "insn".
12354 (delete_insns_since): Likewise for param "from".
12355 (reorder_insns_nobb): Likewise for params "from", "to", "after"
12357 (push_to_sequence): Likewise for param "first" and local "last".
12358 (push_to_sequence2): Likewise for params "first" and "last".
12359 * lra.c (emit_add3_insn): Likewise for local "last".
12360 (lra_emit_add): Likewise.
12361 * lra-constraints.c (base_to_reg): Likewise for locals "insn",
12363 (process_address_1): Likewise for locals "insn", last".
12364 * modulo-sched.c (ps_first_note): Likewise for return type.
12365 * optabs.c (expand_binop_directly): Likewise for param "last".
12367 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12369 * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
12371 * emit-rtl.c (get_last_insn_anywhere): Likewise.
12373 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12375 * function.h (struct sequence_stack): Strengthen fields "first"
12376 and "last" from rtx to rtx_insn *.
12377 (struct emit_status): Likewise for fields "x_first_insn" and
12380 * emit-rtl.h (get_insns): Remove now-redundant checked cast.
12381 (set_first_insn): Add checked cast.
12382 (get_last_insn): Remove now-redundant checked cast.
12383 (set_last_insn): Add checked cast.
12385 * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
12386 "saved_first" and "saved_last" from rtx to rtx_insn *.
12388 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12390 * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
12391 (unlink_insn_chain): Strengthen both params from rtx to
12394 * cfgrtl.c (cfg_layout_function_header): Likewise for this
12396 (unlink_insn_chain): Likewise for params "first" and "last".
12397 Remove now-redundant checked cast.
12398 (record_effective_endpoints): Replace use of NULL_RTX with NULL.
12399 (fixup_reorder_chain): Strengthen local "insn" from rtx to
12401 * emit-rtl.c (link_insn_into_chain): Likewise for all three
12403 (add_insn): Likewise for param "insn" and local "prev".
12404 (add_insn_after_nobb): Likewise for both params and local "next".
12405 (add_insn_before_nobb): Likewise for both params and local "prev".
12406 (add_insn_after): Rename param "after" to "uncast_after",
12407 introducing local "after" with another checked cast.
12408 (add_insn_before): Rename params "insn" and "before", giving them
12409 "uncast_" prefixes, adding the old names back using checked casts.
12410 (emit_note_after): Likewise for param "after".
12411 (emit_note_before): Likewise for param "before".
12412 (emit_label): Add a checked cast.
12414 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12416 * cselib.h (cselib_record_sets_hook): Strengthen initial param
12417 "insn" from rtx to rtx_insn *.
12419 * cselib.c (cselib_record_sets_hook): Likewise.
12421 * var-tracking.c (add_with_sets): Likewise, renaming back from
12422 "uncast_insn" to "insn" and eliminating the checked cast from rtx
12425 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12427 * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
12428 and "header_" from rtx to rtx_insn *.
12429 (struct basic_block_d): Likewise for field "head_" within "x"
12430 field of union basic_block_il_dependent.
12431 (BB_HEAD): Drop function...
12432 (SET_BB_HEAD): ...and this function in favor of...
12433 (BB_HEAD): ...reinstate macro.
12434 (BB_END): Drop function...
12435 (SET_BB_END): ...and this function in favor of...
12436 (BB_END): ...reinstate macro.
12437 (BB_HEADER): Drop function...
12438 (SET_BB_HEADER): ...and this function in favor of...
12439 (BB_HEADER): ...reinstate macro.
12441 * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
12442 (fix_crossing_unconditional_branches): Likewise.
12443 * caller-save.c (save_call_clobbered_regs): Likewise.
12444 (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
12445 * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
12446 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
12447 (merge_blocks_move_successor_nojumps): Likewise.
12448 (outgoing_edges_match): Update use of for_each_rtx to
12449 for_each_rtx_in_insn.
12450 * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
12451 (expand_gimple_cond): Likewise.
12452 (expand_gimple_tailcall): Likewise.
12453 (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
12455 (construct_exit_block): Drop use of SET_BB_END.
12456 * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
12458 (delete_insn): Rename param "insn" to "uncast_insn", introducing
12459 a new local "insn" with a checked cast to rtx_insn *. Drop use of
12460 SET_BB_HEAD and SET_BB_END.
12461 (create_basic_block_structure): Drop use of SET_BB_HEAD and
12463 (rtl_delete_block): Drop use of SET_BB_HEAD.
12464 (rtl_split_block): Drop use of SET_BB_END.
12465 (emit_nop_for_unique_locus_between): Likewise.
12466 (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
12467 (block_label): Drop use of SET_BB_HEAD.
12468 (fixup_abnormal_edges): Drop use of SET_BB_END.
12469 (record_effective_endpoints): Drop use of SET_BB_HEADER.
12470 (relink_block_chain): Likewise.
12471 (fixup_reorder_chain): Drop use of SET_BB_END.
12472 (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
12473 (cfg_layout_delete_block): Strengthen local "to" from rtx * to
12474 rtx_insn **. Drop use of SET_BB_HEADER.
12475 (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
12477 (BB_HEAD): Delete this function.
12478 (SET_BB_HEAD): Likewise.
12479 (BB_END): Likewise.
12480 (SET_BB_END): Likewise.
12481 (BB_HEADER): Likewise.
12482 (SET_BB_HEADER): Likewise.
12483 * emit-rtl.c (add_insn_after): Rename param "insn" to
12484 "uncast_insn", adding a new local "insn" and a checked cast to
12485 rtx_insn *. Drop use of SET_BB_END.
12486 (remove_insn): Strengthen locals "next" and "prev" from rtx to
12487 rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END.
12488 (reorder_insns): Drop use of SET_BB_END.
12489 (emit_insn_after_1): Strengthen param "first" and locals "last",
12490 "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END.
12491 (emit_pattern_after_noloc): Add checked cast.
12492 * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
12493 (restore_other_notes): Likewise.
12494 (move_insn): Likewise.
12495 (sched_extend_bb): Likewise.
12496 (fix_jump_move): Likewise.
12497 * ifcvt.c (noce_process_if_block): Likewise.
12498 (dead_or_predicable): Likewise.
12499 * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
12500 * reg-stack.c (change_stack): Drop use of SET_BB_END.
12501 * sel-sched-ir.c (sel_move_insn): Likewise.
12502 * sel-sched.c (move_nop_to_previous_block): Likewise.
12504 * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
12506 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
12508 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12510 * basic-block.h (create_basic_block_structure): Strengthen params
12511 1 "head" and 2 "end" from rtx to rtx_insn *.
12512 * cfgrtl.c (create_basic_block_structure): Likewise.
12513 (rtl_create_basic_block): Update casts from void * to rtx to
12514 rtx_insn *, so that we can pass them as rtx_insn * to
12515 create_basic_block_structure.
12516 * sel-sched-ir.c (sel_create_basic_block): Likewise.
12518 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12520 * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
12522 (check_for_inc_dec): Strengthen param "insn" from rtx to
12525 * cselib.h (cselib_process_insn): Likewise.
12527 * cselib.c (cselib_record_sets): Likewise.
12528 (cselib_process_insn): Likewise.
12530 * dse.c (struct insn_info): Likewise for field "insn".
12531 (check_for_inc_dec_1): Likewise for local "insn".
12532 (check_for_inc_dec): Likewise for param "insn".
12533 (scan_insn): Likewise.
12534 (dse_step1): Likewise for local "insn".
12536 * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
12537 rtx_insn **. Use for_each_rtx_in_insn rather than for_each_rtx.
12539 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12541 * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
12542 from rtx to rtx_insn *.
12543 (DEP_PRO): Delete this function and...
12544 (SET_DEP_PRO): ...this function in favor of...
12545 (DEP_PRO): ...reinstate this macro.
12546 (DEP_CON): Delete this function and...
12547 (SET_DEP_CON): ...this function in favor of...
12548 (DEP_CON): ...reinstate this old macro.
12549 (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
12550 (init_dep): Likewise.
12551 (set_priorities): Likewise for both params.
12552 (sd_copy_back_deps): Likewise for params 1 and 2.
12554 * haifa-sched.c (priority): Likewise for param "insn" and local
12556 (set_priorities): Likewise for params "head" and "tail" and local
12558 (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
12560 (add_to_speculative_block): Add a checked cast.
12561 (create_check_block_twin): Drop use of SET_DEP_CON.
12562 (add_jump_dependencies): Strengthen params "insn" and "jump" from
12565 * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
12566 Drop use of SET_DEP_PRO
12567 (init_dep): Strengthen params "pro" and "con" from rtx to
12569 (sd_copy_back_deps): Likewise for params "to" and "from". Drop
12570 use of SET_DEP_CON.
12573 (SET_DEP_PRO): Delete.
12574 (SET_DEP_CON): Delete.
12576 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12578 * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
12579 from rtx to rtx_insn *.
12580 (VINSN_INSN_RTX): Eliminate rvalue function and...
12581 (SET_VINSN_INSN): ...lvalue function in favor of...
12582 (VINSN_INSN_RTX): reinstate this old macro.
12584 * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
12585 in favor of VINSN_INSN_RTX.
12586 (VINSN_INSN_RTX): Delete this function.
12587 (SET_VINSN_INSN_RTX): Likewise.
12589 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12591 * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
12592 (BND_TO): Delete this function and...
12593 (SET_BND_TO): ...this functions in favor of...
12594 (BND_TO): ...reinstating this macro.
12595 (struct _fence): Strengthen field "executing_insns" from
12596 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *. Strengthen fields
12597 "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
12598 (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
12599 and param "insn" from rtx to insn_t.
12600 (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
12603 * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
12605 (rtx_vec_t): Likewise.
12606 (struct sched_deps_info_def): Strengthen param of "start_insn"
12607 callback from rtx to rtx_insn *. Likewise for param "insn2" of
12608 "note_mem_dep" callback and first param of "note_dep" callback.
12610 * haifa-sched.c (add_to_speculative_block): Strengthen param
12611 "insn" from rtx to rtx_insn *.
12612 (clear_priorities): Likewise.
12613 (calc_priorities): Likewise for local "insn".
12615 * sched-deps.c (haifa_start_insn): Likewise for param "insn".
12616 Remove redundant checked cast.
12617 (haifa_note_mem_dep): Likewise for param "pending_insn".
12618 (haifa_note_dep): Likewise for param "elem".
12619 (note_mem_dep): Likewise for param "e".
12620 (sched_analyze_1): Add checked casts.
12621 (sched_analyze_2): Likewise.
12623 * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
12624 from rtx to rtx_insn *.
12625 (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
12626 from vec<rtx> * to vec<rtx_insn *> *.
12628 * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
12630 (flist_add): Strengthen param "executing_insns" from
12631 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
12632 (advance_deps_context): Remove now-redundant checked cast.
12633 (init_fences): Replace uses of NULL_RTX with NULL.
12634 (merge_fences): Strengthen params "last_scheduled_insn" and
12635 "sched_next" from rtx to rtx_insn * and "executing_insns" from
12636 vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
12637 (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
12638 (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
12639 an instruction, rather than doing double-duty as a pattern.
12640 (return_nop_to_pool): Update for change of insn_t.
12641 (deps_init_id): Remove now-redundant checked cast.
12642 (struct sched_scan_info_def): Strengthen param of "init_insn"
12643 callback from rtx to insn_t.
12644 (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
12645 (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
12647 (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
12648 "end" from rtx to rtx_insn *.
12649 (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
12650 (rtx insn_rtx, bool force_unique_p)
12651 (BND_TO): Delete function.
12652 (SET_BND_TO): Delete function.
12654 * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
12656 (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
12657 (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
12659 (undo_transformations): Likewise for param "insn".
12660 (update_liveness_on_insn): Likewise.
12661 (compute_live_below_insn): Likewise for param "insn" and local
12663 (update_data_sets): Likewise for param "insn".
12664 (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
12665 (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
12666 (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
12668 (move_cond_jump): Likewise for param "insn".
12669 (move_cond_jump): Drop use of SET_BND_TO.
12670 (compute_av_set_on_boundaries): Likewise.
12671 (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
12672 (update_and_record_unavailable_insns): Strengthen local "bb_end"
12673 from rtx to rtx_insn *.
12674 (maybe_emit_renaming_copy): Likewise for param "insn".
12675 (maybe_emit_speculative_check): Likewise.
12676 (handle_emitting_transformations): Likewise.
12677 (remove_insn_from_stream): Likewise.
12678 (code_motion_process_successors): Strengthen local "succ" from rtx
12681 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12683 * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
12684 ilist_t, not _xlist_t;
12685 (ILIST_INSN): Define in terms of new union field "insn".
12686 (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
12688 (struct _list_node): Add new field "insn" to the union, of type
12690 (ilist_add): Replace macro with an inline function, requiring an
12692 (ilist_remove): Define this macro directly in terms of
12693 _list_remove, rather than indirectly via _xlist_remove.
12694 (ilist_clear): Likewise, in terms of _list_clear rather than
12696 (ilist_is_in_p): Replace macro with an inline function, requiring
12698 (_list_iter_cond_insn): New function.
12699 (ilist_iter_remove): Define this macro directly in terms of
12700 _list_iter_remove, rather than indirectly via _xlist_iter_remove.
12701 (ilist_iterator): Define directly in terms of _list_iterator
12702 rather than indirectly through _xlist_iterator.
12703 (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
12704 than in terms of _FOR_EACH_X.
12705 (FOR_EACH_INSN_1): Likewise.
12707 2014-08-26 Joseph Myers <joseph@codesourcery.com>
12711 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
12712 DECL_HARD_REGISTER and return for invalid register specifications.
12713 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
12714 DECL_HARD_REGISTER, call expand_one_error_var.
12715 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
12716 CC_REGNUM with non-MODE_CC modes.
12717 (arm_regno_class): Return NO_REGS for PC_REGNUM.
12719 2014-08-26 Marek Polacek <polacek@redhat.com>
12722 * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
12724 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
12726 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
12727 qi cost; add di cost.
12728 (cortexa57_addrcost_table): Likewise.
12730 2014-08-26 Marek Polacek <polacek@redhat.com>
12733 * expr.c (is_aligning_offset): Remove logical not.
12735 2014-08-26 Marek Polacek <polacek@redhat.com>
12738 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
12739 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
12741 2014-08-26 Richard Biener <rguenther@suse.de>
12743 PR tree-optimization/62175
12744 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
12745 expand possibly trapping operations.
12747 2014-08-26 David Malcolm <dmalcolm@redhat.com>
12749 * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
12750 "insn" from rtx to rtx_insn *.
12751 (permute_load): Likewise for param "insn".
12752 (permute_store): Likewise.
12753 (handle_special_swappables): Likewise for local "insn".
12754 (replace_swap_with_copy): Likewise for locals "insn" and
12756 (rs6000_analyze_swaps): Likewise for local "insn".
12758 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12760 * regrename.h (struct du_chain): Strengthen field "insn" from rtx
12763 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12765 * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
12766 "note_list" from rtx to rtx_insn *.
12767 (BB_NOTE_LIST): Replace this function and...
12768 (SET_BB_NOTE_LIST): ...this function with...
12769 (BB_NOTE_LIST): ...the former macro implementation.
12771 * sched-int.h (concat_note_lists): Strengthen param "from_end" and
12772 local "from_start" from rtx to rtx_insn *. Strengthen param
12773 "to_endp" from rtx * to rtx_insn **.
12775 * haifa-sched.c (concat_note_lists): Likewise.
12776 * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
12778 (sel_restore_notes): Likewise.
12779 (move_bb_info): Likewise.
12780 (BB_NOTE_LIST): Delete this function.
12781 (SET_BB_NOTE_LIST): Delete this function.
12782 * sel-sched.c (create_block_for_bookkeeping): Eliminate
12783 SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
12785 2014-08-25 David Malcolm <dmalcolm@redhat.com>
12787 * target.def (reorder): Strengthen param "ready" of this DEFHOOK
12788 from rtx * to rtx_insn **.
12789 (reorder2): Likewise.
12790 (dependencies_evaluation_hook): Strengthen params "head", "tail"
12791 from rtx to rtx_insn *.
12793 * doc/tm.texi: Update mechanically for above change to target.def.
12795 * sched-int.h (note_list): Strengthen this variable from rtx to
12797 (remove_notes): Likewise for both params.
12798 (restore_other_notes): Likewise for return type and first param.
12799 (struct ready_list): Strengthen field "vec" from rtx * to
12801 (struct dep_replacement): Strenghten field "insn" from rtx to
12803 (struct deps_desc): Likewise for fields "last_debug_insn",
12805 (struct haifa_sched_info): Likewise for callback field
12806 "can_schedule_ready_p"'s param, for first param of "new_ready"
12807 callback field, for both params of "rank" callback field, for
12808 first field of "print_insn" callback field (with a const), for
12809 both params of "contributes_to_priority" callback, for param
12810 of "insn_finishes_block_p" callback, for fields "prev_head",
12811 "next_tail", "head", "tail", for first param of "add_remove_insn"
12812 callback, for first param of "begin_schedule_ready" callback, for
12813 both params of "begin_move_insn" callback, and for second param
12814 of "advance_target_bb" callback.
12815 (add_dependence): Likewise for params 1 and 2.
12816 (sched_analyze): Likewise for params 2 and 3.
12817 (deps_analyze_insn): Likewise for param 2.
12818 (ready_element): Likewise for return type.
12819 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
12820 (try_ready): Strenghten param from rtx to rtx_insn *.
12821 (sched_emit_insn): Likewise for return type.
12822 (record_delay_slot_pair): Likewise for params 1 and 2.
12823 (add_delay_dependencies): Likewise for param.
12824 (contributes_to_priority): Likewise for both params.
12825 (find_modifiable_mems): Likewise.
12827 * config/arm/arm.c (cortexa7_sched_reorder): Strengthen param
12828 "ready" from rtx * to rtx_insn **. Strengthen locals "insn",
12829 "first_older_only_insn" from rtx to rtx_insn *.
12830 (arm_sched_reorder): Strengthen param "ready" from rtx * to
12833 * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
12834 "last_scheduled_iter0" from rtx to rtx_insn *.
12835 (init_sched_state): Replace use of NULL_RTX with NULL for insn.
12836 (c6x_sched_reorder_1): Strengthen param "ready" and locals
12837 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
12838 "insn" from rtx to rtx_insn *.
12839 (c6x_sched_reorder): Strengthen param "ready" from rtx * to
12841 (c6x_sched_reorder2): Strengthen param "ready" and locals
12842 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
12843 "insn" from rtx to rtx_insn *.
12844 (c6x_variable_issue): Add a checked cast when assigning from insn
12845 to ss.last_scheduled_iter0.
12846 (split_delayed_branch): Strengthen param "insn" and local "i1"
12847 from rtx to rtx_insn *.
12848 (split_delayed_nonbranch): Likewise.
12849 (undo_split_delayed_nonbranch): Likewise for local "insn".
12850 (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
12851 "entry_after", "end_packet", "head_insn", "tail_insn",
12852 "new_insns", "last_insn", "this_iter", "prev_stage_insn".
12853 Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
12854 to rtx_insn **. Remove now-redundant checked cast on last_insn,
12855 but add a checked cast on loop->start_label. Consolidate calls to
12856 avoid assigning result of gen_spkernel to "insn", now an
12859 * config/i386/i386.c (do_reorder_for_imul): Strengthen param
12860 "ready" from rtx * to rtx_insn **. Strengthen local "insn" from
12862 (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
12863 rtx_insn **. Strengthen locals "top", "next" from rtx to
12865 (ix86_sched_reorder): Strengthen param "ready" from rtx * to
12866 rtx_insn **. Strengthen local "insn" from rtx to rtx_insn *.
12867 (add_parameter_dependencies): Strengthen params "call", "head" and
12868 locals "insn", "last", "first_arg" from rtx to rtx_insn *.
12869 (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
12870 (add_dependee_for_func_arg): Likewise for param "arg" and local
12872 (ix86_dependencies_evaluation_hook): Likewise for params "head",
12873 "tail" and locals "insn", "first_arg".
12875 * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
12876 for params "head", "tail" and locals "insn", "next", "next_tail".
12877 (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
12878 "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
12879 "insn", "lowest", "highest" from rtx to rtx_insn *.
12880 (ia64_sched_reorder): Strengthen param "ready" from rtx * to
12882 (ia64_sched_reorder2): Likewise.
12884 * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
12885 and local "insn" from rtx to rtx_insn *. Strengthen param "ready"
12886 from rtx * to rtx_insn **.
12887 (mep_move_ready_insn): Strengthen param "ready" from rtx * to
12889 (mep_print_sched_insn): Strengthen param "insn" from rtx to
12891 (mep_sched_reorder): Strengthen param "ready" from rtx * to
12892 rtx_insn **. Strengthen locals "core_insn", "cop_insn" from rtx
12895 * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
12896 from rtx * to rtx_insn **. Strengthen local "new_head" from rtx
12898 (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
12899 rtx_insn **. Strengthen local "temp" from rtx to rtx_insn *.
12900 (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
12902 (vr4130_reorder): Likewise.
12903 (mips_74k_agen_reorder): Likewise. Strengthen local "insn" from
12905 (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
12907 (mips_sched_reorder): Likewise.
12908 (mips_sched_reorder2): Likewise.
12910 * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
12912 * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
12913 Strengthen local "tmp" from rtx to rtx_insn *.
12914 (rs6000_sched_reorder2): Likewise.
12916 * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
12917 Likewise. Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
12918 (s390_sched_reorder): Strengthen param "ready" from rtx * to
12919 rtx_insn **. Strengthen local "tmp" from rtx to rtx_insn *.
12921 * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
12922 "tmp2" from rtx to rtx_insn *.
12923 (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
12924 Strengthen local "insn" from rtx to rtx_insn *.
12925 (ready_reorder): Strengthen param "ready" from rtx * to
12926 rtx_insn **. Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
12927 (sh_reorder): Strengthen param "ready" from rtx * to rtx_insn **.
12928 (sh_reorder2): Likewise.
12930 * config/spu/spu.c (spu_sched_reorder): Likewise. Strengthen
12931 local "insn" from rtx to rtx_insn *.
12933 * haifa-sched.c (note_list): Strengthen this variable from rtx to
12935 (scheduled_insns): Strengthen this variable from vec<rtx> to
12937 (set_modulo_params): Likewise for locals "i1", "i2".
12938 (record_delay_slot_pair): Likewise for params "i1", "i2".
12939 (add_delay_dependencies): Likewise for param "insn".
12940 (cond_clobbered_p): Likewise.
12941 (recompute_todo_spec): Likewise for local "prev".
12942 (last_scheduled_insn): Likewise for this variable.
12943 (nonscheduled_insns_begin): Likewise.
12944 (model_set_excess_costs): Strengthen param "insns" from rtx * to
12946 (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
12948 (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
12949 Strengthen local "insn" from rtx to rtx_insn *.
12950 (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
12951 (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
12952 (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
12953 (ready_remove_first): Likewise for return type and local "t".
12954 (ready_element): Likewise for return type.
12955 (ready_remove): Likewise for return type and local "t".
12956 (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
12957 (check_clobbered_conditions): Strengthen local "x" from rtx to
12958 rtx_insn *, adding a checked cast.
12959 (schedule_insn): Likewise for param "insn".
12960 (remove_notes): Likewise for params "head", "tail" and locals
12961 "next_tail", "insn", "next".
12962 (struct haifa_saved_data): Likewise for fields
12963 "last_scheduled_insn", "nonscheduled_insns_begin".
12964 (save_backtrack_point): Update for change to field "vec" of
12966 (toggle_cancelled_flags): Strengthen local "first" from rtx * to
12968 (restore_last_backtrack_point): Likewise. Strengthen local "insn"
12969 from rtx to rtx_insn *
12970 (resolve_dependencies): Strengthen param "insn" from rtx to
12972 (restore_other_notes): Likewise for return type, for param "head"
12973 and local "note_head".
12974 (undo_all_replacements): Likewise for local "insn".
12975 (first_nonscheduled_insn): Likewise for return type and local "insn".
12976 (queue_to_ready): Likewise for local "insn", adding checked casts.
12977 (early_queue_to_ready): Likewise for local "insn".
12978 (debug_ready_list_1): Strengthen local "p" from rtx * to
12980 (move_insn): Strengthen param "insn" and local "note" from rtx to
12982 (insn_finishes_cycle_p): Likewise for param "insn".
12983 (max_issue): Likewise for local "insn".
12984 (choose_ready): Likewise. Strengthen param "insn_ptr" from rtx *
12986 (commit_schedule): Strengthen param "prev_head" and local "insn"
12987 from rtx to rtx_insn *
12988 (prune_ready_list): Likewise for local "insn".
12989 (schedule_block): Likewise for locals "prev_head", "head", "tail",
12990 "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
12991 (set_priorities): Likewise for local "prev_head".
12992 (try_ready): Likewise for param "next".
12993 (fix_tick_ready): Likewise.
12994 (change_queue_index): Likewise.
12995 (sched_extend_ready_list): Update for change to field "vec" of
12997 (generate_recovery_code): Strengthen param "insn" from rtx to
12999 (begin_speculative_block): Likewise.
13000 (create_check_block_twin): Likewise for param "insn" and locals
13001 "label", "check", "twin". Introduce local "check_pat" to avoid
13002 "check" being used as a plain rtx before being used as an insn.
13003 (fix_recovery_deps): Add a checked cast to rtx_insn * when
13004 extracting elements from ready_list.
13005 (sched_remove_insn): Strengthen param "insn" from rtx to
13007 (sched_emit_insn): Likewise for return type.
13008 (ready_remove_first_dispatch): Likewise for return type and local
13011 * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
13013 * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
13016 * sched-deps.c (add_dependence): Strengthen params "con", "pro"
13017 from rtx to rtx_insn *.
13018 (add_dependence_list): Likewise for param "insn". Add a checked
13020 (add_dependence_list_and_free): Strengthen param "insn" from rtx
13021 to rtx_insn *. Strengthen param "list_p" from rtx * to
13023 (chain_to_prev_insn): Strengthen param "insn" and locals
13024 "prec_nonnote", "i" from rtx to rtx_insn *.
13025 (flush_pending_lists): Likewise for param "insn".
13026 (cur_insn): Likewise for this variable.
13027 (haifa_start_insn): Add a checked cast.
13028 (note_dep): Strengthen param "e" from rtx to rtx_insn *.
13029 (sched_analyze_reg): Likewise for param "insn".
13030 (sched_analyze_1): Likewise.
13031 (sched_analyze_2): Likewise. Add checked casts.
13032 (sched_analyze_insn): Likewise. Also for local "prev".
13033 (deps_analyze_insn): Likewise for param "insn".
13034 (sched_analyze): Likewise for params "head", "tail" and local "insn".
13035 (add_dependence_1): Likewise for params "insn", "elem".
13036 (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
13037 (parse_add_or_inc): Likewise for param "insn".
13038 (find_inc): Likewise for local "inc_cand".
13039 (find_modifiable_mems): Likewise for params "head", "tail" and
13040 locals "insn", "next_tail".
13042 * sched-ebb.c (init_ready_list): Likewise for local "insn".
13043 (begin_schedule_ready): Likewise for param "insn".
13044 (begin_move_insn): Likewise for params "insn" and "last".
13045 (ebb_print_insn): Strengthen param "insn" from const_rtx to
13047 (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
13048 (ebb_contributes_to_priority): Likewise for params "next", "insn".
13049 (ebb_add_remove_insn): Likewise for param "insn".
13050 (advance_target_bb): Likewise.
13052 * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
13054 (check_live): Likewise for param "insn".
13055 (init_ready_list): Likewise for local "insn".
13056 (can_schedule_ready_p): Likewise for param "insn".
13057 (begin_schedule_ready): Likewise.
13058 (new_ready): Likewise for param "next".
13059 (rgn_print_insn): Likewise for param "insn".
13060 (rgn_rank): Likewise for params "insn1", "insn2".
13061 (contributes_to_priority): Likewise for params "next", "insn".
13062 (rgn_insn_finishes_block_p): Likewise for param "insn".
13063 (add_branch_dependences): Likewise for params "head", "tail" and
13064 locals "insn", "last".
13065 (rgn_add_remove_insn): Likewise for param "insn".
13066 (advance_target_bb): Likewise.
13068 * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
13069 const_rtx to const rtx_insn *.
13071 * sel-sched-dump.h (sel_print_insn): Likewise.
13073 * sel-sched-ir.c (advance_deps_context): Add a checked cast.
13074 (deps_init_id): Likewise.
13076 * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
13077 (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
13080 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13082 * output.h (final_start_function): Strengthen param 1 from rtx to
13085 * final.c (final_start_function): Likewise, renaming back from
13086 "uncast_first" to "first", and dropping the checked cast from rtx
13089 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13091 * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
13092 * final.c (final): Likewise. Rename param back from
13093 "uncast_first" to "first" and eliminate the checked cast from rtx
13096 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13098 * output.h (shorten_branches): Strengthen param from rtx to
13101 * final.c (shorten_branches): Likewise, renaming param back from
13102 "uncast_first" to "first", and dropping the checked cast from rtx
13105 * genattr.c (gen_attr): Likewise when writing out the prototype of
13108 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13110 * sched-int.h (struct haifa_sched_info): Strengthen fields
13111 "prev_head" and "next_tail" from rtx to rtx_insn *.
13113 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13115 * rtl.h (rtx_jump_table_data::get_labels): New method.
13116 * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
13117 with use of the new rtx_jump_table_data::get_labels method.
13118 (purge_dead_tablejump_edges): Strengthen param "table" from rtx
13119 to rtx_jump_table_data *. Simplify by using get_labels method.
13120 * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
13121 a dyn_cast, introducing local "table", using it to replace
13122 label-lookup logic with a get_labels method call.
13123 (patch_jump_insn): Simplify using get_labels method.
13124 * dwarf2cfi.c (create_trace_edges): Likewise.
13125 * rtlanal.c (label_is_jump_target_p): Likewise.
13127 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13129 * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
13132 * emit-rtl.c (unshare_all_rtl_1): Likewise.
13133 (unshare_all_rtl_again): Likewise, also for local "p".
13135 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13137 * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
13139 * cfgrtl.c (delete_insn_and_edges): Likewise.
13141 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13143 * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
13144 from rtx to rtx_insn *.
13146 * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
13148 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13150 * function.c (thread_prologue_and_epilogue_insns): Likewise for
13151 locals "returnjump", "epilogue_end", "insn", "next".
13153 * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
13154 "returnjump" from rtx * to rtx_insn **.
13155 * shrink-wrap.c (get_unconverted_simple_return): Likewise.
13157 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13159 * basic-block.h (struct edge_def). Strengthen "r" within
13160 union edge_def_insns from rtx to rtx_insn *.
13162 * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
13163 from rtx to rtx_insn *. Strengthen local "insns" from rtx to
13165 * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
13166 from rtx to rtx_insn *.
13167 * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
13169 * postreload-gcse.c (reg_killed_on_edge): Likewise.
13170 (reg_used_on_edge): Likewise.
13171 * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
13172 (gt_pch_nx): New overload for rtx_insn *&.
13173 * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
13174 from rtx to rtx_insn *.
13176 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13178 * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
13179 from rtx to rtx_insn *.
13180 (BB_FOOTER): Replace function with access macro.
13181 (SET_BB_FOOTER): Delete.
13183 * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
13185 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
13186 (emit_barrier_after_bb): Likewise.
13187 (record_effective_endpoints): Likewise.
13188 (relink_block_chain): Likewise.
13189 (fixup_fallthru_exit_predecessor): Likewise.
13190 (cfg_layout_duplicate_bb): Likewise.
13191 (cfg_layout_split_block): Likewise.
13192 (cfg_layout_delete_block): Likewise.
13193 (cfg_layout_merge_blocks): Likewise.
13194 (BB_FOOTER): Delete function.
13195 (SET_BB_FOOTER): Delete function.
13196 * combine.c (update_cfg_for_uncondjump): Replace uses of
13197 SET_BB_FOOTER with BB_FOOTER.
13199 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13201 * except.h (struct eh_landing_pad_d): Strengthen field
13202 "landing_pad" from rtx to rtx_code_label *.
13204 * except.c (sjlj_emit_dispatch_table): Likewise for param
13206 (sjlj_build_landing_pads): Likewise for local "dispatch_label".
13208 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13210 * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
13211 first param from rtx to rtx_insn *.
13212 * config/xtensa/xtensa.c (struct machine_function): Likewise for
13213 field "set_frame_ptr_insn".
13214 (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
13215 "csend" from rtx to rtx_code_label *.
13216 (xtensa_expand_atomic): Likewise for local "csloop".
13217 (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
13219 (xtensa_call_tls_desc): Likewise for return type and locals
13220 "call_insn", "insns".
13221 (xtensa_legitimize_tls_address): Likewise for local "insns".
13222 (xtensa_expand_prologue): Likewise for locals "insn", "first".
13224 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13226 * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
13227 first param from rtx to rtx_insn *.
13228 * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
13231 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13233 * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
13234 Strengthen param 1 from rtx to rtx_insn *.
13235 (tilepro_output_cbranch): Likewise.
13236 (tilepro_adjust_insn_length): Likewise.
13237 (tilepro_final_prescan_insn): Likewise for sole param.
13239 * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
13240 Likewise for local "last".
13241 (cbranch_predicted_p): Likewise for param "insn".
13242 (tilepro_output_simple_cbranch_with_opcode): Likewise.
13243 (tilepro_output_cbranch_with_opcode): Likewise.
13244 (tilepro_output_cbranch): Likewise.
13245 (frame_emit_load): Likewise for return type and locals "seq",
13247 (emit_sp_adjust): Likewise for return type and local "insn".
13248 (tilepro_expand_epilogue): Likewise for locals "last_insn",
13250 (tilepro_adjust_insn_length): Likewise for param "insn".
13251 (next_insn_to_bundle): Likewise for return type and params
13253 (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
13254 (replace_pc_relative_symbol_ref): Likewise for param "insn" and
13256 (match_addli_pcrel): Likewise for param "insn".
13257 (replace_addli_pcrel): Likewise.
13258 (match_auli_pcrel): Likewise.
13259 (replace_auli_pcrel): Likewise.
13260 (tilepro_fixup_pcrel_references): Likewise for locals "insn",
13262 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
13263 "queue", "next_queue", "prev".
13264 (tilepro_asm_output_mi_thunk): Likewise for local "insn".
13265 (tilepro_final_prescan_insn): Likewise for param "insn".
13267 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13269 * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
13270 Strengthen param 1 from rtx to rtx_insn *.
13271 (tilegx_output_cbranch): Likewise.
13272 (tilegx_adjust_insn_length): Likewise.
13273 (tilegx_final_prescan_insn): Likewise for sole param.
13275 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
13277 (cbranch_predicted_p): Likewise for param "insn".
13278 (tilegx_output_simple_cbranch_with_opcode): Likewise.
13279 (tilegx_output_cbranch_with_opcode): Likewise.
13280 (tilegx_output_cbranch): Likewise.
13281 (frame_emit_load): Likewise for return type.
13282 (set_frame_related_p): Likewise for locals "seq", "insn".
13283 (emit_sp_adjust): Likewise for return type, and for local "insn".
13284 Introduce local "pat" for use in place of "insn" where the latter
13285 isn't an instruction.
13286 (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
13287 from rtx to rtx_insn *.
13288 (tilegx_adjust_insn_length): Likewise for param "insn".
13289 (next_insn_to_bundle): Likewise for return type and params "r" and
13291 (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
13293 (replace_insns): Likewise for params "old_insn", "new_insns".
13294 (replace_mov_pcrel_step1): Likewise for param "insn" and local
13296 (replace_mov_pcrel_step2): Likewise.
13297 (replace_mov_pcrel_step3): Likewise.
13298 (tilegx_fixup_pcrel_references): Likewise for locals "insn",
13300 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
13301 "queue", "next_queue", "prev".
13302 (tilegx_output_mi_thunk): Likewise for local "insn".
13303 (tilegx_final_prescan_insn): Likewise for param "insn".
13305 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13307 * config/spu/spu.c (frame_emit_store): Strengthen return type from
13309 (frame_emit_load): Likewise.
13310 (frame_emit_add_imm): Likewise, also for local "insn".
13311 (spu_expand_prologue): Likewise for local "insn".
13312 (struct spu_bb_info): Likewise for field "prop_jump".
13313 (emit_nop_for_insn): Likewise for param "insn" and local
13315 (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
13317 (spu_emit_branch_hint): Likewise for params "before", "branch" and
13318 locals "hint", "insn".
13319 (get_branch_target): Likewise for param "branch".
13320 (insn_clobbers_hbr): Likewise for param "insn".
13321 (insert_hbrp_for_ilb_runout): Likewise for param "first" and
13322 locals "insn", "before_4", "before_16".
13323 (insert_hbrp): Likewise for local "insn".
13324 (spu_machine_dependent_reorg): Likewise for locals "branch",
13325 "insn", "next", "bbend".
13326 (uses_ls_unit): Likewise for param "insn".
13327 (get_pipe): Likewise.
13328 (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
13329 introducing a checked cast.
13330 (spu_sched_adjust_cost): Likewise for params "insn" and
13332 (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
13333 (spu_sms_res_mii): Likewise.
13335 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13337 * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
13338 from rtx to rtx_insn *.
13339 (output_cbranch): Likewise for param 6.
13340 (output_return): Likewise for param 1.
13341 (output_sibcall): Likewise.
13342 (output_v8plus_shift): Likewise.
13343 (output_v8plus_mult): Likewise.
13344 (output_v9branch): Likewise for param 7.
13345 (output_cbcond): Likewise for param 3.
13347 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
13349 (sparc_legitimize_pic_address): Likewise.
13350 (sparc_emit_call_insn): Likewise.
13351 (emit_save_or_restore_regs): Likewise.
13352 (emit_window_save): Likewise for return type and local "insn".
13353 (sparc_expand_prologue): Likewise for local "insn".
13354 (sparc_flat_expand_prologue): Likewise.
13355 (output_return): Likewise for param "insn".
13356 (output_sibcall): Likewise for param "insn" and local "delay".
13357 (output_ubranch): Likewise for param "insn".
13358 (output_cbranch): Likewise.
13359 (output_cbcond): Likewise.
13360 (output_v9branch): Likewise.
13361 (output_v8plus_shift): Likewise.
13362 (sparc_output_mi_thunk): Likewise for local "insn".
13363 (get_some_local_dynamic_name): Likewise.
13364 (output_v8plus_mult): Likewise for param "insn".
13366 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13368 * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
13369 from rtx to rtx_insn *.
13370 (output_branchy_insn): Likewise for param 3.
13371 (output_far_jump): Likewise for param 1.
13372 (final_prescan_insn): Likewise.
13373 (sh_insn_length_adjustment): Likewise for sole param.
13375 * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
13376 (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
13378 (sh_emit_compare_and_set): Likewise for local "lab".
13379 (output_far_jump): Strengthen param "insn" and local "prev" from
13381 (output_branchy_insn): Likewise for param "insn" and local
13383 (output_ieee_ccmpeq): Likewise for param "insn".
13384 (struct label_ref_list_d): Strengthen field "label" from rtx to
13386 (pool_node): Likewise.
13387 (pool_window_label): Likewise for this global.
13388 (add_constant): Likewise for return type and locals "lab", "new_rtx".
13389 (dump_table): Strengthen params "start", "barrier" and local
13390 "scan" from rtx to rtx_insn *.
13391 (broken_move): Likewise for param "insn".
13392 (untangle_mova): Likewise for params "first_mova" and "new_mova".
13393 Strengthen param "first_mova" from rtx * to rtx_insn **.
13394 (mova_p): Likewise for param "insn".
13395 (fixup_mova): Likewise for param "mova".
13396 (find_barrier): Likewise for return type, params "mova" and
13397 "from", and locals "barrier_before_mova", "found_barrier",
13398 "good_barrier", "orig", "last_symoff", "next". Strengthen local
13399 "label" from rtx to rtx_code_label *.
13400 (sh_loop_align): Strengthen locals "first", "insn", "mova" from
13402 (sh_reorg): Likewise for locals "link", "scan", "barrier".
13403 (split_branches): Likewise for param "first" and local "insn".
13404 (final_prescan_insn): Likewise for param "insn".
13405 (sequence_insn_p): Likewise for locals "prev", "next".
13406 (sh_insn_length_adjustment): Likewise for param "insn".
13407 (sh_can_redirect_branch): Likewise for local "insn".
13408 (find_r0_life_regions): Likewise for locals "end", "insn".
13409 (sh_output_mi_thunk): Likewise for local "insns".
13411 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13413 * config/score/score.c (score_output_mi_thunk): Strengthen local
13414 "insn" from rtx to rtx_insn *.
13415 (score_prologue): Likewise.
13417 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13419 * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
13420 1 from rtx to rtx_insn *.
13421 (s390_emit_jump): Likewise for return type.
13422 (s390_emit_call): Likewise.
13423 (s390_load_got): Likewise.
13425 * config/s390/s390.c (last_scheduled_insn): Likewise for this
13427 (s390_match_ccmode): Likewise for param "insn".
13428 (s390_emit_jump): Likewise for return type.
13429 (s390_split_branches): Likewise for local "label".
13430 (struct constant): Strengthen field "label" from rtx to
13432 (struct constant_pool): Likewise for field "label". Strengthen
13433 fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
13435 (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
13437 (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
13438 (s390_end_pool): Likewise.
13439 (s390_dump_pool): Likewise for local "insn".
13440 (s390_mainpool_start): Likewise.
13441 (s390_chunkify_start): Likewise.
13442 (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
13443 with insns. Strengthen locals "label", "jump", "barrier", "next",
13444 "prev", "vec_insn", "insn" from rtx to rtx_insn *.
13445 (s390_chunkify_finish): Strengthen local "insn" from rtx to
13447 (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
13448 "jump", "label", "next_insn".
13449 (s390_regs_ever_clobbered): Likewise for local "cur_insn".
13450 (s390_optimize_nonescaping_tx): Likewise for locals "insn",
13452 (s390_load_got): Likewise for return type and local "insns".
13453 (s390_save_gprs_to_fprs): Likewise for local "insn".
13454 (s390_restore_gprs_from_fprs): Likewise.
13455 (pass_s390_early_mach::execute): Likewise.
13456 (s390_emit_prologue): Likewise for local "insns".
13457 (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
13459 (s390_emit_call): Strengthen return type and local "insn" from
13461 (s390_emit_tpf_eh_return): Likewise for local "insn".
13462 (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
13463 "next_insn", introducing locals "s_pat", "rpat" to allow this.
13464 (s390_fix_long_loop_prediction): Likewise for param "insn" and
13466 (s390_non_addr_reg_read_p): Likewise for param "insn".
13467 (find_cond_jump): Likewise for return type and param "insn".
13468 (s390_swap_cmp): Likewise for param "insn".
13469 (s390_z10_optimize_cmp): Likewise for param "insn" and locals
13470 "prev_insn", "next_insn".
13471 (s390_reorg): Likewise for locals "insn", "target".
13472 (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
13473 (s390_sched_variable_issue): For now, rename param "insn" to
13474 "uncast_insn", introducing a checked cast.
13475 (s390_sched_init): Replace NULL_RTX with NULL when dealing with
13477 (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
13478 rtx_insn *. Use for_each_rtx_in_insn rather than for_each_rtx.
13480 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13482 * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
13483 param from rtx to rtx_insn *.
13484 * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
13486 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13488 * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
13489 4 from rtx to rtx_insn *.
13490 (rs6000_final_prescan_insn): Likewise for first param.
13491 * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
13493 (rs6000_get_some_local_dynamic_name): Likewise.
13494 (output_cbranch): Likewise for param "insn".
13495 (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
13496 (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
13497 (rs6000_emit_allocate_stack): Likewise for local "insn".
13498 (load_cr_save): Likewise.
13499 (restore_saved_cr): Likewise.
13500 (restore_saved_lr): Likewise.
13501 (emit_cfa_restores): Likewise.
13502 (rs6000_output_function_epilogue): Likewise for locals "insn" and
13503 "deleted_debug_label".
13504 (rs6000_output_mi_thunk): Likewise for local "insn".
13505 (rs6000_final_prescan_insn): Likewise for param "insn".
13507 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13509 * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
13510 Strengthen param "insn" from rtx to rtx_insn *.
13511 * config/picochip/picochip.c (picochip_current_prescan_insn):
13512 Likewise for this variable.
13513 (picochip_final_prescan_insn): Likewise for param "insn".
13515 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13517 * config/pa/pa-protos.h (pa_output_call): Strengthen first param
13518 from rtx to rtx_insn *.
13519 (pa_output_indirect_call): Likewise.
13520 (pa_adjust_insn_length): Likewise.
13521 (pa_attr_length_millicode_call): Likewise.
13522 (pa_attr_length_call): Likewise.
13523 (pa_attr_length_indirect_call): Likewise.
13525 * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
13527 (pa_attr_length_millicode_call): Likewise.
13528 (pa_attr_length_call): Likewise.
13529 (pa_output_call): Likewise.
13530 (pa_attr_length_indirect_call): Likewise.
13531 (pa_output_indirect_call): Likewise.
13533 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13535 * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
13536 Strengthen first param from rtx to rtx_insn *.
13537 * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
13540 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13542 * config/mips/mips-protos.h (mips_emit_move): Strengthen return
13543 type from rtx to rtx_insn *.
13544 (mips_expand_call): Likewise.
13545 (mips_adjust_insn_length): Likewise for first param.
13546 (mips_output_conditional_branch): Likewise.
13547 (mips_output_order_conditional_branch): Likewise.
13548 (mips_final_prescan_insn): Likewise.
13550 * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
13551 rtx_insn * for the SEQUENCE case.
13552 (SEQ_END): Likewise.
13553 (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
13554 (mips_emit_call_insn): Likewise, also for local "insn".
13555 (mips16_gp_pseudo_reg): Likewise for local "scan".
13556 (mips16_build_call_stub): Likewise for return type and for local
13557 "insn". Introduce a new local "pattern" so that "insn" can indeed
13559 (mips_expand_call): Strengthen return type and local "insn" from
13561 (mips_block_move_loop): Strengthen local "label" from rtx to
13563 (mips_expand_synci_loop): Likewise for locals "label",
13565 (mips_set_frame_expr): Strengthen local "insn" from rtx to
13567 (mips16e_collect_argument_saves): Likewise for locals "insn",
13569 (mips_find_gp_ref): Likewise for param of callback for "pred"
13570 param, and for local "insn".
13571 (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
13572 (mips_insn_has_flexible_gp_ref_p): Likewise.
13573 (mips_epilogue_emit_cfa_restores): Likewise for return type and
13575 (mips_epilogue_set_cfa): Likewise for local "insn".
13576 (mips_expand_epilogue): Likewise.
13577 (mips_adjust_insn_length): Likewise for param "insn".
13578 (mips_output_conditional_branch): Likewise.
13579 (mips_output_order_conditional_branch): Likewise.
13580 (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
13581 "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
13582 "falu2_turn_enabled_insn".
13583 (mips_builtin_branch_and_move): Strengthen locals "true_label",
13584 "done_label" from rtx to rtx_code_label *.
13585 (struct mips16_constant): Likewise for field "label".
13586 (mips16_add_constant): Likewise for return type.
13587 (mips16_emit_constants_1): Strengthen return type and param "insn"
13588 from rtx to rtx_insn *.
13589 (mips16_emit_constants): Likewise for param "insn".
13590 (mips16_insn_length): Likewise.
13591 (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
13592 to rtx_code_label *.
13593 (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
13594 from rtx to rtx_insn *.
13595 (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
13596 "jump". Strengthen local "label" from rtx to rtx_code_label *.
13597 (r10k_simplify_address): Strengthen param "insn" and local
13598 "def_insn" from rtx to rtx_insn *.
13599 (r10k_safe_address_p): Strengthen param "insn" from rtx to
13601 (r10k_needs_protection_p_1): Update target type of cast of data
13602 from to rtx to rtx_insn *.
13603 (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
13604 rtx * to rtx_insn **.
13605 (r10k_needs_protection_p): Strengthen param "insn" from rtx to
13607 (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
13608 (mips_call_expr_from_insn): Likewise for param "insn".
13609 (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
13610 (mips_find_pic_call_symbol): Likewise for param "insn".
13611 (mips_annotate_pic_calls): Likewise for local "insn".
13612 (mips_sim_insn): Likewise for this variable.
13613 (struct mips_sim): Likewise for field "insn" within elements of
13615 (mips_sim_wait_reg): Likewise for param "insn".
13616 (mips_sim_wait_regs): Likewise.
13617 (mips_sim_wait_units): Likewise.
13618 (mips_sim_wait_insn): Likewise.
13619 (mips_sim_issue_insn): Likewise.
13620 (mips_sim_finish_insn): Likewise.
13621 (mips_seq_time): Likewise for param "seq" and local "insn".
13622 (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
13623 locals "first", "second".
13624 (vr4130_align_insns): Likewise for locals "insn", "subinsn",
13625 "last", "last2", "next".
13626 (mips_avoid_hazard): Likewise for params "after", "insn".
13627 (mips_reorg_process_insns): Likewise for locals "insn",
13628 "last_insn", "subinsn", "next_insn".
13629 (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
13630 (mips16_split_long_branches): Likewise for locals "insn" "jump",
13632 (mips_output_mi_thunk): Likewise for local "insn".
13633 (mips_final_prescan_insn): Likewise for param "insn".
13635 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13637 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
13638 Strengthen return type and local "insns" from rtx to rtx_insn *.
13639 (microblaze_legitimize_tls_address): Likewise for local "insns".
13640 (microblaze_block_move_loop): Strengthen local "label" from rtx
13641 to rtx_code_label *.
13642 (microblaze_expand_prologue): Strengthen two locals named "insn"
13643 from rtx to rtx_insn *.
13644 (microblaze_asm_output_mi_thunk): Likewise for local "insn".
13645 (microblaze_expand_divide): Likewise for locals "jump", "cjump",
13646 "insn". Strengthen locals "div_label", "div_end_label" from rtx
13647 to rtx_code_label *.
13649 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13651 * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
13652 param from rtx to rtx_insn *.
13653 (mep_reuse_lo): Likewise for third param.
13654 (mep_use_post_modify_p): Likewise for first param.
13655 (mep_core_address_length): Likewise.
13656 (mep_cop_address_length): Likewise.
13657 (mep_final_prescan_insn): Likewise.
13658 (mep_store_data_bypass_p): Likewise for both params.
13659 (mep_mul_hilo_bypass_p): Likewise.
13660 (mep_ipipe_ldc_p): Likewise for param.
13662 * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
13663 (mep_rewrite_mult): Likewise.
13664 (mep_rewrite_mulsi3): Likewise.
13665 (mep_rewrite_maddsi3): Likewise.
13666 (mep_reuse_lo_p_1): Likewise.
13667 (mep_reuse_lo_p): Likewise.
13668 (mep_frame_expr): Likewise.
13669 (mep_make_parallel): Likewise for both params.
13670 (mep_use_post_modify_p_1): Likewise for param "set_insn" and
13672 (mep_use_post_modify_p): Likewise for param "insn".
13673 (mep_core_address_length): Likewise.
13674 (mep_cop_address_length): Likewise.
13675 (mep_reg_set_in_function): Likewise for local "insn".
13676 (mep_asm_without_operands_p): Likewise.
13677 (F): Likewise for return type and param "x".
13678 (add_constant): Likewise for local "insn".
13679 (maybe_dead_move): Likewise for return type and local "insn".
13680 (mep_expand_prologue): Likewise for local "insn".
13681 (mep_final_prescan_insn): Likewise for param "insn".
13682 (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
13683 "next", "follow", "x".
13684 (mep_insert_repeat_label_last): Likewise for return type, param
13685 "last_insn", and locals "next", "prev". Strengthen param "label"
13686 from rtx to rtx_code_label *.
13687 (struct mep_doloop_begin): Strengthen field "insn" from rtx to
13689 (struct mep_doloop_end): Likewise for fields "insn" and
13691 (mep_reorg_repeat): Likewise for param "insns" and local "insn".
13692 Strengthen local "repeat_label" from rtx to rtx_code_label *.
13693 (mep_invertable_branch_p): Strengthen param "insn" from rtx to
13695 (mep_invert_branch): Likewise for params "insn" and "after".
13696 (mep_reorg_erepeat): Likewise for param "insns" and locals
13697 "insn", "prev", "new_last", "barrier", "user". Strengthen local
13698 "l" from rtx to rtx_code_label *.
13699 (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
13700 from rtx to rtx_insn *.
13701 (mep_reorg_addcombine): Likewise for param "insns" and locals
13703 (add_sp_insn_p): Likewise for param "insn".
13704 (mep_reorg_noframe): Likewise for param "insns" and locals
13705 "start_frame_insn", "end_frame_insn", "next".
13706 (mep_reorg): Likewise for local "insns".
13707 (mep_store_data_bypass_1): Likewise for param "prev". Add checked
13709 (mep_store_data_bypass_p): Likewise for params "prev", "insn".
13710 (mep_mul_hilo_bypass_p): Likewise.
13711 (mep_ipipe_ldc_p): Likewise for param "insn".
13712 (mep_make_bundle): Likewise for return type, param "cop" and local
13713 "insn", splitting out the latter into a new local "seq" for when it
13714 is a SEQUENCE rather than an insn.
13715 (core_insn_p): Likewise for param "insn".
13716 (mep_bundle_insns): Likewise for param "insns" and locals "insn",
13717 "last", "first", "note", "prev", "core_insn".
13719 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13721 * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
13723 (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
13724 (m68k_final_prescan_insn): Likewise for first param.
13726 * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
13727 (m68k_set_frame_related): Likewise for param "insn".
13728 (output_btst): Likewise for param "insn".
13729 (m68k_final_prescan_insn): Likewise.
13730 (m68k_move_to_reg): Likewise for local "insn".
13731 (m68k_call_tls_get_addr): Likewise for local "insns".
13732 (m68k_call_m68k_read_tp): Likewise.
13733 (strict_low_part_peephole_ok): Likewise for param "first_insn".
13734 (m68k_output_mi_thunk): Likewise for local "insn".
13736 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13738 * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
13739 first param from rtx to rtx_insn *.
13740 (iq2000_adjust_insn_length): Likewise.
13741 (iq2000_output_conditional_branch): Likewise.
13742 * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
13743 "insn" and local "nop_insn".
13744 (iq2000_annotate_frame_insn): Likewise for param "insn".
13745 (iq2000_expand_prologue): Likewise for both locals "insn".
13746 (iq2000_adjust_insn_length): Likewise for param "insn".
13747 (iq2000_output_conditional_branch): Likewise.
13749 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13751 * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
13752 "insns" from rtx to rtx_insn *.
13753 (ia64_emit_cond_move): Likewise for locals "insn", "first".
13754 (struct spill_fill_data): Likewise for field "init_after" and for
13755 elements of array field "prev_insn".
13756 (spill_restore_mem): Likewise for locals "insn", "first".
13757 (do_spill): Likewise for local "insn".
13758 (do_restore): Likewise.
13759 (ia64_expand_prologue): Likewise.
13760 (ia64_expand_epilogue): Likewise.
13761 (emit_insn_group_barriers): Likewise for locals "insn",
13763 (emit_all_insn_group_barriers): Likewise for locals "insn",
13765 (dfa_stop_insn): Likewise for this global.
13766 (dfa_pre_cycle_insn): Likewise.
13767 (ia64_nop): Likewise.
13768 (final_emit_insn_group_barriers): Likewise for locals "insn",
13770 (emit_predicate_relation_info): Likewise for locals "head", "n",
13772 (ia64_reorg): Likewise for local "insn".
13773 (ia64_output_mi_thunk): Likewise.
13774 (expand_vec_perm_interleave_2): Likewise for local "seq".
13776 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13778 * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
13779 param 1 "insn" from rtx to rtx_insn *.
13780 (ix86_use_lea_for_mov): Likewise.
13781 (ix86_avoid_lea_for_addr): Likewise.
13782 (ix86_split_lea_for_addr): Likewise.
13783 (ix86_lea_for_add_ok): Likewise.
13784 (ix86_output_call_insn): Likewise.
13786 * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
13787 (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
13788 (ix86_output_function_epilogue): Likewise for locals "insn",
13789 "deleted_debug_label".
13790 (legitimize_tls_address): Likewise for local "insn".
13791 (get_some_local_dynamic_name): Likewise.
13792 (increase_distance): Likewise for params "prev", "next".
13793 (distance_non_agu_define_in_bb): Likewise for params "insn",
13794 "start" and locals "prev", "next".
13795 (distance_non_agu_define): Likewise for param "insn".
13796 (distance_agu_use_in_bb): Likewise for params "insn", "start" and
13797 locals "next", "prev".
13798 (distance_agu_use): Likewise for param "insn".
13799 (ix86_lea_outperforms): Likewise.
13800 (ix86_ok_to_clobber_flags): Likewise.
13801 (ix86_avoid_lea_for_add): Likewise.
13802 (ix86_use_lea_for_mov): Likewise.
13803 (ix86_avoid_lea_for_addr): Likewise.
13804 (find_nearest_reg_def): Likewise, also for locals "prev", "start".
13805 (ix86_split_lea_for_addr): Likewise for param "insn".
13806 (ix86_lea_for_add_ok): Likewise for param "insn".
13807 (ix86_expand_carry_flag_compare): Likewise for local
13809 (ix86_expand_int_movcc): Likewise.
13810 (ix86_output_call_insn): Likewise for param "insn".
13811 (ix86_output_call_insn): Likewise for local "i".
13812 (x86_output_mi_thunk): Introduce local "insn", using it in place
13813 of "tmp" when dealing with insns.
13814 (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
13816 (ix86_pad_returns): Likewise for locals "ret", "prev".
13817 (ix86_count_insn_bb): Likewise for local "insn".
13818 (ix86_pad_short_function): Likewise for locals "ret", "insn".
13819 (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
13820 (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
13821 (expand_vec_perm_interleave2): Likewise for local "seq".
13822 (expand_vec_perm_vperm2f128_vblend): Likewise.
13823 (ix86_loop_unroll_adjust): Likewise for local "insn". Convert
13824 call to for_each_rtx with for_each_rtx_in_insn.
13826 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13828 * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
13829 "label" from rtx to rtx_code_label *.
13830 (ix86_expand_prologue): Likewise.
13831 (ix86_expand_split_stack_prologue): Likewise for locals "label",
13833 (ix86_split_idivmod): Likewise for locals "end_label" and
13835 (ix86_expand_branch): Likewise for local "label2".
13836 (ix86_expand_aligntest): Likewise for return type and local "label".
13837 (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
13839 (expand_movmem_epilogue): Likewise for the various locals named
13841 (expand_setmem_epilogue): Likewise.
13842 (expand_small_movmem_or_setmem): Likewise for local "label".
13843 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
13844 Strengthen param "done_label" from rtx * to rtx_code_label **.
13845 Strengthen locals "loop_label" and "label" from rtx to
13847 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
13848 Likewise for locals "loop_label", "label".
13849 (ix86_expand_set_or_movmem): Likewise for locals "label",
13850 "jump_around_label", "hot_label".
13851 (ix86_expand_strlensi_unroll_1): Likewise for locals
13852 "align_2_label", align_3_label", "align_4_label", "end_0_label",
13854 (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
13855 (void ix86_emit_i387_log1p): Likewise for locals "label1",
13856 "label2", "jump_label".
13857 (ix86_expand_sse_compare_and_jump): Likewise for return type and
13859 (ix86_expand_lfloorceil): Likewise for local "label".
13860 (ix86_expand_rint): Likewise.
13861 (ix86_expand_floorceildf_32): Likewise.
13862 (ix86_expand_floorceil): Likewise.
13863 (ix86_expand_rounddf_32): Likewise.
13864 (ix86_expand_trunc): Likewise.
13865 (ix86_expand_truncdf_32): Likewise.
13866 (ix86_expand_round): Likewise.
13868 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13870 * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
13871 first param from rtx to rtx_insn *.
13872 (h8300_insn_length_from_table): Likewise.
13873 * config/h8300/h8300.c (F): Likewise for return type and param
13875 (Fpa): Add a checked cast to rtx_insn *.
13876 (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
13878 (final_prescan_insn): Likewise for param "insn".
13879 (h8300_binary_length): Likewise.
13880 (h8300_insn_length_from_table): Likewise.
13882 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13884 * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
13885 Strengthen first param "insn" from rtx to rtx_insn *.
13887 * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
13889 (frame_insn): Likewise for return type. Introduce local "insn"
13890 for use in place of local "x" for use as an rtx_insn *.
13891 (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
13892 (epiphany_expand_prologue): Likewise for local "insn".
13893 * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
13894 * config/epiphany/resolve-sw-modes.c
13895 (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
13898 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13900 * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
13901 param from rtx to rtx_insn *.
13902 (c6x_final_prescan_insn): Likewise for first param.
13904 * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
13905 (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
13906 (c6x_expand_compare): Strengthen local "insns" from rtx to
13908 (c6x_get_unit_specifier): Likewise for param "insn".
13909 (c6x_print_unit_specifier_field): Likewise.
13910 (c6x_final_prescan_insn): Likewise.
13911 (emit_add_sp_const): Likewise for local "insn".
13912 (c6x_expand_prologue): Likewise.
13914 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13916 * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
13917 param 1 from rtx to rtx_insn *.
13918 * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
13919 the various locals named "insn".
13920 (expand_epilogue_reg_restore): Likewise.
13921 (frame_related_constant_load): Likewise.
13922 (add_to_reg): Likewise.
13923 (emit_link_insn): Likewise.
13924 (do_link): Likewise.
13925 (expand_interrupt_handler_prologue): Likewise.
13926 (branch_dest): Likewise for param "branch".
13927 (asm_conditional_branch): Likewise for param "insn".
13928 (gen_one_bundle): Likewise for elements of param "slot" and local
13930 (bfin_gen_bundles): Likewise for locals "insn", "next" and
13931 elements of local "slot".
13932 (reorder_var_tracking_notes): Likewise for locals "insn", "next",
13933 "queue", "next_queue", "prev".
13934 (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
13935 (add_sched_insns_for_speculation): Likewise for local "insn".
13937 2014-08-25 David Malcolm <dmalcolm@redhat.com>
13939 * config/avr/avr-protos.h (output_movqi): Strengthen first param
13940 from rtx to rtx_insn *.
13941 (output_movhi): Likewise.
13942 (output_movsisf): Likewise.
13943 (avr_out_tstsi): Likewise.
13944 (avr_out_tsthi): Likewise.
13945 (avr_out_tstpsi): Likewise.
13946 (avr_out_compare): Likewise.
13947 (avr_out_compare64): Likewise.
13948 (avr_out_movpsi): Likewise.
13949 (ashlqi3_out): Likewise.
13950 (ashlhi3_out): Likewise.
13951 (ashlsi3_out): Likewise.
13952 (ashrqi3_out): Likewise.
13953 (ashrhi3_out): Likewise.
13954 (ashrsi3_out): Likewise.
13955 (lshrqi3_out): Likewise.
13956 (lshrhi3_out): Likewise.
13957 (lshrsi3_out): Likewise.
13958 (avr_out_ashlpsi3): Likewise.
13959 (avr_out_ashrpsi3): Likewise.
13960 (avr_out_lshrpsi3): Likewise.
13961 (avr_out_fract): Likewise.
13962 (avr_out_sbxx_branch): Likewise.
13963 (avr_out_round): Likewise.
13964 (avr_out_xload): Likewise.
13965 (avr_out_movmem): Likewise.
13966 (adjust_insn_length): Likewise.
13967 (avr_out_lpm): Likewise.
13968 (reg_unused_after): Likewise.
13969 (_reg_unused_after): Likewise.
13970 (avr_jump_mode): Likewise for second param.
13971 (jump_over_one_insn): Likewise for first param.
13972 (avr_final_prescan_insn): Likewise.
13973 (out_shift_with_cnt): Likewise for second param.
13975 * config/avr/avr.c (get_sequence_length): Likewise for param
13976 "insns" and local "insn".
13977 (emit_push_byte): Likewise for local "insn".
13978 (emit_push_sfr): Likewise.
13979 (avr_prologue_setup_frame): Likewise for locals "insn",
13980 "fp_plus_insns", "sp_plus_insns".
13981 (avr_expand_epilogue): Likewise for local "fp_plus_insns",
13983 (avr_jump_mode): Likewise for param "insn".
13984 (avr_final_prescan_insn): Likewise.
13985 (avr_find_unused_d_reg): Likewise.
13986 (avr_out_lpm_no_lpmx): Likewise.
13987 (avr_out_lpm): Likewise.
13988 (avr_out_xload): Likewise.
13989 (output_movqi): Likewise.
13990 (output_movhi): Likewise.
13991 (out_movqi_r_mr): Likewise.
13992 (out_movhi_r_mr): Likewise.
13993 (out_movsi_r_mr): Likewise.
13994 (out_movsi_mr_r): Likewise.
13995 (output_movsisf): Likewise.
13996 (avr_out_load_psi): Likewise.
13997 (avr_out_store_psi): Likewise.
13998 (avr_out_movpsi): Likewise.
13999 (out_movqi_mr_r): Likewise.
14000 (avr_out_movhi_mr_r_xmega): Likewise.
14001 (out_movhi_mr_r): Likewise.
14002 (compare_condition): Likewise for param "insn" and local "next".
14003 (compare_sign_p): Likewise for param "insn".
14004 (compare_diff_p): Likewise.
14005 (compare_eq_p): Likewise.
14006 (avr_out_compare): Likewise.
14007 (avr_out_compare64): Likewise.
14008 (avr_out_tsthi): Likewise.
14009 (avr_out_tstpsi): Likewise.
14010 (avr_out_tstsi): Likewise.
14011 (out_shift_with_cnt): Likewise.
14012 (ashlqi3_out): Likewise.
14013 (ashlhi3_out): Likewise.
14014 (avr_out_ashlpsi3): Likewise.
14015 (ashlsi3_out): Likewise.
14016 (ashrqi3_out): Likewise.
14017 (ashrhi3_out): Likewise.
14018 (avr_out_ashrpsi3): Likewise.
14019 (ashrsi3_out): Likewise.
14020 (lshrqi3_out): Likewise.
14021 (lshrhi3_out): Likewise.
14022 (avr_out_lshrpsi3): Likewise.
14023 (lshrsi3_out): Likewise.
14024 (avr_out_fract): Likewise.
14025 (avr_out_round): Likewise.
14026 (avr_adjust_insn_length): Likewise.
14027 (reg_unused_after): Likewise.
14028 (_reg_unused_after): Likewise.
14029 (avr_compare_pattern): Likewise.
14030 (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
14031 and locals "branch1", "branch2", "insn2", "jump".
14032 (avr_reorg): Likewise for local "insn".
14033 (avr_2word_insn_p): Likewise for param "insn".
14034 (jump_over_one_insn_p): Likewise.
14035 (avr_out_sbxx_branch): Likewise.
14036 (avr_out_movmem): Likewise.
14038 2014-08-25 David Malcolm <dmalcolm@redhat.com>
14040 * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
14041 param from rtx to rtx_insn *.
14042 (thumb1_final_prescan_insn): Likewise.
14043 (thumb2_final_prescan_insn): Likewise.
14045 * config/arm/arm.c (emit_set_insn): Strengthen return type from
14047 (struct minipool_node): Likewise for field "insn".
14048 (dump_minipool): Likewise for param "scan".
14049 (create_fix_barrier): Likewise for local "from". Strengthen local
14050 "label" from rtx to rtx_code_label *.
14051 (push_minipool_barrier): Strengthen param "insn" from rtx to
14053 (push_minipool_fix): Likewise.
14054 (note_invalid_constants): Likewise.
14055 (thumb2_reorg): Likewise for local "insn".
14056 (arm_reorg): Likewise.
14057 (thumb2_final_prescan_insn): Likewise for param
14058 "insn" and local "first_insn".
14059 (arm_final_prescan_insn): Likewise for param "insn" and locals
14060 "start_insn", "this_insn".
14061 (arm_debugger_arg_offset): Likewise for param "insn".
14062 (thumb1_emit_multi_reg_push): Likewise for return type and local
14064 (thumb1_final_prescan_insn): Likewise for param "insn".
14065 (thumb_far_jump_used_p): Likewise for local "insn".
14066 (thumb1_expand_prologue): Likewise.
14067 (arm_expand_epilogue_apcs_frame): Likewise.
14068 (arm_expand_epilogue): Likewise for locals "insn", "tmp".
14069 (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
14070 from rtx to rtx_code_label *.
14071 (arm_split_atomic_op): Likewise for local "label".
14072 (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
14074 2014-08-25 David Malcolm <dmalcolm@redhat.com>
14076 * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
14077 first param from rtx to rtx_insn *.
14078 (arc_verify_short): Likewise.
14079 (arc_short_long): Likewise.
14080 (arc_need_delay): Likewise.
14082 * config/arc/arc.c (struct arc_ccfsm): Likewise for field
14084 (arc_ccfsm_advance): Likewise for param "insn" and locals
14085 "start_insn", "this_insn".
14086 (arc_ccfsm_record_condition): Likewise for local "seq_insn".
14087 (arc_ccfsm_post_advance): Likewise for param "insn".
14088 (arc_next_active_insn): Likewise for return type and param "insn".
14089 Convert NULL_RTX to NULL as appropriate. Add a checked cast.
14090 (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
14091 (output_short_suffix): Likewise for local "insn".
14092 (arc_final_prescan_insn): Likewise for param "insn". Remove
14093 now-redundant checked cast.
14094 (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
14095 "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
14096 rtx_insn *. Add a checked cast. Introduce local "lc_set_insn"
14097 for use where lc_set became an insn.
14098 (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
14100 (arc_get_insn_variants): Likewise for local "prev".
14101 (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
14103 (arc_predicate_delay_insns): Likewise for local "insn".
14104 (arc_pad_return): Likewise for local "prev". For now, add a
14105 checked cast when extracting the insn from "final_sequence".
14106 (arc_short_long): Likewise for param "insn".
14107 (arc_need_delay): Likewise for param "insn" and local "next".
14108 (arc_label_align): Likewise for locals "prev", "next".
14110 2014-08-25 David Malcolm <dmalcolm@redhat.com>
14112 * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
14113 "insn" from rtx to rtx_insn *.
14114 (alpha_gp_save_rtx): Likewise for local "seq".
14115 (alpha_instantiate_decls): Likewise for local "top".
14116 (get_some_local_dynamic_name): Likewise for local "insn".
14117 (alpha_does_function_need_gp): Likewise.
14118 (set_frame_related_p): Likewise for return type and for locals
14120 (emit_frame_store_1): Likewise for local "insn".
14121 (alpha_expand_prologue): Likewise for locals "insn", "seq".
14122 (alpha_end_function): Likewise for local "insn".
14123 (alpha_output_mi_thunk_osf): Likewise.
14124 (alphaev4_insn_pipe): Likewise for param "insn".
14125 (alphaev5_insn_pipe): Likewise.
14126 (alphaev4_next_group): Likewise for return type and param 1
14128 (alphaev5_next_group): Likewise.
14129 (alpha_align_insns_1): Likewise for return type and param 1 of
14130 callback param "next_group", and for locals "i", "next", "prev",
14131 "where", "where2", "insn".
14133 2014-08-25 Bernd Schmidt <bernds@codesourcery.com>
14135 * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
14136 rather than modifying the stmt.
14138 2014-08-25 Jan-Benedict Glaw <jbglaw@lug-owl.de>
14140 * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
14141 cgraph_state conversion.
14143 2014-08-25 David Malcolm <dmalcolm@redhat.com>
14145 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14146 Strengthen local "insns" from rtx to rtx_insn *.
14147 (aarch64_set_frame_expr): Likewise for local "insn".
14148 (aarch64_save_or_restore_fprs): Likewise.
14149 (aarch64_save_or_restore_callee_save_registers): Likewise.
14150 (aarch64_expand_prologue): Likewise.
14151 (aarch64_expand_epilogue): Likewise.
14152 (aarch64_output_mi_thunk): Likewise.
14153 (aarch64_split_compare_and_swap): Strengthen locals "label1" and
14154 "label2" from rtx to rtx_code_label *.
14155 (aarch64_split_atomic_op): Likewise for local "label".
14157 2014-08-25 Martin Liska <mliska@suse.cz>
14159 * cgraph.h (symtab_node):
14160 (bool needed_p (void)): created from decide_is_symbol_needed
14161 (bool referred_to_p (void)): created from referred_to_p
14162 (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
14163 * cgraph.h (cgraph_node):
14164 (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
14165 (void expand (void)): created from expand_function
14166 (static void finalize_function (tree, bool)): created from cgraph_finalize_function
14167 (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
14168 (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
14169 (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
14170 * cgraph.h (varpool_node):
14171 (static void add (tree decl): created from varpool_add_new_variable
14172 * cgraph.h (cgraph_edge):
14173 void remove (void);
14174 (void remove_caller (void)): created from cgraph_edge_remove_caller
14175 (void remove_callee (void)): created from cgraph_edge_remove_callee
14176 (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
14177 created from cgraph_set_call_stmt
14178 (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
14179 (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
14180 (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
14181 gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
14182 (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
14183 created from cgraph_speculative_call_info
14184 (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
14185 int freq_scale, bool update_original)): created from cgraph_clone_edge
14186 (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
14187 (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
14188 (bool recursive_p (void)): created from cgraph_edge_recursive_p
14189 (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
14190 (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
14191 (static void rebuild_references (void)): created from cgraph_rebuild_references
14192 * cgraph.h (symbol_table):
14193 (create_reference): renamed from add_reference
14194 (maybe_create_reference): renamed from maybe_add_reference
14195 (void register_symbol (symtab_node *node)): new function
14196 (void clear_asm_symbols (void)): new function
14197 (void unregister (symtab_node *node)): new function
14198 (void release_symbol (cgraph_node *node, int uid)): new function
14199 (cgraph_node * allocate_cgraph_symbol (void)): new function
14200 (void initialize (void)): created from cgraph_init
14201 (symtab_node *first_symbol (void)):new function
14202 (asm_node *first_asm_symbol (void)):new function
14203 (symtab_node *first_defined_symbol (void)):new function
14204 (varpool_node *first_variable (void)):new function
14205 (varpool_node *next_variable (varpool_node *node)):new function
14206 (varpool_node *first_static_initializer (void)):new function
14207 (varpool_node *next_static_initializer (varpool_node *node)):new function
14208 (varpool_node *first_defined_variable (void)):new function
14209 (varpool_node *next_defined_variable (varpool_node *node)):new function
14210 (cgraph_node *first_defined_function (void)):new function
14211 (cgraph_node *next_defined_function (cgraph_node *node)):new function
14212 (cgraph_node *first_function (void)):new function
14213 (cgraph_node *next_function (cgraph_node *node)):new function
14214 (cgraph_node *first_function_with_gimple_body (void)):new function
14215 (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
14216 (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
14217 created from symtab_remove_unreachable_nodes
14218 (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
14219 (void process_new_functions (void)): created from cgraph_process_new_functions
14220 (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
14221 (bool output_variables (void)): created from varpool_node::output_variables
14222 (void output_asm_statements (void)): created from output_asm_statements
14223 (void finalize_compilation_unit (void)): created from finalize_compilation_unit
14224 (void compile (void)): created from compile
14225 (void output_weakrefs (void)): created from output_weakrefs
14226 (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
14227 (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
14228 gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
14229 (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
14230 (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
14231 created from cgraph_next_function_with_gimple_body
14232 (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
14233 created from cgraph_remove_edge_removal_hook
14234 (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
14235 created from cgraph_add_node_removal_hook
14236 (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
14237 created from cgraph_remove_node_removal_hook
14238 (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
14239 created from varpool_add_node_removal_hook
14240 (void remove_varpool_removal_hook (varpool_node_hook_list *)):
14241 created from varpool_remove_node_removal_hook
14242 (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
14243 created from cgraph_add_function_insertion_hook
14244 (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
14245 created from cgraph_remove_function_insertion_hook
14246 (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
14247 created from varpool_add_variable_insertion_hook
14248 (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
14249 created from varpool_remove_variable_insertion_hook
14250 (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
14251 created from cgraph_add_edge_duplication_hook
14252 (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
14253 created from cgraph_remove_edge_duplication_hook
14254 (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
14255 created from cgraph_add_node_duplication_hook
14256 (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
14257 created from cgraph_remove_node_duplication_hook
14258 (void call_edge_removal_hooks (cgraph_edge *e)):
14259 created from cgraph_call_edge_removal_hooks
14260 (void call_cgraph_insertion_hooks (cgraph_node *node)):
14261 created from call_function_insertion_hooks
14262 (void call_cgraph_removal_hooks (cgraph_node *node)):
14263 created from cgraph_call_node_removal_hooks
14264 (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
14265 created from cgraph_node::call_duplication_hooks
14266 (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
14267 created from cgraph_call_edge_duplication_hooks
14268 (void call_varpool_removal_hooks (varpool_node *node)):
14269 created from varpool_call_node_removal_hooks
14270 (void call_varpool_insertion_hooks (varpool_node *node)):
14271 created from varpool_call_variable_insertion_hooks
14272 (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
14273 created from insert_to_assembler_name_hash
14274 (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
14275 created from unlink_from_assembler_name_hash
14276 (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
14277 created from symtab_prevail_in_asm_name_hash
14278 (void symtab_initialize_asm_name_hash (void)):
14279 created from symtab_initialize_asm_name_hash
14280 (void change_decl_assembler_name (tree decl, tree name)):
14281 created from change_decl_assembler_name
14282 (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
14283 (static hashval_t decl_assembler_name_hash (const_tree asmname)):
14284 created from decl_assembler_name_hash
14285 (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
14286 created from decl_assembler_name_equal
14287 (static hashval_t hash_node_by_assembler_name (const void *p)):
14288 created from hash_node_by_assembler_name
14289 (static int eq_assembler_name (const void *p1, const void *p2)):
14290 created from eq_assembler_name
14292 2014-08-25 Marek Polacek <polacek@redhat.com>
14294 * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
14296 2014-08-25 Petr Murzin <petr.murzin@intel.com>
14298 * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
14299 (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
14300 SWI1248_AVX512BW mode iterator.
14302 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
14305 * config/sh/predicates.md (general_extend_operand): Disable
14306 TRUNCATE before reload completes.
14308 2014-08-24 Gerald Pfeifer <gerald@pfeifer.com>
14310 * doc/invoke.texi (Optimize Options): Fix markup in two cases.
14312 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
14315 * config/sh/sh.opt (musermode): Allow negative form.
14316 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
14317 targets that don't support it.
14318 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
14319 Document -mno-usermode option.
14321 2014-08-24 Kito Cheng <kito@0xlab.org>
14323 * system.h (CALLER_SAVE_PROFITABLE): Poison.
14324 * regs.h (CALLER_SAVE_PROFITABLE): Remove.
14325 * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
14326 * doc/tm.texi: Regenerate.
14328 2014-08-24 Kito Cheng <kito@0xlab.org>
14330 * ira.c: Fix typo in comment.
14332 2014-08-23 Edward Smith-Rowland <3dw4rd@verizon.net>
14334 * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
14335 Deprecate c++1y. Change language to reflect greater confidence in C++14.
14337 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
14340 * config/pa/pa.c (pa_output_function_epilogue): Don't set
14341 last_address when the current function is a thunk.
14342 (pa_asm_output_mi_thunk): When we don't have named sections or they
14343 are not being used, check that thunk can reach the stub table with a
14346 2014-08-23 David Malcolm <dmalcolm@redhat.com>
14348 * web.c (union_match_dups): Strengthen param "insn" from rtx to
14350 (pass_web::execute): Likewise for local "insn".
14352 2014-08-23 David Malcolm <dmalcolm@redhat.com>
14354 * var-tracking.c (struct micro_operation_def): Strengthen field
14355 "insn" from rtx to rtx_insn *.
14356 (struct emit_note_data_def): Likewise.
14357 (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
14358 (vt_stack_adjustments): Likewise for local "insn".
14359 (adjust_insn): Likewise for param "insn".
14360 (val_store): Likewise.
14361 (val_resolve): Likewise.
14362 (struct count_use_info): Likewise for field "insn".
14363 (log_op_type): Likewise for param "insn".
14364 (reverse_op): Likewise.
14365 (prepare_call_arguments): Likewise.
14366 (add_with_sets): The initial param takes an insn, but we can't
14367 yet strengthen it from rtx to rtx_insn * since it's used as a
14368 cselib_record_sets_hook callback. For now rename initial param
14369 from "insn" to "uncast_insn", and introduce a local "insn" of
14370 the stronger rtx_insn * type, with a checked cast.
14371 (compute_bb_dataflow): Strengthen local "insn" from rtx to
14373 (emit_note_insn_var_location): Likewise.
14374 (emit_notes_for_changes): Likewise.
14375 (emit_notes_for_differences): Likewise.
14376 (next_non_note_insn_var_location): Likewise for return type and
14378 (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
14379 (vt_initialize): Likewise for local "insn".
14380 (delete_debug_insns): Likewise for locals "insn" and "next".
14382 2014-08-23 David Malcolm <dmalcolm@redhat.com>
14384 * varasm.c (mark_constants): Strengthen param "insn" from rtx to
14386 (mark_constant_pool): Likewise for local "insn".
14388 2014-08-23 David Malcolm <dmalcolm@redhat.com>
14390 * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
14392 (dead_debug_promote_uses): Likewise.
14393 (dead_debug_insert_temp): Likewise.
14395 2014-08-23 David Malcolm <dmalcolm@redhat.com>
14397 * store-motion.c (store_killed_in_insn): Strengthen param "insn"
14398 from const_rtx to const rtx_insn *.
14399 (store_killed_after): Likewise. Strengthen locals "last", "act"
14400 from rtx to rtx_insn *.
14401 (store_killed_before): Strengthen param "insn" from const_rtx to
14402 const rtx_insn *. Strengthen local "first" from rtx to rtx_insn *.
14403 (find_moveable_store): Strengthen param "insn" from rtx to
14405 (compute_store_table): Likewise for local "insn".
14406 (insert_insn_start_basic_block): Likewise for param "insn" and
14407 locals "prev", "before", "insn".
14408 (insert_store): For now, add a checked cast to rtx_insn * on the
14409 result of gen_move_insn.
14410 (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
14412 (replace_store_insn): Likewise. For now, add a checked cast to
14413 rtx_insn * on the result of gen_move_insn.
14415 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14417 * stmt.c (expand_case): Strengthen local "before_case" from rtx to
14419 (expand_sjlj_dispatch_table): Likewise.
14421 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14423 * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
14424 "insn" from rtx to rtx_insn *.
14426 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14428 * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
14429 "insn" from rtx to rtx_insn *.
14430 (dup_block_and_redirect): Likewise for param 3 "before".
14432 * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
14433 from rtx to rtx_insn *.
14434 (move_insn_for_shrink_wrap): Likewise.
14435 (prepare_shrink_wrap): Likewise for locals "insn", "curr".
14436 (dup_block_and_redirect): Likewise for param "before" and local
14438 (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
14440 (convert_to_simple_return): Likewise for local "start".
14442 * config/i386/i386.c (ix86_finalize_stack_realign_flags):
14443 Strengthen local "insn" from rtx to rtx_insn *, for use when
14444 invoking requires_stack_frame_p.
14446 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14448 * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
14450 (speculate_expr): Likewise for locals "orig_insn_rtx",
14452 (eq_transformed_insns): Likewise for locals "i1", "i2".
14453 (check_for_new_jump): Likewise for return type and local "end".
14454 (find_new_jump): Likewise for return type and local "jump".
14455 (sel_split_edge): Likewise for local "jump".
14456 (sel_create_recovery_block): Likewise.
14457 (sel_redirect_edge_and_branch_force): Likewise.
14458 (sel_redirect_edge_and_branch): Likewise.
14460 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14462 * sel-sched.c (substitute_reg_in_expr): Strengthen local
14463 "new_insn" from rtx to rtx_insn *.
14464 (create_insn_rtx_with_rhs): Likewise for return type and for local
14466 (create_insn_rtx_with_lhs): Likewise.
14467 (create_speculation_check): Likewise for local "insn_rtx".
14468 (implicit_clobber_conflict_p): Likewise for local "insn".
14469 (get_expr_cost): Likewise.
14470 (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
14471 (move_cond_jump): Likewise for locals "next", "prev", "link",
14472 "head", "from", "to".
14474 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14476 * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
14477 "next" from rtx to rtx_insn *.
14478 (find_conditional_protection): Likewise for local "next".
14479 (is_conditionally_protected): Likewise for local "insn1".
14480 (is_pfree): Likewise for locals "insn1", "insn2".
14482 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14484 * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
14485 from rtx to rtx_insn *.
14487 * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
14488 locals "insn1", "insn2" from rtx to rtx_insn *.
14489 (add_deps_for_risky_insns): Likewise for params "head", "tail" and
14490 locals "insn", "prev", "last_jump", "next_tail".
14491 (schedule_ebb): Likewise for params "head", "tail".
14492 (schedule_ebbs): Likewise for locals "tail", "head".
14494 * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
14495 to rtx_insn on "last_insn" in one of the invocations of
14498 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14500 * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
14501 "elem", "insn" from rtx to rtx_insn *.
14502 (change_spec_dep_to_hard): Likewise.
14503 (get_back_and_forw_lists): Likewise for local "con".
14504 (sd_add_dep): Likewise for locals "elem", "insn".
14505 (sd_resolve_dep): Likewise for locals "pro", "con".
14506 (sd_unresolve_dep): Likewise.
14507 (sd_delete_dep): Likewise.
14508 (chain_to_prev_insn): Likewise for local "pro".
14509 (find_inc): Likewise for locals "pro", "con".
14511 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14513 * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
14515 (reg_set_between_p): Strengthen local "insn" from const_rtx to
14517 (modified_between_p): Strengthen local "insn" from rtx to
14519 (remove_reg_equal_equiv_notes_for_regno): Likewise.
14520 (keep_with_call_p): Strengthen local "i2" from const_rtx to
14523 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14525 * resource.c (next_insn_no_annul): Strengthen local "next" from
14527 (mark_referenced_resources): Likewise for local "insn".
14529 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14531 * reload.h (struct insn_chain): Strengthen field "insn" from rtx
14533 (find_reloads): Likewise for param 1.
14534 (subst_reloads): Likewise for sole param.
14535 (find_equiv_reg): Likwise for param 2.
14536 (regno_clobbered_p): Likwise for param 2.
14537 (reload): Likewise for param 1.
14539 * caller-save.c (save_call_clobbered_regs): Strengthen local
14540 "insn" from rtx to rtx_insn *.
14541 (insert_one_insn): Likewise for local "insn".
14543 * reload.c (this_insn): Likewise for this global.
14544 (find_reloads): Likewise for param "insn".
14545 (find_reloads_toplev): Likewise.
14546 (find_reloads_address): Likewise.
14547 (subst_reg_equivs): Likewise.
14548 (update_auto_inc_notes): Likewise.
14549 (find_reloads_address_1): Likewise.
14550 (find_reloads_subreg_address): Likewise.
14551 (subst_reloads): Likewise.
14552 (find_equiv_reg): Likewise, also for local "p".
14553 (regno_clobbered_p): Likewise for param "insn".
14555 * reload1.c (reg_reloaded_insn): Likewise for the elements of this
14557 (spill_reg_store): Likewise for the elements of this array.
14558 (remove_init_insns): Likewise for local "equiv_insn".
14559 (will_delete_init_insn_p): Likewise for param "insn".
14560 (reload): Likewise for param ""first" and local "insn".
14561 (calculate_needs_all_insns): Strengthen local "insn" from rtx to
14563 (calculate_elim_costs_all_insns): Likewise.
14564 (delete_caller_save_insns): Likewise.
14565 (spill_failure): Likewise for param "insn".
14566 (delete_dead_insn): Likewise.
14567 (set_label_offsets): Likewise.
14568 (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
14570 (elimination_costs_in_insn): Likewise for param "insn".
14571 (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
14572 when referring to an insn.
14573 (set_initial_label_offsets): Likewise.
14574 (set_offsets_for_label): Strengthen param "insn" from rtx to
14576 (init_eliminable_invariants): Likewise for param "first" and local
14578 (fixup_eh_region_note): Likewise for param "insn".
14579 (reload_as_needed): Likewise for locals "prev", "insn",
14580 "old_next", "old_prev", "next".
14581 (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
14583 (reload_inheritance_insn): Strengthen elements of this array from
14585 (failed_reload): Likewise for param "insn".
14586 (choose_reload_regs): Likewise for local "insn". Replace use of
14587 NULL_RTX with NULL when referring to an insn.
14588 (input_reload_insns): Strengthen elements of this array from rtx
14590 (other_input_address_reload_insns): Likewise for this global.
14591 (other_input_reload_insns): Likewise for this global.
14592 (input_address_reload_insns): Likwise for the elements of this
14594 (inpaddr_address_reload_insns): Likwise for the elements of this
14596 (output_reload_insns): Likewise for the elements of this array.
14597 (output_address_reload_insns): Likewise for the elements of this
14599 (outaddr_address_reload_insns): Likewise for the elements of this
14601 (operand_reload_insns): Likewise for this global.
14602 (other_operand_reload_insns): Likewise for this global.
14603 (other_output_reload_insns): Likewise for the elements of this
14605 (new_spill_reg_store): Likewise for the elements of this
14607 (emit_input_reload_insns): Likewise for locals "insn", "temp".
14608 Strengthen local "where" from rtx * to rtx_insn **.
14609 (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
14610 from rtx to rtx_insn *.
14611 (do_input_reload): Likewise for local "insn".
14612 (do_output_reload): Likewise for local "insn".
14613 (emit_reload_insns): Likewise for locals "insn" and "store_insn".
14614 (emit_insn_if_valid_for_reload): Likewise for return type and local
14615 "last". Add checked cast to rtx_insn when returning "insn" since
14616 this has been through emit_insn.
14617 (gen_reload): Strengthen return type and locals "last", "insn", "set"
14618 from rtx to rtx_insn *. Add checked cast to rtx_insn when
14619 returning "insn" since it's been through
14620 emit_insn_if_valid_for_reload at this point.
14621 (delete_output_reload): Strengthen param "insn" and locals
14622 "output_reload_insn", "i2" from rtx to rtx_insn *.
14623 (delete_address_reloads): Likewise for params "dead_insn",
14624 "current_insn" and locals "prev", "next".
14625 (delete_address_reloads_1): Likewise for params "dead_insn",
14626 "current_insn" and locals "prev", "i2".
14627 (inc_for_reload): Likewise for locals "last", "add_insn".
14628 (add_auto_inc_notes): Strengthen param "insn" from rtx to
14631 * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
14632 param of this duplicate of the prototype from reload.h
14634 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14636 * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
14638 (regstat_bb_compute_calls_crossed): Likewise.
14640 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14642 * regrename.c (create_new_chain): Strengthen param "insn" from rtx
14644 (init_rename_info): Replace use of NULL_RTX with NULL when dealing
14646 (regrename_analyze): Strengthen local "insn" from rtx to
14648 (scan_rtx_reg): Likewise for param "insn".
14649 (scan_rtx_address): Likewise.
14650 (scan_rtx): Likewise.
14651 (restore_operands): Likewise.
14652 (record_out_operands): Likewise.
14653 (build_def_use): Likewise for local "insn". Replace use of
14654 NULL_RTX with NULL when dealing with an insn.
14656 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14658 * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
14659 * reginfo.c (reg_scan): Likewise, also for local "insn".
14660 (reg_scan_mark_refs): Likewise for param "insn".
14661 (init_subregs_of_mode): Likewise for local "insn".
14663 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14665 * regcprop.c (struct queued_debug_insn_change): Strengthen field
14666 "insn" from rtx to rtx_insn *.
14667 (replace_oldest_value_reg): Likewise for param "insn".
14668 (replace_oldest_value_addr): Likewise.
14669 (replace_oldest_value_mem): Likewise.
14670 (apply_debug_insn_changes): Likewise for local "last_insn".
14671 (copyprop_hardreg_forward_1): Likewise for local "insn".
14673 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14675 * reg-stack.c (next_flags_user): Strengthen return type and param
14676 "insn" from rtx to rtx_insn *.
14677 (straighten_stack): Likewise for param "insn".
14678 (check_asm_stack_operands): Likewise.
14679 (remove_regno_note): Likewise.
14680 (emit_pop_insn): Likewise for return type, param "insn", local
14682 (emit_swap_insn): Strengthen param "insn" and locals "i1", "tmp",
14683 "limit" from rtx to rtx_insn *.
14684 (swap_to_top): Likewise for param "insn".
14685 (move_for_stack_reg): Likewise.
14686 (move_nan_for_stack_reg): Likewise.
14687 (swap_rtx_condition): Likewise.
14688 (compare_for_stack_reg): Likewise.
14689 (subst_all_stack_regs_in_debug_insn): Likewise.
14690 (subst_stack_regs_pat): Likewise, and local "insn2".
14691 (subst_asm_stack_regs): Strengthen param "insn" from rtx to
14693 (subst_stack_regs): Likewise.
14694 (change_stack): Likewise.
14695 (convert_regs_1): Likewise for locals "insn", "next".
14697 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14699 * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
14701 (combine_set_extension): Likewise for param "curr_insn".
14702 (transform_ifelse): Likewise for param "def_insn".
14703 (get_defs): Likewise for param "def_insn". Strengthen param "dest"
14704 from vec<rtx> * to vec<rtx_insn *> *.
14705 (is_cond_copy_insn): Likewise for param "insn".
14706 (struct ext_state): Strengthen the four vec fields from vec<rtx>
14707 to vec<rtx_insn *>.
14708 (make_defs_and_copies_lists): Strengthen param "extend_insn" and
14709 local "def_insn" from rtx to rtx_insn *.
14710 (get_sub_rtx): Likewise for param "def_insn".
14711 (merge_def_and_ext): Likewise.
14712 (combine_reaching_defs): Likewise.
14713 (add_removable_extension): Likewise for param "insn".
14714 (find_removable_extensions): Likewise for local "insn".
14715 (find_and_remove_re): Likewise for locals "curr_insn" and
14716 "def_insn". Strengthen locals "reinsn_del_list" and
14717 "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
14719 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14721 * recog.c (split_insn): Strengthen param "insn" and locals
14722 "first", "last" from rtx to rtx_insn *.
14723 (split_all_insns): Likewise for locals "insn", "next".
14724 (split_all_insns_noflow): Likewise.
14726 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14728 * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
14730 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
14731 (debug_rtx_find): Likewise for param 1 "x".
14733 * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
14734 const_rtx to const rtx_insn *. Likewise for local "insn".
14735 (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
14736 (debug_rtx_find): Likewise for param 1 "x".
14737 (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
14738 from const_rtx to const rtx_insn * within the appropriate cases of
14739 the switch statement.
14741 * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
14742 Strengthen local "insns" from rtx to rtx_insn * since this is
14743 passed to a call to debug_rtx_list.
14745 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14747 * predict.h (predict_insn_def): Strengthen param "insn" from rtx
14750 * function.c (stack_protect_epilogue): Add checked cast to
14751 rtx_insn for now when invoking predict_insn_def.
14753 * predict.c (predict_insn): Strengthen param "insn" from rtx to
14755 (predict_insn_def): Likewise.
14756 (rtl_predict_edge): Likewise for local "last_insn".
14757 (can_predict_insn_p): Strengthen param "insn" from const_rtx to
14759 (combine_predictions_for_insn): Strengthen param "insn" from rtx
14761 (bb_estimate_probability_locally): Likewise for local "last_insn".
14762 (expensive_function_p): Likewise for local "insn".
14764 * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
14765 local "jmp", since this is used when invoking predict_insn_def.
14767 2014-08-22 Marek Polacek <polacek@redhat.com>
14770 * doc/invoke.texi: Update -Wlogical-not-parentheses description.
14772 2014-08-22 Marek Polacek <polacek@redhat.com>
14775 * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
14776 a comparison in parens.
14777 * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
14780 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14782 * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
14785 * cprop.c (fis_get_condition): Likewise.
14787 * postreload.c (reload_cse_regs): Likewise for param "first".
14788 (reload_cse_simplify): Likewise for param "insn".
14789 (reload_cse_regs_1): Likewise for local "insn".
14790 (reload_cse_simplify_set): Likewise for param "insn".
14791 (reload_cse_simplify_operands): Likewise.
14792 (struct reg_use): Likewise for field "insn".
14793 (reload_combine_purge_insn_uses): Likewise for param "insn".
14794 (fixup_debug_insns): Likewise for params "from", "to" and local
14796 (try_replace_in_use): Likewise for local "use_insn".
14797 (reload_combine_recognize_const_pattern): Likewise for param
14798 "insn" and locals "add_moved_after_insn", "use_insn".
14799 (reload_combine_recognize_pattern): Likewise for param "insn" and
14801 (reload_combine): Likewise for locals "insn", "prev".
14802 (reload_combine_note_use): Likewise for param "insn".
14803 (move2add_use_add2_insn): Likewise.
14804 (move2add_use_add3_insn): Likewise.
14805 (reload_cse_move2add): Likewise, also for local "next".
14806 (move2add_note_store): Likewise for local "insn".
14808 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14810 * postreload-gcse.c (struct occr): Strengthen field "insn" from
14812 (struct unoccr): Likewise.
14813 (struct modifies_mem): Likewise.
14814 (alloc_mem): Likewise for local "insn".
14815 (insert_expr_in_table): Likewise for param "insn".
14816 (dump_expr_hash_table_entry): Likewise for local "insn".
14817 (oprs_unchanged_p): Likewise for param "insn".
14818 (load_killed_in_block_p): Likewise for local "setter".
14819 (record_last_reg_set_info): Likewise for param "insn".
14820 (record_last_reg_set_info_regno): Likewise.
14821 (record_last_mem_set_info): Likewise.
14822 (record_last_set_info): Likewise for local "last_set_insn".
14823 (record_opr_changes): Likewise for param "insn".
14824 (hash_scan_set): Likewise.
14825 (compute_hash_table): Likewise for local "insn".
14826 (get_avail_load_store_reg): Likewise for param "insn".
14827 (eliminate_partially_redundant_load): Likewise, also for locals
14828 "avail_insn", "next_pred_bb_end". Replace use of NULL_RTX with
14830 (eliminate_partially_redundant_loads): Likewise for local "insn".
14832 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14834 * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
14836 (expand_binop): Likewise for locals "entry_last", "last", "insns"
14837 (expand_twoval_unop): Likewise for locals entry_last", "last".
14838 (expand_twoval_binop): Likewise.
14839 (expand_twoval_binop_libfunc): Likewise for local "insns".
14840 (widen_leading): Likewise for local "last".
14841 (expand_doubleword_clz): Likewise for local "seq". Strengthen
14842 locals "hi0_label", "after_label" from rtx to rtx_code_label *.
14843 (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
14844 (expand_parity): Likewise for locals "last" and "seq".
14845 (expand_ffs): Likewise for local "seq". Strengthen local
14846 "nonzero_label" from rtx to rtx_code_label *.
14847 (expand_absneg_bit): Strengthen local "insns" from rtx to
14849 (expand_unop_direct): Likewise for local "last".
14850 (expand_unop): Likewise for locals "last", "insns".
14851 (expand_abs_nojump): Likewise for local "last".
14852 (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
14853 (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
14855 (expand_copysign_absneg): Strengthen local "label" from rtx to
14857 (expand_copysign_bit): Strengthen local "insns" from rtx to
14859 (struct no_conflict_data): Likewise for fields "first", "insn".
14860 (emit_libcall_block_1): Likewise for param "insns" and locals
14861 "next", "last", "insn".
14862 (emit_libcall_block): For now, add a checked cast to rtx_insn *
14863 on "insns" when invoking emit_libcall_block_1. Ultimately we
14864 want to strengthen insns itself.
14865 (prepare_cmp_insn): Strengthen local "last" from rtx to
14867 (emit_cmp_and_jump_insn_1): Likewise for local "insn".
14868 (prepare_float_lib_cmp): Likewise for local "insns".
14869 (emit_conditional_move): Likewise for local "last".
14870 (emit_conditional_add): Likewise.
14871 (have_sub2_insn): Likewise for local "seq".
14872 (expand_float): Likewise for local "insns". Strengthen locals
14873 "label", "neglabel" from rtx to rtx_code_label *.
14874 (expand_fix): Likewise for locals "last", "insn", "insns" (to
14875 rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
14876 (expand_fixed_convert): Likewise for local "insns" (to
14878 (expand_sfix_optab): Likewise for local "last".
14879 (expand_compare_and_swap_loop): Strengthen local "label" from rtx
14880 to rtx_code_label *.
14881 (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
14882 from rtx to rtx_insn *.
14883 (expand_atomic_fetch_op): Likewise for local "insn".
14884 (maybe_legitimize_operand_same_code): Likewise for local "last".
14885 (maybe_legitimize_operands): Likewise.
14887 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14889 * modulo-sched.c (struct ps_reg_move_info): Strengthen field
14890 "insn" from rtx to rtx_insn *.
14891 (ps_rtl_insn): Likewise for return type.
14892 (doloop_register_get): Likewise for params "head", "tail" and
14893 locals "insn", "first_insn_not_to_check".
14894 (schedule_reg_move): Likewise for local "this_insn".
14895 (schedule_reg_moves): Add a checked cast to rtx_insn * to result
14896 of gen_move_insn for now.
14897 (reset_sched_times): Strengthen local "insn" from rtx to
14899 (permute_partial_schedule): Likewise.
14900 (duplicate_insns_of_cycles): Likewise for local "u_insn".
14901 (dump_insn_location): Likewise for param "insn".
14902 (loop_canon_p): Likewise for local "insn".
14903 (sms_schedule): Likewise.
14904 (print_partial_schedule): Likewise.
14905 (ps_has_conflicts): Likewise.
14907 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14909 * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
14910 "tailp" from rtx * to rtx_insn **.
14912 * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
14913 from rtx to rtx_insn *.
14914 * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
14915 "tailp" from rtx * to rtx_insn **. Strengthen locals "beg_head",
14916 "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
14918 * modulo-sched.c (const_iteration_count): Strengthen return type
14919 and locals "insn", "head", "tail" from rtx to rtx_insn *. Replace
14920 use of NULL_RTX with NULL when working with insns.
14921 (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
14923 (sms_schedule): Likewise.
14924 * sched-rgn.c (init_ready_list): Likewise, also for locals
14925 "src_head" and "src_next_tail".
14926 (compute_block_dependences): Likewise.
14927 (free_block_dependencies): Likewise.
14928 (debug_rgn_dependencies): Likewise.
14929 (free_rgn_deps): Likewise.
14930 (compute_priorities): Likewise.
14931 (schedule_region): Likewise.
14932 * sel-sched.c (find_ebb_boundaries): Likewise.
14934 * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
14935 "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
14937 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14939 * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
14940 from rtx to rtx_insn *.
14941 (new_seginfo): Likewise for param "insn".
14942 (create_pre_exit): Likewise for locals "last_insn",
14943 "before_return_copy", "return_copy".
14944 (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
14947 2014-08-22 David Malcolm <dmalcolm@redhat.com>
14949 * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
14950 from rtx to rtx_insn *.
14951 (lra_push_insn): Likewise for 1st param.
14952 (lra_push_insn_and_update_insn_regno_info): Likewise.
14953 (lra_pop_insn): Likewise for return type.
14954 (lra_invalidate_insn_data): Likewise for 1st param.
14955 (lra_set_insn_deleted): Likewise.
14956 (lra_delete_dead_insn): Likewise.
14957 (lra_process_new_insns): Likewise for first 3 params.
14958 (lra_set_insn_recog_data): Likewise for 1st param.
14959 (lra_update_insn_recog_data): Likewise.
14960 (lra_set_used_insn_alternative): Likewise.
14961 (lra_invalidate_insn_regno_info): Likewise.
14962 (lra_update_insn_regno_info): Likewise.
14963 (lra_former_scratch_operand_p): Likewise.
14964 (lra_eliminate_regs_1): Likewise.
14965 (lra_get_insn_recog_data): Likewise.
14967 * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
14970 * lra-coalesce.c (move_freq_compare_func): Likewise for locals
14972 (substitute_within_insn): New.
14973 (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
14974 rtx_insn *. Strengthen sorted_moves from rtx * to rxt_insn **.
14975 Replace call to "substitute" with call to substitute_within_insn.
14977 * lra-constraints.c (curr_insn): Strengthen from rtx to
14979 (get_equiv_with_elimination): Likewise for param "insn".
14980 (match_reload): Strengthen params "before" and "after" from rtx *
14982 (emit_spill_move): Likewise for return type. Add a checked cast
14983 to rtx_insn * on result of gen_move_insn for now.
14984 (check_and_process_move): Likewise for local "before". Replace
14985 NULL_RTX with NULL when referring to insns.
14986 (process_addr_reg): Strengthen params "before" and "after" from
14987 rtx * to rtx_insn **.
14988 (insert_move_for_subreg): Likewise.
14989 (simplify_operand_subreg): Strengthen locals "before" and "after"
14990 from rtx to rtx_insn *.
14991 (process_address_1): Strengthen params "before" and "after" from
14992 rtx * to rtx_insn **. Strengthen locals "insns", "last_insn" from
14994 (process_address): Strengthen params "before" and "after" from
14995 rtx * to rtx_insn **.
14996 (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
14997 (curr_insn_transform): Strengthen locals "before" and "after"
14998 from rtx to rtx_insn *. Replace NULL_RTX with NULL when referring
15000 (loc_equivalence_callback): Update cast of "data", changing
15001 resulting type from rtx to rtx_insn *.
15002 (substitute_pseudo_within_insn): New.
15003 (inherit_reload_reg): Strengthen param "insn" from rtx to
15004 rtx_insn *; likewise for local "new_insns". Replace NULL_RTX with
15005 NULL when referring to insns. Add a checked cast to rtx_insn *
15006 when using usage_insn to invoke lra_update_insn_regno_info.
15007 (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
15008 likewise for locals "restore", "save". Add checked casts to
15009 rtx_insn * when using usage_insn to invoke
15010 lra_update_insn_regno_info and lra_process_new_insns. Replace
15011 NULL_RTX with NULL when referring to insns.
15012 (split_if_necessary): Strengthen param "insn" from rtx to
15014 (update_ebb_live_info): Likewise for params "head", "tail" and local
15016 (get_last_insertion_point): Likewise for return type and local "insn".
15017 (get_live_on_other_edges): Likewise for local "last".
15018 (inherit_in_ebb): Likewise for params "head", "tail" and locals
15019 "prev_insn", "next_insn", "restore".
15020 (remove_inheritance_pseudos): Likewise for local "prev_insn".
15021 (undo_optional_reloads): Likewise for local "insn".
15023 * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
15025 (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
15027 (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
15029 (spill_pseudos): Likewise for local "insn".
15030 (init_elimination): Likewise.
15031 (process_insn_for_elimination): Likewise for param "insn".
15033 * lra-lives.c (curr_insn): Likewise.;
15035 * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
15036 (remove_pseudos): Likewise for param "insn".
15037 (spill_pseudos): Likewise for local "insn".
15038 (lra_final_code_change): Likewise for locals "insn", "curr".
15040 * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
15041 (lra_set_insn_deleted): Likewise.
15042 (lra_delete_dead_insn): Likewise, and for local "prev".
15043 (new_insn_reg): Likewise for param "insn".
15044 (lra_set_insn_recog_data): Likewise.
15045 (lra_update_insn_recog_data): Likewise.
15046 (lra_set_used_insn_alternative): Likewise.
15047 (get_insn_freq): Likewise.
15048 (invalidate_insn_data_regno_info): Likewise.
15049 (lra_invalidate_insn_regno_info): Likewise.
15050 (lra_update_insn_regno_info): Likewise.
15051 (lra_constraint_insn_stack): Strengthen from vec<rtx> to
15053 (lra_push_insn_1): Strengthen param "insn" from rtx to
15055 (lra_push_insn): Likewise.
15056 (lra_push_insn_and_update_insn_regno_info): Likewise.
15057 (lra_pop_insn): Likewise for return type and local "insn".
15058 (push_insns): Likewise for params "from", "to", and local "insn".
15059 (setup_sp_offset): Likewise for params "from", "last" and locals
15061 (lra_process_new_insns): Likewise for params "insn", "before",
15062 "after" and local "last".
15063 (struct sloc): Likewise for field "insn".
15064 (lra_former_scratch_operand_p): Likewise for param "insn".
15065 (remove_scratches): Likewise for locals "insn", "last".
15066 (check_rtl): Likewise for local "insn".
15067 (add_auto_inc_notes): Likewise for param "insn".
15068 (update_inc_notes): Likewise for local "insn".
15069 (lra): Replace NULL_RTX with NULL when referring to insn.
15071 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15073 * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
15075 (resolve_reg_notes): Likewise.
15076 (resolve_simple_move): Likewise for return type, param "insn", and
15077 locals "insns", "minsn".
15078 (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
15079 (resolve_use): Likewise.
15080 (resolve_debug): Likewise.
15081 (find_decomposable_shift_zext): Likewise.
15082 (resolve_shift_zext): Likewise for return type, param "insn", and
15083 locals "insns", "in". Eliminate use of NULL_RTX in favor of NULL.
15084 (decompose_multiword_subregs): Likewise for local "insn",
15085 "orig_insn", "decomposed_shift", "end".
15087 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15089 * basic-block.h (basic_block split_edge_and_insert): Strengthen
15090 param "insns" from rtx to rtx_insn *.
15092 * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
15094 (struct iv_to_split): Likewise.
15095 (loop_exit_at_end_p): Likewise for local "insn".
15096 (split_edge_and_insert): Likewise for param "insns".
15097 (compare_and_jump_seq): Likewise for return type, param "cinsn",
15098 and locals "seq", "jump".
15099 (unroll_loop_runtime_iterations): Likewise for locals "init_code",
15100 "branch_code"; update invocations of compare_and_jump_seq to
15101 eliminate NULL_RTX in favor of NULL.
15102 (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
15104 (reset_debug_uses_in_loop): Likewise.
15105 (analyze_insn_to_expand_var): Likewise for param "insn".
15106 (analyze_iv_to_split_insn): Likewise.
15107 (analyze_insns_in_loop): Likewise for local "insn".
15108 (insert_base_initialization): Likewise for param
15109 "insn" and local "seq".
15110 (split_iv): Likewise for param "insn" and local "seq".
15111 (expand_var_during_unrolling): Likewise for param "insn".
15112 (insert_var_expansion_initialization): Likewise for local "seq".
15113 (combine_var_copies_in_loop_exit): Likewise.
15114 (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
15116 (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
15117 (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
15120 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15122 * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
15124 (iv_analyze_result): Likewise.
15125 (iv_analyze_expr): Likewise.
15128 * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
15129 local "def_insn" from rtx to rtx_insn *.
15130 (get_biv_step_1): Likewise for local "insn".
15131 (iv_analyze_expr): Likewise for param "insn".
15132 (iv_analyze_def): Likewise for local "insn".
15133 (iv_analyze_op): Likewise for param "insn".
15134 (iv_analyze): Likewise.
15135 (iv_analyze_result): Likewise.
15137 (suitable_set_for_replacement): Likewise.
15138 (simplify_using_initial_values): Likewise for local "insn".
15139 (iv_number_of_iterations): Likewise for param "insn".
15140 (check_simple_exit): Add checked cast to rtx_insn when invoking
15141 iv_number_of_iterations for now (until get_condition is
15144 * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
15145 "insn" from rtx to rtx_insn *.
15146 (analyze_insns_in_loop): Likewise for local "insn".
15148 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15150 * loop-invariant.c (struct use): Strengthen field "insn" from rtx
15152 (struct invariant): Likewise.
15153 (hash_invariant_expr_1): Likewise for param "insn".
15154 (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
15155 (find_exits): Likewise for local "insn".
15156 (create_new_invariant): Likewise for param "insn".
15157 (check_dependencies): Likewise.
15158 (find_invariant_insn): Likewise.
15159 (record_uses): Likewise.
15160 (find_invariants_insn): Likewise.
15161 (find_invariants_bb): Likewise for local "insn".
15162 (get_pressure_class_and_nregs): Likewise for param "insn".
15163 (calculate_loop_reg_pressure): Likewise for local "insn".
15165 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15167 * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
15169 (add_test): Likewise for locals "seq", "jump".
15170 (doloop_modify): Likewise for locals "sequence", "jump_insn".
15172 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15174 * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
15176 (rebuild_jump_labels_chain): Likewise for param "chain".
15178 * cfgexpand.c (pass_expand::execute): Add checked cast to
15179 rtx_insn * when calling rebuild_jump_labels_chain in region where
15180 we know e->insns.r is non-NULL.
15182 * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
15184 (rebuild_jump_labels): Likewise.
15185 (rebuild_jump_labels_chain): Likewise for param "chain".
15186 (cleanup_barriers): Likewise for locals "insn", "next", "prev".
15187 (init_label_info): Likewise for param "f".
15188 (maybe_propagate_label_ref): Likewise for params "jump_insn",
15189 "prev_nonjump_insn".
15190 (mark_all_labels): Likewise for param "f" and locals "insn",
15191 "prev_nonjump_insn".
15193 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15195 * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
15196 from rtx to rtx_insn *insn.
15197 (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
15198 (ira_add_allocno_copy): Likewise.
15199 * ira-build.c (find_allocno_copy): Strengthen param "insn" from
15201 (ira_create_copy): Likewise.
15202 (ira_add_allocno_copy): Likewise.
15203 (create_bb_allocnos): Likewise for local "insn".
15204 * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
15205 (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
15206 process_regs_for_copy for rtx_insn * param.
15207 (add_insn_allocno_copies): Strengthen param "insn" from rtx to
15208 rtx_insn *insn. Update NULL_RTX to NULL in invocation of
15209 process_regs_for_copy for rtx_insn * param.
15210 (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
15211 * ira-costs.c (record_reg_classes): Likewise for param "insn".
15212 (record_operand_costs): Likewise.
15213 (scan_one_insn): Likewise for return type, and for param "insn".
15214 (process_bb_for_costs): Likewise for local "insn".
15215 (process_bb_node_for_hard_reg_moves): Likewise.
15216 * ira-emit.c (struct move): Likewise for field "insn".
15217 (create_move): Eliminate use of NULL_RTX when dealing with an
15219 (emit_move_list): Strengthen return type and locals "result",
15220 "insn" from rtx to rtx_insn *insn.
15221 (emit_moves): Likewise for locals "insns", "tmp".
15222 (ira_emit): Likewise for local "insn".
15223 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
15225 (find_call_crossed_cheap_reg): Likewise.
15226 (process_bb_node_lives): Likewise for local "insn".
15227 * ira.c (decrease_live_ranges_number): Likewise.
15228 (compute_regs_asm_clobbered): Likewise.
15229 (build_insn_chain): Likewise.
15230 (find_moveable_pseudos): Likewise, also locals "def_insn",
15231 "use_insn", "x". Also strengthen local "closest_uses" from rtx *
15232 to rtx_insn **. Add a checked cast when assigning from
15233 "closest_use" into closest_uses array in a region where we know
15234 it's a non-NULL insn.
15235 (interesting_dest_for_shprep): Strengthen param "insn" from rtx
15237 (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
15238 "last_interesting_insn", "uin".
15239 (move_unallocated_pseudos): Likewise for locals "def_insn",
15240 "move_insn", "newinsn".
15242 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15244 * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
15245 Strengthen locals "done_label", "do_error" from rtx to
15247 (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
15248 from rtx to rtx_insn *. Strengthen local "sub_check from rtx to
15250 (ubsan_expand_si_overflow_neg_check): Likewise for locals
15251 "done_label", "do_error" to rtx_code_label * and local "last" to
15253 (ubsan_expand_si_overflow_mul_check): Likewise for locals
15254 "done_label", "do_error", "large_op0", "small_op0_large_op1",
15255 "one_small_one_large", "both_ops_large", "after_hipart_neg",
15256 "after_lopart_neg", "do_overflow", "hipart_different" to
15257 rtx_code_label * and local "last" to rtx_insn *.
15259 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15261 * init-regs.c (initialize_uninitialized_regs): Strengthen locals
15262 "insn" and "move_insn" from rtx to rtx_insn *.
15264 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15266 * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
15268 (cheap_bb_rtx_cost_p): Likewise.
15269 (first_active_insn): Likewise for return type and local "insn".
15270 (last_active_insn): Likewise for return type and locals "insn",
15272 (struct noce_if_info): Likewise for fields "jump", "insn_a",
15274 (end_ifcvt_sequence): Likewise for return type and locals "insn",
15276 (noce_try_move): Likewise for local "seq".
15277 (noce_try_store_flag): Likewise.
15278 (noce_try_store_flag_constants): Likewise.
15279 (noce_try_addcc): Likewise.
15280 (noce_try_store_flag_mask): Likewise.
15281 (noce_try_cmove): Likewise.
15282 (noce_try_minmax): Likewise.
15283 (noce_try_abs): Likewise.
15284 (noce_try_sign_mask): Likewise.
15285 (noce_try_bitop): Likewise.
15286 (noce_can_store_speculate_p): Likewise for local "insn".
15287 (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
15289 (check_cond_move_block): Likewise for local "insn".
15290 (cond_move_convert_if_block): Likewise.
15291 (cond_move_process_if_block): Likewise for locals "seq",
15293 (noce_find_if_block): Likewise for local "jump".
15294 (merge_if_block): Likewise for local "last".
15295 (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
15296 (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
15297 (block_has_only_trap): Likewise for return type and local "trap".
15298 (find_if_case_1): Likewise for local "jump".
15299 (dead_or_predicable): Likewise for locals "head", "end", "jump",
15302 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15304 * hw-doloop.h (struct hwloop_info_d): Strengthen fields
15305 "last_insn", "loop_end" from rtx to rtx_insn *.
15307 * hw-doloop.c (scan_loop): Likewise for local "insn".
15308 (discover_loop): Likewise for param "tail_insn".
15309 (discover_loops): Likewise for local "tail".
15311 * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
15312 cast to rtx_insn * when assigning from an rtx local to a
15313 hwloop_info's "last_insn" field.
15315 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15317 * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
15318 (add_delay_dependencies): Strengthen local "pro" from rtx to
15320 (recompute_todo_spec): Likewise.
15321 (dep_cost_1): Likewise for locals "insn", "used".
15322 (schedule_insn): Likewise for local "dbg".
15323 (schedule_insn): Likewise for locals "pro", "next".
15324 (unschedule_insns_until): Likewise for local "con".
15325 (restore_pattern): Likewise for local "next".
15326 (estimate_insn_tick): Likewise for local "pro".
15327 (resolve_dependencies): Likewise for local "next".
15328 (fix_inter_tick): Likewise.
15329 (fix_tick_ready): Likewise for local "pro".
15330 (add_to_speculative_block): Likewise for locals "check", "twin",
15332 (sched_extend_bb): Likewise for locals "end", "insn".
15333 (init_before_recovery): Likewise for local "x".
15334 (sched_create_recovery_block): Likewise for local "barrier".
15335 (create_check_block_twin): Likewise for local "pro".
15336 (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
15338 (unlink_bb_notes): Update for change to type of bb_header.
15339 Strengthen locals "prev", "label", "note", "next" from rtx to
15341 (clear_priorities): Likewise for local "pro".
15343 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15345 * gcse.c (struct occr): Strengthen field "insn" from rtx to
15347 (test_insn): Likewise for this global.
15348 (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
15350 (oprs_anticipatable_p): Likewise.
15351 (oprs_available_p): Likewise.
15352 (insert_expr_in_table): Strengthen param "insn" from rtx to
15354 (hash_scan_set): Likewise.
15355 (hash_scan_clobber): Likewise.
15356 (hash_scan_call): Likewise.
15357 (hash_scan_insn): Likewise.
15358 (compute_hash_table_work): Likewise for local "insn".
15359 (process_insert_insn): Likewise for return type and local "pat".
15360 (insert_insn_end_basic_block): Likewise for locals "new_insn",
15361 "pat", "pat_end", "maybe_cc0_setter".
15362 (pre_edge_insert): Likewise for local "insn".
15363 (pre_insert_copy_insn): Likewise for param "insn".
15364 (pre_insert_copies): Likewise for local "insn".
15365 (struct set_data): Likewise for field "insn".
15366 (single_set_gcse): Likewise for param "insn".
15367 (gcse_emit_move_after): Likewise.
15368 (pre_delete): Likewise for local "insn".
15369 (update_bb_reg_pressure): Likewise for param "from" and local
15371 (should_hoist_expr_to_dom): Likewise for param "from".
15372 (hoist_code): Likewise for local "insn".
15373 (get_pressure_class_and_nregs): Likewise for param "insn".
15374 (calculate_bb_reg_pressure): Likewise for local "insn".
15375 (compute_ld_motion_mems): Likewise.
15377 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15379 * genpeep.c (main): Rename param back from "uncast_ins1" to
15380 "ins1", strengthening from rtx to rtx_insn *. Drop now-redundant
15383 * output.h (peephole): Strengthen param from rtx to rtx_insn *.
15385 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
15388 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
15389 documentation to state it is only for VSX operations.
15391 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
15392 constraint only active if VSX.
15394 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
15395 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
15396 (lfiwzx): Likewise.
15398 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15400 * fwprop.c (single_def_use_dom_walker::before_dom_children):
15401 Strengthen local "insn" from rtx to rtx_insn *.
15402 (use_killed_between): Likewise for param "target_insn".
15403 (all_uses_available_at): Likewise for param "target_insn" and
15405 (update_df_init): Likewise for params "def_insn", "insn".
15406 (update_df): Likewise for param "insn".
15407 (try_fwprop_subst): Likewise for param "def_insn" and local
15409 (free_load_extend): Likewise for param "insn".
15410 (forward_propagate_subreg): Likewise for param "def_insn" and
15412 (forward_propagate_asm): Likewise for param "def_insn" and local
15414 (forward_propagate_and_simplify): Likewise for param "def_insn"
15415 and local "use_insn".
15416 (forward_propagate_into): Likewise for locals "def_insn" and
15419 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15421 * function.c (emit_initial_value_sets): Strengthen local "seq"
15422 from rtx to rtx_insn *.
15423 (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
15425 (instantiate_virtual_regs): Likewise for local "insn".
15426 (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
15427 (reorder_blocks_1): Likewise for param "insns" and local "insn".
15428 (expand_function_end): Likewise for locals "insn" and "seq".
15429 (epilogue_done): Likewise for local "insn".
15430 (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
15432 (reposition_prologue_and_epilogue_notes): Likewise for locals
15433 "insn", "last", "note", "first".
15434 (match_asm_constraints_1): Likewise for param "insn" and local "insns".
15435 (pass_match_asm_constraints::execute): Likewise for local "insn".
15437 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15439 * output.h (final_scan_insn): Strengthen return type from rtx to
15441 (final_forward_branch_p): Likewise for param.
15442 (current_output_insn): Likewise for this global.
15444 * final.c (rtx debug_insn): Likewise for this variable.
15445 (current_output_insn): Likewise.
15446 (get_attr_length_1): Rename param "insn" to "uncast_insn",
15447 adding "insn" back in as an rtx_insn * with a checked cast, so
15448 that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
15450 (compute_alignments): Strengthen local "label" from rtx to
15452 (shorten_branches): Rename param from "first" to "uncast_first",
15453 introducing a new local rtx_insn * "first" using a checked cast to
15454 effectively strengthen "first" from rtx to rtx_insn * without
15455 affecting the type signature. Strengthen locals "insn", "seq",
15456 "next", "label" from rtx to rtx_insn *.
15457 (change_scope): Strengthen param "orig_insn" and local "insn" from
15459 (final_start_function): Rename param from "first" to "uncast_first",
15460 introducing a new local rtx_insn * "first" using a checked cast to
15461 effectively strengthen "first" from rtx to rtx_insn * without
15462 affecting the type signature. Strengthen local "insn" from rtx to
15464 (dump_basic_block_info): Strengthen param "insn" from rtx to
15466 (final): Rename param from "first" to "uncast_first",
15467 introducing a new local rtx_insn * "first" using a checked cast to
15468 effectively strengthen "first" from rtx to rtx_insn * without
15469 affecting the type signature. Strengthen locals "insn", "next"
15470 from rtx to rtx_insn *.
15471 (output_alternate_entry_point): Strengthen param "insn" from rtx to
15473 (call_from_call_insn): Strengthen param "insn" from rtx to
15475 (final_scan_insn): Rename param from "insn" to "uncast_insn",
15476 introducing a new local rtx_insn * "insn" using a checked cast to
15477 effectively strengthen "insn" from rtx to rtx_insn * without
15478 affecting the type signature. Strengthen return type and locals
15479 "next", "note", "prev", "new_rtx" from rtx to rtx_insn *. Remove
15480 now-redundant checked cast to rtx_insn * from both invocations of
15481 debug_hooks->var_location. Convert CALL_P into a dyn_cast,
15482 introducing a local "call_insn" for use when invoking
15483 call_from_call_insn.
15484 (notice_source_line): Strengthen param "insn" from rtx to
15486 (leaf_function_p): Likewise for local "insn".
15487 (final_forward_branch_p): Likewise.
15488 (leaf_renumber_regs): Likewise for param "first".
15489 (rest_of_clean_state): Likewise for locals "insn" and "next".
15490 (self_recursive_call_p): Likewise for param "insn".
15491 (collect_fn_hard_reg_usage): Likewise for local "insn".
15492 (get_call_fndecl): Likewise for param "insn".
15493 (get_call_cgraph_rtl_info): Likewise.
15494 (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
15495 introducing a new local rtx_insn * "insn" using a checked cast to
15496 effectively strengthen "insn" from rtx to rtx_insn * without
15497 affecting the type signature.
15499 * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
15500 cast when assigning from param "insn" to current_output_insn.
15501 (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
15502 so that we can assign it back to current_output_insn.
15504 2014-08-20 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
15506 * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
15507 atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
15508 atmxt540s and atmxt540sreva devices.
15509 * config/avr/avr-tables.opt: Regenerate.
15510 * config/avr/t-multilib: Regenerate.
15511 * doc/avr-mmcu.texi: Regenerate.
15513 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15515 * expr.c (convert_move): Strengthen local "insns" from rtx to
15517 (emit_block_move_via_loop): Strengthen locals "cmp_label" and
15518 "top_label" from rtx to rtx_code_label *.
15519 (move_block_to_reg): Strengthen local "insn", "last" from rtx to
15521 (emit_single_push_insn): Likewise for locals "prev", "last".
15522 (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
15523 to rtx_code_label *.
15524 (store_constructor): Likewise for locals "loop_start", "loop_end".
15525 (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
15527 (expand_expr_real_2): Likewise.
15528 (expand_expr_real_1): Strengthen local "label" from rtx to
15531 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15533 * expmed.c (store_bit_field_using_insv): Strengthen local "last"
15534 from rtx to rtx_insn *.
15535 (store_bit_field_1): Likewise.
15536 (extract_bit_field_1): Likewise.
15537 (expand_mult_const): Likewise for local "insns".
15538 (expmed_mult_highpart): Strengthen local "label" from rtx to
15540 (expand_smod_pow2): Likewise.
15541 (expand_sdiv_pow2): Likewise.
15542 (expand_divmod): Strengthen locals "last", "insn" from rtx to
15543 rtx_insn *. Strengthen locals "label", "label1", "label2",
15544 "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
15545 (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
15546 (emit_store_flag): Likewise.
15547 (emit_store_flag_force): Strengthen local "label" from rtx to
15549 (do_cmp_and_jump): Likewise for param "label".
15551 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15553 * explow.c (force_reg): Strengthen local "insn" from rtx to
15555 (adjust_stack_1): Likewise.
15556 (allocate_dynamic_stack_space): Likewise. Strengthen locals
15557 "final_label", "available_label", "space_available" from rtx to
15559 (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
15560 (anti_adjust_stack_and_probe): Likewise.
15562 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15564 * except.h (sjlj_emit_function_exit_after): Strengthen param
15565 "after" from rtx to rtx_insn *. This is only called with
15566 result of get_last_insn (in function.c) so type-change should be
15569 * function.h (struct rtl_eh): Strengthen field "ehr_label" from
15570 rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
15571 to rtx_insn *. These fields are only used from except.c so this
15572 type-change should be self-contained to this patch.
15574 * except.c (emit_to_new_bb_before): Strengthen param "seq" and
15575 local "last" from rtx to rtx_insn *.
15576 (dw2_build_landing_pads): Likewise for local "seq".
15577 (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
15578 (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
15579 rtx to rtx_code_label *. Strengthen locals "fn_begin", "seq" from
15581 (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
15583 (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
15584 (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
15585 (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
15586 referring to an insn. Strengthen local "dispatch_label" from
15587 rtx to rtx_code_label *.
15588 (set_nothrow_function_flags): Strengthen local "insn" from rtx to
15590 (expand_eh_return): Strengthen local "around_label" from
15591 rtx to rtx_code_label *.
15592 (convert_to_eh_region_ranges): Strengthen locals "iter",
15593 "last_action_insn", "first_no_action_insn",
15594 "first_no_action_insn_before_switch",
15595 "last_no_action_insn_before_switch", from rtx to rtx_insn *.
15597 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15599 * dwarf2out.c (last_var_location_insn): Strengthen this variable
15600 from rtx to rtx_insn *.
15601 (cached_next_real_insn): Likewise.
15602 (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
15603 working with insns.
15604 (dwarf2out_var_location): Strengthen locals "next_real",
15605 "next_note", "expected_next_loc_note", "last_start", "insn" from
15608 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15610 * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
15611 from rtx to rtx_insn *.
15612 (create_pseudo_cfg): Likewise for local "insn".
15614 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15616 * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
15617 from rtx to rtx_insn *.
15618 (df_bb_regno_last_def_find): Likewise.
15620 * df-problems.c (df_rd_bb_local_compute): Likewise.
15621 (df_lr_bb_local_compute): Likewise.
15622 (df_live_bb_local_compute): Likewise.
15623 (df_chain_remove_problem): Likewise.
15624 (df_chain_create_bb): Likewise.
15625 (df_word_lr_bb_local_compute): Likewise.
15626 (df_remove_dead_eq_notes): Likewise for param "insn".
15627 (df_note_bb_compute): Likewise for local "insn".
15628 (simulate_backwards_to_point): Likewise.
15629 (df_md_bb_local_compute): Likewise.
15631 * df-scan.c (df_scan_free_bb_info): Likewise.
15632 (df_scan_start_dump): Likewise.
15633 (df_scan_start_block): Likewise.
15634 (df_install_ref_incremental): Likewise for local "insn".
15635 (df_insn_rescan_all): Likewise.
15636 (df_reorganize_refs_by_reg_by_insn): Likewise.
15637 (df_reorganize_refs_by_insn_bb): Likewise.
15638 (df_recompute_luids): Likewise.
15639 (df_bb_refs_record): Likewise.
15640 (df_update_entry_exit_and_calls): Likewise.
15641 (df_bb_verify): Likewise.
15643 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15645 * ddg.h (struct ddg_node): Strengthen fields "insn" and
15646 "first_note" from rtx to rtx_insn *.
15647 (get_node_of_insn): Likewise for param 2 "insn".
15648 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
15650 * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
15652 (mem_write_insn_p): Likewise.
15653 (mem_access_insn_p): Likewise.
15654 (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
15655 (def_has_ccmode_p): Likewise for param "insn".
15656 (add_cross_iteration_register_deps): Likewise for locals
15657 "def_insn" and "use_insn".
15658 (insns_may_alias_p): Likewise for params "insn1" and "insn2".
15659 (build_intra_loop_deps): Likewise for local "src_insn".
15660 (create_ddg): Strengthen locals "insn" and "first_note" from rtx
15662 (get_node_of_insn): Likewise for param "insn".
15664 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15666 * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
15667 (deletable_insn_p): Strengthen param "insn" from rtx to
15668 rtx_insn *. Add checked cast to rtx_call_insn when invoking
15669 find_call_stack_args, since this is guarded by CALL_P (insn).
15670 (marked_insn_p): Strengthen param "insn" from rtx to
15672 (mark_insn): Likewise. Add checked cast to rtx_call_insn when
15673 invoking find_call_stack_args, since this is guarded by
15675 (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
15676 rtx_insn *; we know this is an insn since this was called by
15677 mark_nonreg_stores.
15678 (mark_nonreg_stores_2): Likewise.
15679 (mark_nonreg_stores): Strengthen param "insn" from rtx to
15681 (find_call_stack_args): Strengthen param "call_insn" from rtx to
15682 rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
15684 (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
15685 from rtx to rtx_insn *.
15686 (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
15687 "next", "ref_insn".
15688 (delete_unmarked_insns): Likewise for locals "insn", "next".
15689 (prescan_insns_for_dce): Likewise for locals "insn", "prev".
15690 (mark_reg_dependencies): Likewise for param "insn".
15691 (rest_of_handle_ud_dce): Likewise for local "insn".
15692 (word_dce_process_block): Likewise.
15693 (dce_process_block): Likewise.
15695 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15697 * cse.c (struct qty_table_elem): Strengthen field "const_insn"
15698 from rtx to rtx_insn *.
15699 (struct change_cc_mode_args): Likewise for field "insn".
15700 (this_insn): Strengthen from rtx to rtx_insn *.
15701 (make_new_qty): Replace use of NULL_RTX with NULL when dealing
15703 (validate_canon_reg): Strengthen param "insn" from rtx to
15705 (canon_reg): Likewise.
15706 (fold_rtx): Likewise. Replace use of NULL_RTX with NULL when
15708 (record_jump_equiv): Strengthen param "insn" from rtx to
15710 (try_back_substitute_reg): Likewise, also for locals "prev",
15712 (find_sets_in_insn): Likewise for param "insn".
15713 (canonicalize_insn): Likewise.
15714 (cse_insn): Likewise. Add a checked cast.
15715 (invalidate_from_clobbers): Likewise for param "insn".
15716 (invalidate_from_sets_and_clobbers): Likewise.
15717 (cse_process_notes_1): Replace use of NULL_RTX with NULL when
15719 (cse_prescan_path): Strengthen local "insn" from rtx to
15721 (cse_extended_basic_block): Likewise for locals "insn" and
15723 (cse_main): Likewise for param "f".
15724 (check_for_label_ref): Likewise for local "insn".
15725 (set_live_p): Likewise for second param ("insn").
15726 (insn_live_p): Likewise for first param ("insn") and for local
15728 (cse_change_cc_mode_insn): Likewise for first param "insn".
15729 (cse_change_cc_mode_insns): Likewise for first and second params
15731 (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
15733 (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
15736 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
15737 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15738 Anna Tikhonova <anna.tikhonova@intel.com>
15739 Ilya Tocar <ilya.tocar@intel.com>
15740 Andrey Turetskiy <andrey.turetskiy@intel.com>
15741 Ilya Verbin <ilya.verbin@intel.com>
15742 Kirill Yukhin <kirill.yukhin@intel.com>
15743 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15745 * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
15747 * config/i386/sse.md
15748 (define_mode_iterator VI248_AVX2): Delete.
15749 (define_mode_iterator VI2_AVX2_AVX512BW): New.
15750 (define_mode_iterator VI48_AVX2): Ditto.
15751 (define_insn <shift_insn><mode>3): Delete.
15752 (define_insn "<shift_insn><mode>3<mask_name>" with
15753 VI2_AVX2_AVX512BW): New.
15754 (define_insn "<shift_insn><mode>3<mask_name>" with
15757 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
15758 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15759 Anna Tikhonova <anna.tikhonova@intel.com>
15760 Ilya Tocar <ilya.tocar@intel.com>
15761 Andrey Turetskiy <andrey.turetskiy@intel.com>
15762 Ilya Verbin <ilya.verbin@intel.com>
15763 Kirill Yukhin <kirill.yukhin@intel.com>
15764 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15766 * config/i386/sse.md
15767 (define_mode_iterator VI4F_BRCST32x2): New.
15768 (define_mode_attr 64x2_mode): Ditto.
15769 (define_mode_attr 32x2mode): Ditto.
15770 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
15771 with VI4F_BRCST32x2): Ditto.
15772 (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
15773 with V16FI mode iterator): Ditto.
15774 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
15775 with V16FI): Ditto.
15776 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
15777 with VI8F_BRCST64x2): Ditto.
15779 2014-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
15780 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15781 Anna Tikhonova <anna.tikhonova@intel.com>
15782 Ilya Tocar <ilya.tocar@intel.com>
15783 Andrey Turetskiy <andrey.turetskiy@intel.com>
15784 Ilya Verbin <ilya.verbin@intel.com>
15785 Kirill Yukhin <kirill.yukhin@intel.com>
15786 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15788 * config/i386/sse.md
15789 (define_mode_iterator VI8_AVX512VL): New.
15790 (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
15792 2014-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
15794 * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
15795 (define_mode_iterator V48_AVX512VL): New.
15796 (define_mode_iterator V12_AVX512VL): Ditto.
15797 (define_insn <avx512>_load<mode>_mask): Split into two similar
15798 patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
15799 Refactor output template.
15800 (define_insn "<avx512>_store<mode>_mask"): Ditto.
15802 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15804 * cprop.c (struct occr): Strengthen field "insn" from rtx to
15806 (reg_available_p): Likewise for param "insn".
15807 (insert_set_in_table): Likewise.
15808 (hash_scan_set): Likewise.
15809 (hash_scan_insn): Likewise.
15810 (make_set_regs_unavailable): Likewise.
15811 (compute_hash_table_work): Likewise for local "insn".
15812 (reg_not_set_p): Strengthen param "insn" from const_rtx to
15814 (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
15815 (try_replace_reg): Likewise.
15816 (find_avail_set): Likewise.
15817 (cprop_jump): Likewise for params "setcc", "jump".
15818 (constprop_register): Likewise for param "insn".
15819 (cprop_insn): Likewise.
15820 (do_local_cprop): Likewise.
15821 (local_cprop_pass): Likewise for local "insn".
15822 (bypass_block): Likewise for params "setcc" and "jump".
15823 (bypass_conditional_jumps): Likewise for locals "setcc" and
15825 (one_cprop_pass): Likewise for local "insn".
15827 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15829 * compare-elim.c (struct comparison_use): Strengthen field "insn"
15830 from rtx to rtx_insn *.
15831 (struct comparison): Likewise, also for field "prev_clobber".
15832 (conforming_compare): Likewise for param "insn".
15833 (arithmetic_flags_clobber_p): Likewise.
15834 (find_flags_uses_in_insn): Likewise.
15835 (find_comparison_dom_walker::before_dom_children): Likewise for
15836 locals "insn", "next", "last_clobber".
15837 (try_eliminate_compare): Likewise for locals "insn", "bb_head".
15839 2014-08-22 David Malcolm <dmalcolm@redhat.com>
15841 * combine-stack-adj.c (struct csa_reflist): Strengthen field
15842 "insn" from rtx to rtx_insn *.
15843 (single_set_for_csa): Likewise for param "insn".
15844 (record_one_stack_ref): Likewise.
15845 (try_apply_stack_adjustment): Likewise.
15846 (struct record_stack_refs_data): Likewise for field "insn".
15847 (maybe_move_args_size_note): Likewise for params "last" and "insn".
15848 (prev_active_insn_bb): Likewise for return type and param "insn".
15849 (next_active_insn_bb): Likewise.
15850 (force_move_args_size_note): Likewise for params "prev" and "last"
15851 and locals "test", "next_candidate", "prev_candidate".
15852 (combine_stack_adjustments_for_block): Strengthen locals
15853 "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
15856 2014-08-21 David Malcolm <dmalcolm@redhat.com>
15858 * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
15859 (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
15860 (subst_insn): Likewise for this variable.
15861 (added_links_insn): Likewise.
15862 (struct insn_link): Likewise for field "insn".
15863 (alloc_insn_link): Likewise for param "insn".
15864 (struct undobuf): Likewise for field "other_insn".
15865 (find_single_use): Likewise for param "insn" and local "next".
15866 (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
15867 (delete_noop_moves): Likewise for locals "insn", "next".
15868 (create_log_links): Likewise for locals "insn", "use_insn".
15869 Strengthen local "next_use" from rtx * to rtx_insn **.
15870 (insn_a_feeds_b): Likewise for params "a", "b".
15871 (combine_instructions): Likewise for param "f" and locals "insn",
15872 "next", "prev", "first", "last_combined_insn", "link", "link1",
15873 "temp". Replace use of NULL_RTX with NULL when referring to
15875 (setup_incoming_promotions): Likewise for param "first"
15876 (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
15877 (can_combine_p): Likewise for params "insn", "i3", "pred",
15878 "pred2", "succ", "succ2" and for local "p".
15879 (combinable_i3pat): Likewise for param "i3".
15880 (cant_combine_insn_p): Likewise for param "insn".
15881 (likely_spilled_retval_p): Likewise.
15882 (adjust_for_new_dest): Likewise.
15883 (update_cfg_for_uncondjump): Likewise, also for local "insn".
15884 (try_combine): Likewise for return type and for params "i3", "i2",
15885 "i1", "i0", "last_combined_insn", and for locals "insn",
15886 "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
15887 "i0_insn". Eliminate local "tem" in favor of new locals
15888 "tem_note" and "tem_insn", the latter being an rtx_insn *. Add a
15889 checked cast for now to rtx_insn * on the return type of
15890 gen_rtx_INSN. Replace use of NULL_RTX with NULL when referring to
15892 (find_split_point): Strengthen param "insn" from rtx to
15894 (simplify_set): Likewise for local "other_insn".
15895 (recog_for_combine): Likewise for param "insn".
15896 (record_value_for_reg): Likewise.
15897 (record_dead_and_set_regs_1): Likewise for local
15898 "record_dead_insn".
15899 (record_dead_and_set_regs): Likewise for param "insn".
15900 (record_promoted_value): Likewise.
15901 (check_promoted_subreg): Likewise.
15902 (get_last_value_validate): Likewise.
15903 (reg_dead_at_p): Likewise.
15904 (move_deaths): Likewise for param "to_insn".
15905 (distribute_notes): Likewise for params "from_insn", "i3", "i2"
15906 and locals "place", "place2", "cc0_setter". Eliminate local "tem
15907 in favor of new locals "tem_note" and "tem_insn", the latter being
15909 (distribute_links): Strengthen locals "place", "insn" from rtx to
15912 2014-08-21 David Malcolm <dmalcolm@redhat.com>
15914 * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
15916 (can_delete_label_p): Require a const rtx_code_label * rather than
15918 (delete_insn): Add checked cast to rtx_code_label * when we know
15919 we're dealing with LABEL_P (insn). Strengthen local "bb_note" from
15921 (delete_insn_chain): Strengthen locals "prev" and "current" from
15922 rtx to rtx_insn *. Add a checked cast when assigning from
15923 "finish" (strengthening the params will come later). Add a
15924 checked cast to rtx_note * in region where we know
15926 (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
15928 (compute_bb_for_insn): Likewise.
15929 (free_bb_for_insn): Likewise for local "insn".
15930 (compute_bb_for_insn): Likewise.
15931 (update_bb_for_insn_chain): Strengthen params "begin", "end" and
15932 local "insn" from rtx to rtx_insn *
15933 (flow_active_insn_p): Require a const rtx_insn * rather than a
15935 (contains_no_active_insn_p): Strengthen local "insn" from rtx to
15937 (can_fallthru): Likewise for locals "insn" and "insn2".
15938 (bb_note): Likewise for local "note".
15939 (first_insn_after_basic_block_note): Likewise for local "note" and
15941 (rtl_split_block): Likewise for locals "insn" and "next".
15942 (unique_locus_on_edge_between_p): Likewise for locals "insn" and
15944 (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
15945 "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
15947 (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
15948 them), "kill_from", "barrier", "new_insn".
15949 (patch_jump_insn): Likewise for params "insn", "old_label".
15950 (redirect_branch_edge): Likewise for locals "old_label", "insn".
15951 (force_nonfallthru_and_redirect): Likewise for locals "insn",
15952 "old_label", "new_label".
15953 (rtl_tidy_fallthru_edge): Likewise for local "q".
15954 (rtl_split_edge): Likewise for locals "before", "last".
15955 (commit_one_edge_insertion): Likewise for locals "before",
15956 "after", "insns", "tmp", "last", adding a checked cast where
15957 currently necessary.
15958 (commit_edge_insertions): Likewise.
15959 (rtl_dump_bb): Likewise for locals "insn", "last".
15960 (print_rtl_with_bb): Likewise for local "x".
15961 (rtl_verify_bb_insns): Likewise for local "x".
15962 (rtl_verify_bb_pointers): Likewise for local "insn".
15963 (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
15965 (rtl_verify_fallthru): Likewise for local "insn".
15966 (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
15967 (purge_dead_edges): Likewise for local "insn".
15968 (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
15969 (skip_insns_after_block): Likewise for return type and for locals
15970 "insn", "last_insn", "next_head", "prev".
15971 (record_effective_endpoints): Likewise for locals "next_insn",
15973 (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
15974 (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
15975 (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
15976 (duplicate_insn_chain): For now, add checked cast from rtx to
15977 rtx_insn * when returning insn.
15978 (cfg_layout_duplicate_bb): Likewise for local "insn".
15979 (cfg_layout_delete_block): Likewise for locals "insn", "next",
15980 "prev", "remaints".
15981 (cfg_layout_merge_blocks): Likewise for local "insn", "last".
15982 (rtl_block_empty_p): Likewise.
15983 (rtl_split_block_before_cond_jump): Likewise for locals "insn",
15984 "split_point", "last".
15985 (rtl_block_ends_with_call_p): Likewise for local "insn".
15986 (need_fake_edge_p): Strengthen param "insn" from const_rtx to
15988 (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
15989 "split_at_insn" from rtx to rtx_insn *.
15990 (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
15991 (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
15992 to const rtx_insn *.
15993 (rtl_account_profile_record): Likewise.
15995 2014-08-21 David Malcolm <dmalcolm@redhat.com>
15997 * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
15999 (average_num_loop_insns): Likewise.
16000 (init_set_costs): Likewise for local "seq".
16001 (seq_cost): Likewise for param "seq", from const_rtx to const
16004 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16006 * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
16009 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16011 * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
16012 "f1" and "f2" from rtx * to rtx_insn **.
16013 (flow_find_head_matching_sequence): Likewise.
16015 * cfgcleanup.c (try_simplify_condjump): Strengthen local
16016 "cbranch_insn" from rtx to rtx_insn *.
16017 (thread_jump): Likewise for local "insn".
16018 (try_forward_edges): Likewise for local "last".
16019 (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
16020 (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
16022 (can_replace_by): Likewise for params "i1", "i2".
16023 (old_insns_match_p): Likewise.
16024 (merge_notes): Likewise.
16025 (walk_to_nondebug_insn): Likewise for param "i1".
16026 (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
16027 to rtx_insn **. Strengthen locals "i1", "i2", "last1", "last2",
16028 "afterlast1", "afterlast2" from rtx to rtx_insn *.
16029 (flow_find_head_matching_sequence): Strengthen params "f1" and
16030 "f2" from rtx * to rtx_insn **. Strengthen locals "i1", "i2",
16031 "last1", "last2", "beforelast1", "beforelast2" from rtx to
16033 (outgoing_edges_match): Likewise for locals "last1", "last2".
16034 (try_crossjump_to_edge): Likewise for local "insn".
16035 Replace call to for_each_rtx with for_each_rtx_in_insn.
16037 (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
16038 (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
16039 "e0_last", "e_last", "head", "curr", "insn". Strengthen locals
16040 "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
16041 (try_optimize_cfg): Strengthen local "last" from rtx to
16043 (delete_dead_jumptables): Likewise for locals "insn", "next",
16046 * ifcvt.c (cond_exec_process_if_block): Likewise for locals
16047 "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
16048 "rtx else_first_tail", to reflect the basic-block.h changes above.
16050 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16052 * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
16054 (purge_dead_tablejump_edges): Likewise.
16055 (find_bb_boundaries): Likewise for locals "insn", "end",
16056 "flow_transfer_insn".
16058 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16060 * caller-save.c (save_call_clobbered_regs): Strengthen locals
16061 "ins" and "prev" from rtx to rtx_insn *.
16063 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16065 * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
16067 (internal_arg_pointer_exp_state): Likewise for field "scan_start".
16068 (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
16070 (load_register_parameters): Likewise for local "before_arg".
16071 (check_sibcall_argument_overlap): Likewise for param "insn".
16072 (expand_call): Likewise for locals "normal_call_insns",
16073 "tail_call_insns", "insns", "before_call", "after_args",
16074 "before_arg", "last", "prev". Strengthen one of the "last" from
16075 rtx to rtx_call_insn *.
16076 (fixup_tail_calls): Strengthen local "insn" from rtx to
16078 (emit_library_call_value_1): Likewise for locals "before_call" and
16081 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16083 * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
16084 and "last" from rtx to rtx_insn *.
16085 (expand_builtin_nonlocal_goto): Likewise for local "insn".
16086 (expand_builtin_apply): Strengthen local "call_insn" from rtx to
16088 (expand_errno_check): Strengthen local "lab" from rtx to
16090 (expand_builtin_mathfn): Strengthen local "insns" from rtx to
16092 (expand_builtin_mathfn_2): Likewise.
16093 (expand_builtin_mathfn_ternary): Likewise.
16094 (expand_builtin_mathfn_3): Likewise.
16095 (expand_builtin_interclass_mathfn): Likewise for local "last".
16096 (expand_builtin_int_roundingfn): Likewise for local "insns".
16097 (expand_builtin_int_roundingfn_2): Likewise.
16098 (expand_builtin_strlen): Likewise for local "before_strlen".
16099 (expand_builtin_strncmp): Likewise for local "seq".
16100 (expand_builtin_signbit): Likewise for local "last".
16101 (expand_builtin_atomic_compare_exchange): Strengthen local "label"
16102 from rtx to rtx_code_label *.
16103 (expand_stack_restore): Strengthen local "prev" from rtx to
16106 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16108 * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
16110 (struct btr_def_s): Likewise.
16111 (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
16113 (add_btr_def): Likewise.
16114 (new_btr_user): Likewise.
16115 (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
16117 (link_btr_uses): Likewise.
16118 (move_btr_def): Likewise for locals "insp", "old_insn",
16119 "new_insn". Add checked cast to rtx_insn * for now on result of
16121 (can_move_up): Strengthen param "insn" from const_rtx to
16124 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16126 * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
16128 (get_uncond_jump_length): Likewise for locals "label", "jump".
16129 (fix_up_crossing_landing_pad): Likewise for locals "new_label",
16131 (add_labels_and_missing_jumps): Likewise for local "new_jump".
16132 (fix_up_fall_thru_edges): Likewise for local "old_jump".
16133 (find_jump_block): Likewise for local "insn".
16134 (fix_crossing_conditional_branches): Likewise for locals
16135 "old_jump", "new_jump".
16136 (fix_crossing_unconditional_branches): Likewise for locals
16137 "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
16138 (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
16140 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16142 * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
16144 (struct mem_insn): Likewise for field "insn".
16145 (reg_next_use): Strengthen from rtx * to rtx_insn **.
16146 (reg_next_inc_use): Likewise.
16147 (reg_next_def): Likewise.
16148 (move_dead_notes): Strengthen params "to_insn" and "from_insn"
16149 from rtx to rtx_insn *.
16150 (move_insn_before): Likewise for param "next_insn" and local "insns".
16151 (attempt_change): Likewise for local "mov_insn".
16152 (try_merge): Likewise for param "last_insn".
16153 (get_next_ref): Likewise for return type and local "insn".
16154 Strengthen param "next_array" from rtx * to rtx_insn **.
16155 (parse_add_or_inc): Strengthen param "insn" from rtx to
16157 (find_inc): Likewise for locals "insn" and "other_insn" (three of
16159 (merge_in_block): Likewise for locals "insn", "curr",
16161 (pass_inc_dec::execute): Update allocations of the arrays to
16162 reflect the stronger types.
16164 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16166 * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
16167 and "jump" from rtx to rtx_insn *. Strengthen local "top_label"
16168 from rtx to rtx_code_label *.
16170 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16172 * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
16175 2014-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
16177 * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
16178 generated a warning and prevented bootstrapping the compiler.
16180 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16182 * rtl.h (delete_related_insns): Strengthen return type from rtx to
16185 * jump.c (delete_related_insns): Likewise, also for locals "next"
16188 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16190 * genautomata.c (output_internal_insn_latency_func): When writing
16191 the function "internal_insn_latency" to insn-automata.c,
16192 strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
16193 allowing the optional guard function of (define_bypass) clauses to
16194 expect a pair of rtx_insn *, rather than a pair of rtx.
16195 (output_insn_latency_func): When writing the function
16196 "insn_latency", add an "uncast_" prefix to params "insn" and
16197 "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
16198 using checked casts from the params, thus enabling the above
16199 change to the generated "internal_insn_latency" function.
16201 2014-08-21 Jan Hubicka <hubicka@ucw.cz>
16203 PR tree-optimization/62091
16204 * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
16205 handle correctly arrays.
16206 (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
16207 inheritance binfos.
16208 (record_known_type): Walk into inner type.
16209 (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
16210 condition on no type changes.
16212 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16214 * genattrtab.c (write_attr_get): Within the generated get_attr_
16215 functions, rename param "insn" to "uncast_insn" and reintroduce
16216 "insn" as an local rtx_insn * using a checked cast, so that "insn"
16217 is an rtx_insn * within insn-attrtab.c
16219 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16221 * output.h (peephole): Strengthen return type from rtx to
16223 * rtl.h (delete_for_peephole): Likewise for both params.
16224 * genpeep.c (main): In generated "peephole" function, strengthen
16225 return type and local "insn" from rtx to rtx_insn *. For now,
16226 rename param "ins1" to "uncast_ins1", adding "ins1" back as an
16227 rtx_insn *, with a checked cast.
16228 * jump.c (delete_for_peephole): Strengthen params "from", "to" and
16229 locals "insn", "next", "prev" from rtx to rtx_insn *.
16231 2014-08-21 Marc Glisse <marc.glisse@inria.fr>
16233 PR tree-optimization/62112
16234 * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
16235 * gimple-iterator.h (gsi_replace): Return bool.
16236 * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
16237 moved from ref_may_alias_global_p.
16238 (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
16240 (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
16241 (stmt_kills_ref_p_1): Rename...
16242 (stmt_kills_ref_p): ... to this.
16243 * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
16244 stmt_kills_ref_p): Declare.
16245 * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
16246 Move the self-assignment case...
16247 (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
16249 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16251 * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
16253 * emit-rtl.c (try_split): Likewise, also for locals "before" and
16254 "after". For now, don't strengthen param "trial", which requires
16255 adding checked casts when returning it.
16257 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16259 * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
16260 "label" from rtx to rtx_code_label *. Strengthen param 1 of
16261 "var_location" hook from rtx to rtx_insn *.
16262 (debug_nothing_rtx): Delete in favor of...
16263 (debug_nothing_rtx_code_label): New prototype.
16264 (debug_nothing_rtx_rtx): Delete unused prototype.
16265 (debug_nothing_rtx_insn): New prototype.
16267 * final.c (final_scan_insn): Add checked cast to rtx_insn * when
16268 invoking debug_hooks->var_location (in two places, one in a NOTE
16269 case of a switch statement, the other guarded by a CALL_P
16270 conditional. Add checked cast to rtx_code_label * when invoking
16271 debug_hooks->label (within CODE_LABEL case of switch statement).
16273 * dbxout.c (dbx_debug_hooks): Update "label" hook from
16274 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
16275 "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
16276 (xcoff_debug_hooks): Likewise.
16277 * debug.c (do_nothing_debug_hooks): Likewise.
16278 (debug_nothing_rtx): Delete in favor of...
16279 (debug_nothing_rtx_insn): New function.
16280 (debug_nothing_rtx_rtx): Delete unused function.
16281 (debug_nothing_rtx_code_label): New function.
16282 * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
16283 debug_nothing_rtx to debug_nothing_rtx_code_label.
16284 (dwarf2out_var_location): Strengthen param "loc_note" from rtx
16286 * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
16287 debug_nothing_rtx to debug_nothing_rtx_insn.
16288 (sdbout_label): Strengthen param "insn" from rtx to
16290 * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
16291 debug_nothing_rtx to debug_nothing_rtx_code_label. Update
16292 "var_location" hook from debug_nothing_rtx to
16293 debug_nothing_rtx_insn.
16295 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16297 * recog.h (insn_output_fn): Update this function typedef to match
16298 the changes below to the generated output functions, strengthening
16299 the 2nd param from rtx to rtx_insn *.
16301 * final.c (get_insn_template): Add a checked cast to rtx_insn * on
16302 insn when invoking an output function, to match the new signature
16303 of insn_output_fn with a stronger second param.
16305 * genconditions.c (write_header): In the generated code for
16306 gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
16307 to match the other changes in this patch.
16309 * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
16310 the generated "gen_" functions from rtx to rtx_insn * within their
16313 * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
16314 the subfunctions within the generated "recog_", "split", "peephole2"
16315 function trees from rtx to rtx_insn *. For now, the top-level
16316 generated functions ("recog", "split", "peephole2") continue to
16317 take a plain rtx for "insn", to avoid introducing dependencies on
16318 other patches. Rename this 2nd param from "insn" to
16319 "uncast_insn", and reintroduce "insn" as a local variable of type
16320 rtx_insn *, initialized at the top of the generated function with
16321 a checked cast on "uncast_insn".
16322 (make_insn_sequence): Strengthen the 1st param "curr_insn" of
16323 the generated "gen_" functions from rtx to rtx_insn * within their
16326 * genoutput.c (process_template): Strengthen the 2nd param within
16327 the generated "output_" functions "insn" from rtx to rtx_insn *.
16329 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
16331 * tree-profile.c (tree_profiling): Skip external functions
16332 when doing coverage instrumentation.
16333 * cgraphunit.c (compile): Do not assert that all nodes are reachable.
16335 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16337 * config/rs6000/altivec.h (vec_cpsgn): New #define.
16338 (vec_mergee): Likewise.
16339 (vec_mergeo): Likewise.
16340 (vec_cntlz): Likewise.
16341 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
16342 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
16343 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
16344 VMRGEW, and VMRGOW.
16345 * doc/extend.texi: Document various forms of vec_cpsgn,
16346 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
16347 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
16348 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
16349 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
16350 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
16352 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16354 * config/rs6000/rs6000.c (context.h): New include.
16355 (tree-pass.h): Likewise.
16356 (make_pass_analyze_swaps): New decl.
16357 (rs6000_option_override): Register pass_analyze_swaps.
16358 (swap_web_entry): New subsclass of web_entry_base (df.h).
16359 (special_handling_values): New enum.
16360 (union_defs): New function.
16361 (union_uses): Likewise.
16362 (insn_is_load_p): Likewise.
16363 (insn_is_store_p): Likewise.
16364 (insn_is_swap_p): Likewise.
16365 (rtx_is_swappable_p): Likewise.
16366 (insn_is_swappable_p): Likewise.
16367 (chain_purpose): New enum.
16368 (chain_contains_only_swaps): New function.
16369 (mark_swaps_for_removal): Likewise.
16370 (swap_const_vector_halves): Likewise.
16371 (adjust_subreg_index): Likewise.
16372 (permute_load): Likewise.
16373 (permute_store): Likewise.
16374 (handle_special_swappables): Likewise.
16375 (replace_swap_with_copy): Likewise.
16376 (dump_swap_insn_table): Likewise.
16377 (rs6000_analyze_swaps): Likewise.
16378 (pass_data_analyze_swaps): New pass_data.
16379 (pass_analyze_swaps): New rtl_opt_pass.
16380 (make_pass_analyze_swaps): New function.
16381 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
16383 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16385 * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
16386 type from rtx to rtx_insn *.
16387 (create_copy_of_insn_rtx): Likewise.
16388 * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
16389 (create_copy_of_insn_rtx): Likewise, also for local "res".
16391 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16393 * rtl.h (find_first_parameter_load): Strengthen return type from
16395 * rtlanal.c (find_first_parameter_load): Strengthen return type
16396 from rtx to rtx_insn *. Add checked cast for now, to postpone
16397 strengthening the params.
16399 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
16402 * diagnostic.c: Set default caret.
16403 (diagnostic_show_locus): Use it. Tell pretty-printer that a new
16405 * diagnostic.h (struct diagnostic_context):
16407 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16409 * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
16410 (sel_bb_head): Strengthen return type insn_t (currently just an
16411 rtx) to rtx_insn *.
16412 (sel_bb_end): Likewise.
16414 * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
16415 (sel_bb_head): Strengthen return type and local "head" from
16416 insn_t (currently just an rtx) to rtx_insn *.
16417 (sel_bb_end): Likewise for return type.
16418 (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
16421 2014-08-21 David Malcolm <dmalcolm@redhat.com>
16423 * basic-block.h (get_last_bb_insn): Strengthen return type from
16425 * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
16428 2014-08-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
16431 * diagnostic.c (default_diagnostic_finalizer): Move caret printing
16433 (diagnostic_report_diagnostic): ... from here.
16434 * toplev.c (general_init): Move code to c-family.
16436 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16438 * df.h (web_entry_base): Replace existing struct web_entry with a
16439 new class web_entry_base with only the predecessor member.
16440 (unionfind_root): Remove declaration and move to class member.
16441 (unionfind_union): Remove declaration and move to friend
16443 (union_defs): Remove declaration.
16444 * web.c (web_entry_base::unionfind_root): Modify to be member
16445 function and adjust accessors.
16446 (unionfind_union): Modify to be friend function and adjust
16448 (web_entry): New subclass of web_entry_base containing the reg
16450 (union_match_dups): Modify for struct -> class changes.
16451 (union_defs): Likewise.
16452 (entry_register): Likewise.
16453 (pass_web::execute): Likewise.
16455 2014-08-20 Bill Schmidt <wschmidt@vnet.ibm.com>
16457 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
16458 builtin define __VEC_ELEMENT_REG_ORDER__.
16460 2014-08-20 Martin Jambor <mjambor@suse.cz>
16461 Wei Mi <wmi@google.com>
16464 PR middle-end/61776
16465 * tree-ssa-operands.c (update_stmt_operands): Remove
16466 MODIFIED_NORETURN_CALLS.
16467 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
16468 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
16469 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
16470 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
16471 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
16472 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
16473 (gimple_call_set_ctrl_altering): New func.
16474 (gimple_call_ctrl_altering_p): Ditto.
16475 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
16476 (make_blocks): Use gimple_call_initialize_ctrl_altering.
16477 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
16478 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
16479 remove MODIFIED_NORETURN_CALLS.
16481 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
16483 * coverage.c (coverage_compute_profile_id): Return non-0;
16484 also handle symbols with unique name.
16485 (coverage_end_function): Do not skip DECL_EXTERNAL functions.
16487 2014-08-20 Steve Ellcey <sellcey@mips.com>
16489 PR middle-end/49191
16490 * doc/sourcebuild.texi (non_strict_align): New.
16492 2014-08-20 Jan Hubicka <hubicka@ucw.cz>
16494 * cgraphunit.c (ipa_passes, compile): Reshedule
16495 symtab_remove_unreachable_nodes passes; update comments.
16496 * ipa-inline.c (pass_data_ipa_inline): Do not schedule
16497 TODO_remove_functions before the pass; the functions ought to be
16499 * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
16500 TODO_remove_functions.
16501 * passes.c (pass_data_early_local_passes): Do not schedule function
16503 (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
16505 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
16508 * opts-common.c (set_option): Call diagnostic_classify_diagnostic
16509 before setting the option.
16510 * diagnostic.c (diagnostic_classify_diagnostic): Record
16511 command-line status.
16513 2014-08-20 Richard Biener <rguenther@suse.de>
16516 * tree.c (build_common_tree_nodes): Use make_or_reuse_type
16517 to build uint{16,32,64}_type_node.
16519 2014-08-20 Terry Guo <terry.guo@arm.com>
16521 * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
16522 with immediate_operand.
16524 2014-08-20 David Malcolm <dmalcolm@redhat.com>
16526 * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
16527 "insn" from an as_a to a safe_as_a, for the case when "insn" is
16530 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
16532 PR preprocessor/51303
16533 * incpath.c (remove_duplicates): Use cpp_warning.
16535 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
16539 * doc/options.texi (CPP): Document it.
16540 * doc/invoke.texi (Wvariadic-macros): Fix documentation.
16541 * optc-gen.awk: Handle CPP.
16542 * opth-gen.awk: Likewise.
16544 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16546 * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
16548 (duplicate_insn_chain): Likewise.
16549 * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
16550 rtx_insn *, also for locals "prevfirst" and "nextlast". Add a
16551 checked cast for now (until we can strengthen the params in the
16553 (duplicate_insn_chain): Likewise.
16555 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16557 * rtl.h (next_cc0_user): Strengthen return type from rtx to
16559 (prev_cc0_setter): Likewise.
16561 * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
16562 rtx_insn *, adding checked casts for now as necessary.
16563 (prev_cc0_setter): Likewise.
16565 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16567 * expr.h (emit_move_insn): Strengthen return type from rtx to
16569 (emit_move_insn_1): Likewise.
16570 (emit_move_complex_push): Likewise.
16571 (emit_move_complex_parts): Likewise.
16573 * expr.c (emit_move_via_integer): Strengthen return type from rtx
16574 to rtx_insn *. Replace use of NULL_RTX with NULL when working
16576 (emit_move_complex_push): Strengthen return type from rtx to
16578 (emit_move_complex): Likewise, also for local "ret".
16579 (emit_move_ccmode): Likewise.
16580 (emit_move_multi_word): Likewise for return type and locals
16581 "last_insn", "seq".
16582 (emit_move_insn_1): Likewise for return type and locals "result",
16584 (emit_move_insn): Likewise for return type and local "last_insn".
16585 (compress_float_constant): Likewise.
16587 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16589 * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
16590 from rtx to rtx_insn *.
16592 * rtl.h (emit_insn_before): Likewise.
16593 (emit_insn_before_noloc): Likewise.
16594 (emit_insn_before_setloc): Likewise.
16595 (emit_jump_insn_before): Likewise.
16596 (emit_jump_insn_before_noloc): Likewise.
16597 (emit_jump_insn_before_setloc): Likewise.
16598 (emit_call_insn_before): Likewise.
16599 (emit_call_insn_before_noloc): Likewise.
16600 (emit_call_insn_before_setloc): Likewise.
16601 (emit_debug_insn_before): Likewise.
16602 (emit_debug_insn_before_noloc): Likewise.
16603 (emit_debug_insn_before_setloc): Likewise.
16604 (emit_label_before): Likewise.
16605 (emit_insn_after): Likewise.
16606 (emit_insn_after_noloc): Likewise.
16607 (emit_insn_after_setloc): Likewise.
16608 (emit_jump_insn_after): Likewise.
16609 (emit_jump_insn_after_noloc): Likewise.
16610 (emit_jump_insn_after_setloc): Likewise.
16611 (emit_call_insn_after): Likewise.
16612 (emit_call_insn_after_noloc): Likewise.
16613 (emit_call_insn_after_setloc): Likewise.
16614 (emit_debug_insn_after): Likewise.
16615 (emit_debug_insn_after_noloc): Likewise.
16616 (emit_debug_insn_after_setloc): Likewise.
16617 (emit_label_after): Likewise.
16618 (emit_insn): Likewise.
16619 (emit_debug_insn): Likewise.
16620 (emit_jump_insn): Likewise.
16621 (emit_call_insn): Likewise.
16622 (emit_label): Likewise.
16623 (gen_clobber): Likewise.
16624 (emit_clobber): Likewise.
16625 (gen_use): Likewise.
16626 (emit_use): Likewise.
16629 (emit_barrier_before): Strengthen return type from rtx to
16631 (emit_barrier_after): Likewise.
16632 (emit_barrier): Likewise.
16634 * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type
16635 from rtx to rtx_insn *. Add checked casts for now when converting
16636 "last" from rtx to rtx_insn *.
16637 (emit_insn_before_noloc): Likewise for return type.
16638 (emit_jump_insn_before_noloc): Likewise.
16639 (emit_call_insn_before_noloc): Likewise.
16640 (emit_debug_insn_before_noloc): Likewise.
16641 (emit_barrier_before): Strengthen return type and local "insn"
16642 from rtx to rtx_barrier *.
16643 (emit_label_before): Strengthen return type from rtx to
16644 rtx_insn *. Add checked cast for now when returning param
16645 (emit_pattern_after_noloc): Strengthen return type from rtx to
16646 rtx_insn *. Add checked casts for now when converting "last" from
16648 (emit_insn_after_noloc): Strengthen return type from rtx to
16650 (emit_jump_insn_after_noloc): Likewise.
16651 (emit_call_insn_after_noloc): Likewise.
16652 (emit_debug_insn_after_noloc): Likewise.
16653 (emit_barrier_after): Strengthen return type from rtx to
16655 (emit_label_after): Strengthen return type from rtx to rtx_insn *.
16656 Add checked cast for now when converting "label" from rtx to
16658 (emit_pattern_after_setloc): Strengthen return type from rtx to
16659 rtx_insn *. Add checked casts for now when converting "last" from
16661 (emit_pattern_after): Strengthen return type from rtx to
16663 (emit_insn_after_setloc): Likewise.
16664 (emit_insn_after): Likewise.
16665 (emit_jump_insn_after_setloc): Likewise.
16666 (emit_jump_insn_after): Likewise.
16667 (emit_call_insn_after_setloc): Likewise.
16668 (emit_call_insn_after): Likewise.
16669 (emit_debug_insn_after_setloc): Likewise.
16670 (emit_debug_insn_after): Likewise.
16671 (emit_pattern_before_setloc): Likewise. Add checked casts for now
16672 when converting "last" from rtx to rtx_insn *.
16673 (emit_pattern_before): Strengthen return type from rtx to
16675 (emit_insn_before_setloc): Likewise.
16676 (emit_insn_before): Likewise.
16677 (emit_jump_insn_before_setloc): Likewise.
16678 (emit_jump_insn_before): Likewise.
16679 (emit_call_insn_before_setloc): Likewise.
16680 (emit_call_insn_before): Likewise.
16681 (emit_debug_insn_before_setloc): Likewise.
16682 (emit_debug_insn_before): Likewise.
16683 (emit_insn): Strengthen return type and locals "last", "insn",
16684 "next" from rtx to rtx_insn *. Add checked cast to rtx_insn
16685 within cases where we know we have an insn.
16686 (emit_debug_insn): Likewise.
16687 (emit_jump_insn): Likewise.
16688 (emit_call_insn): Strengthen return type and local "insn" from rtx
16690 (emit_label): Strengthen return type from rtx to rtx_insn *. Add
16691 a checked cast to rtx_insn * for now on "label".
16692 (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
16693 (emit_clobber): Strengthen return type from rtx to rtx_insn *.
16694 (emit_use): Likewise.
16695 (gen_use): Likewise, also for local "seq".
16696 (emit): Likewise for return type and local "insn".
16697 (rtx_insn): Likewise for return type and local "new_rtx".
16699 * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
16700 from rtx to rtx_barrier *.
16702 * config/sh/sh.c (output_stack_adjust): Since emit_insn has
16703 changed return type from rtx to rtx_insn *, we must update
16704 "emit_fn" type, and this in turn means updating...
16705 (frame_insn): ...this. Strengthen return type from rtx to
16706 rtx_insn *. Introduce a new local "insn" of the appropriate type.
16708 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16710 * emit-rtl.c (emit_jump_table_data): Strengthen return type from
16711 rtx to rtx_jump_table_data *. Also for local.
16712 * rtl.h (emit_jump_table_data): Likewise.
16714 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16716 * basic-block.h (create_basic_block_structure): Strengthen third
16717 param "bb_note" from rtx to rtx_note *.
16718 * rtl.h (emit_note_before): Strengthen return type from rtx to
16720 (emit_note_after): Likewise.
16721 (emit_note): Likewise.
16722 (emit_note_copy): Likewise. Also, strengthen param similarly.
16723 * function.h (struct rtl_data): Strengthen field
16724 "x_stack_check_probe_note" from rtx to rtx_note *.
16726 * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
16727 from rtx to rtx_note *.
16728 * cfgrtl.c (create_basic_block_structure): Strengthen third param
16729 "bb_note" from rtx to rtx_note *.
16730 (duplicate_insn_chain): Likewise for local "last". Add a checked cast
16731 when calling emit_note_copy.
16732 * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
16734 (emit_note_after): Likewise.
16735 (emit_note_before): Likewise.
16736 (emit_note_copy): Likewise. Also, strengthen param similarly.
16737 (emit_note): Likewise.
16738 * except.c (emit_note_eh_region_end): Likewise for return type.
16739 Strengthen local "next" from rtx to rtx_insn *.
16740 (convert_to_eh_region_ranges): Strengthen local "note"
16741 from rtx to rtx_note *.
16742 * final.c (change_scope): Likewise.
16743 (reemit_insn_block_notes): Likewise, for both locals named "note".
16744 Also, strengthen local "insn" from rtx to rtx_insn *.
16745 * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
16747 * reg-stack.c (compensate_edge): Likewise for local "after". Also,
16748 strengthen local "seq" from rtx to rtx_insn *.
16749 * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
16751 * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
16753 (get_bb_note_from_pool): Strengthen return type from rtx to
16755 (sel_create_basic_block): Strengthen local "new_bb_note" from
16756 insn_t to rtx_note *.
16757 * var-tracking.c (emit_note_insn_var_location): Strengthen local
16758 "note" from rtx to rtx_note *.
16759 (emit_notes_in_bb): Likewise.
16761 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16763 * function.h (struct rtl_data): Strengthen field
16764 "x_parm_birth_insn" from rtx to rtx_insn *.
16765 * function.c (struct assign_parm_data_all): Strengthen fields
16766 "first_conversion_insn" and "last_conversion_insn" from rtx to
16769 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16771 * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
16772 to rtx_insn *; also for local "var_end_seq".
16773 (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
16774 (maybe_cleanup_end_of_block): Likewise for param "last" and local
16776 (expand_gimple_cond): Likewise for locals "last2" and "last".
16777 (mark_transaction_restart_calls): Likewise for local "insn".
16778 (expand_gimple_stmt): Likewise for return type and locals "last"
16780 (expand_gimple_tailcall): Likewise for locals "last2" and "last".
16781 (avoid_complex_debug_insns): Likewise for param "insn".
16782 (expand_debug_locations): Likewise for locals "insn", "last",
16783 "prev_insn" and "insn2".
16784 (expand_gimple_basic_block): Likewise for local "last".
16785 (construct_exit_block): Likewise for locals "head", "end",
16787 (pass_expand::execute): Likewise for locals "var_seq",
16788 "var_ret_seq", "next".
16790 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16792 * asan.h (asan_emit_stack_protection): Strengthen return type from
16794 * asan.c (asan_emit_stack_protection): Likewise. Add local
16795 "insns" to hold the return value.
16797 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16799 * basic-block.h (bb_note): Strengthen return type from rtx to
16801 * sched-int.h (bb_note): Likewise.
16802 * cfgrtl.c (bb_note): Likewise. Add a checked cast to rtx_note *.
16804 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16806 * rtl.h (make_insn_raw): Strengthen return type from rtx to
16809 * emit-rtl.c (make_insn_raw): Strengthen return type and local
16810 "insn" from rtx to rtx_insn *.
16811 (make_debug_insn_raw): Strengthen return type from rtx to
16812 rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
16813 (make_jump_insn_raw): Strengthen return type from rtx to
16814 rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
16815 (make_call_insn_raw): Strengthen return type from rtx to
16816 rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
16817 (emit_pattern_before_noloc): Strengthen return type of "make_raw"
16818 callback from rtx to rtx_insn *; likewise for local "insn" and
16819 "next", adding a checked cast to rtx_insn in the relevant cases of
16820 the switch statement.
16821 (emit_pattern_after_noloc): Strengthen return type of "make_raw"
16822 callback from rtx to rtx_insn *.
16823 (emit_pattern_after_setloc): Likewise.
16824 (emit_pattern_after): Likewise.
16825 (emit_pattern_before_setloc): Likewise.
16826 (emit_pattern_before): Likewise.
16828 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16830 * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
16832 * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
16833 accepting an rtx_insn *.
16834 (last_call_insn): Strengthen return type from rtx to
16837 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16839 * rtl.h (delete_trivially_dead_insns): Strengthen initial param
16840 "insns" from rtx to rtx_insn *.
16841 * cse.c (delete_trivially_dead_insns): Likewise, also do it for
16842 locals "insn" and "prev".
16844 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16846 * rtl.h (tablejump_p): Strengthen third param from rtx * to
16847 rtx_jump_table_data **.
16849 * cfgbuild.c (make_edges): Introduce local "table", using it in
16850 place of "tmp" for jump table data.
16851 (find_bb_boundaries): Strengthen local "table" from rtx to
16852 rtx_jump_table_data *.
16853 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
16854 (outgoing_edges_match): Likewise for locals "table1" and "table2".
16855 (try_crossjump_to_edge): Likewise.
16856 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
16858 (patch_jump_insn): Introduce local "table", using it in place of
16859 "tmp" for jump table data.
16860 (force_nonfallthru_and_redirect): Introduce local "table", so that
16861 call to tablejump_p can receive an rtx_jump_table_data **. Update
16862 logic around the call to overwrite "note" appropriately if
16863 tablejump_p returns non-zero.
16864 (get_last_bb_insn): Introduce local "table", using it in place of
16865 "tmp" for jump table data.
16866 * dwarf2cfi.c (create_trace_edges): Likewise.
16868 * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
16869 from rtx to rtx_jump_table_data *.
16870 (create_fix_barrier): Strengthen local "tmp" from rtx to
16871 rtx_jump_table_data *.
16872 (arm_reorg): Likewise for local "table".
16874 * config/s390/s390.c (s390_chunkify_start): Likewise.
16876 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
16878 * jump.c (delete_related_insns): Strengthen local "lab_next" from
16879 rtx to rtx_jump_table_data *.
16881 * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
16882 rtx_jump_table_data **. Add a checked cast when writing through
16883 the pointer: we know there that local "table" is non-NULL and that
16884 JUMP_TABLE_DATA_P (table) holds.
16885 (label_is_jump_target_p): Introduce local "table", using it in
16886 place of "tmp" for jump table data.
16888 2014-08-19 Marek Polacek <polacek@redhat.com>
16891 * doc/invoke.texi: Document -Wbool-compare.
16893 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16895 * rtl.h (entry_of_function): Strengthen return type from rtx to
16897 * cfgrtl.c (entry_of_function): Likewise.
16899 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16901 * emit-rtl.h (get_insns): Strengthen return type from rtx to
16902 rtx_insn *, adding a checked cast for now.
16903 (get_last_insn): Likewise.
16905 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16907 * rtl.h (gen_label_rtx): Strengthen return type from rtx to
16910 * emit-rtl.c (gen_label_rtx): Likewise.
16912 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16914 * rtl.h (previous_insn): Strengthen return type from rtx to
16916 (next_insn): Likewise.
16917 (prev_nonnote_insn): Likewise.
16918 (prev_nonnote_insn_bb): Likewise.
16919 (next_nonnote_insn): Likewise.
16920 (next_nonnote_insn_bb): Likewise.
16921 (prev_nondebug_insn): Likewise.
16922 (next_nondebug_insn): Likewise.
16923 (prev_nonnote_nondebug_insn): Likewise.
16924 (next_nonnote_nondebug_insn): Likewise.
16925 (prev_real_insn): Likewise.
16926 (next_real_insn): Likewise.
16927 (prev_active_insn): Likewise.
16928 (next_active_insn): Likewise.
16930 * emit-rtl.c (next_insn): Strengthen return type from rtx to
16931 rtx_insn *, adding a checked cast.
16932 (previous_insn): Likewise.
16933 (next_nonnote_insn): Likewise.
16934 (next_nonnote_insn_bb): Likewise.
16935 (prev_nonnote_insn): Likewise.
16936 (prev_nonnote_insn_bb): Likewise.
16937 (next_nondebug_insn): Likewise.
16938 (prev_nondebug_insn): Likewise.
16939 (next_nonnote_nondebug_insn): Likewise.
16940 (prev_nonnote_nondebug_insn): Likewise.
16941 (next_real_insn): Likewise.
16942 (prev_real_insn): Likewise.
16943 (next_active_insn): Likewise.
16944 (prev_active_insn): Likewise.
16946 * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
16947 param "stepfunc" so that it returns an rtx_insn * rather than an
16948 rtx, to track the change to prev_nonnote_insn_bb, which is the
16949 only function this is called with.
16950 * config/sh/sh.c (sh_find_set_of_reg): Likewise.
16952 2014-08-19 Jan Hubicka <hubicka@ucw.cz>
16954 * ipa-visibility.c (update_visibility_by_resolution_info): Fix
16957 2014-08-19 David Malcolm <dmalcolm@redhat.com>
16959 * coretypes.h (class rtx_debug_insn): Add forward declaration.
16960 (class rtx_nonjump_insn): Likewise.
16961 (class rtx_jump_insn): Likewise.
16962 (class rtx_call_insn): Likewise.
16963 (class rtx_jump_table_data): Likewise.
16964 (class rtx_barrier): Likewise.
16965 (class rtx_code_label): Likewise.
16966 (class rtx_note): Likewise.
16968 * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
16969 adding the invariant DEBUG_INSN_P (X).
16970 (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
16971 the invariant NONJUMP_INSN_P (X).
16972 (class rtx_jump_insn): New, a subclass of rtx_insn, adding
16973 the invariant JUMP_P (X).
16974 (class rtx_call_insn): New, a subclass of rtx_insn, adding
16975 the invariant CALL_P (X).
16976 (class rtx_jump_table): New, a subclass of rtx_insn, adding the
16977 invariant JUMP_TABLE_DATA_P (X).
16978 (class rtx_barrier): New, a subclass of rtx_insn, adding the
16979 invariant BARRIER_P (X).
16980 (class rtx_code_label): New, a subclass of rtx_insn, adding
16981 the invariant LABEL_P (X).
16982 (class rtx_note): New, a subclass of rtx_insn, adding
16983 the invariant NOTE_P(X).
16984 (is_a_helper <rtx_debug_insn *>::test): New.
16985 (is_a_helper <rtx_nonjump_insn *>::test): New.
16986 (is_a_helper <rtx_jump_insn *>::test): New.
16987 (is_a_helper <rtx_call_insn *>::test): New.
16988 (is_a_helper <rtx_jump_table_data *>::test): New functions,
16989 overloaded for both rtx and rtx_insn *.
16990 (is_a_helper <rtx_barrier *>::test): New.
16991 (is_a_helper <rtx_code_label *>::test): New functions, overloaded
16992 for both rtx and rtx_insn *.
16993 (is_a_helper <rtx_note *>::test): New.
16995 2014-08-19 Marek Polacek <polacek@redhat.com>
16997 * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
16998 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
16999 * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
17000 CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
17002 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17004 * sel-sched-ir.h (BND_TO): insn_t will eventually be an
17005 rtx_insn *. To help with transition, for now, convert from an
17006 access macro into a pair of functions: BND_TO, returning an
17008 (SET_BND_TO): New function, for use where BND_TO is used as an
17011 * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
17013 (BND_TO): New function, adding a checked cast.
17014 (SET_BND_TO): New function.
17016 * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
17018 (compute_av_set_on_boundaries): Likewise.
17020 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
17022 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
17023 destination if it is used in source.
17024 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
17025 (*popcount<mode>2_falsedep_1): Likewise.
17027 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
17030 * configure.ac: Set install_gold_as_default to no first.
17031 * configure: Regenerated.
17033 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17035 * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
17036 "note_list" field will eventually be an rtx_insn *. To help with
17037 transition, for now, convert from an access macro into a pair of
17038 functions: BB_NOTE_LIST, returning an rtx_insn *, and...
17039 (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
17042 * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
17043 of BB_NOTE_LIST to SET_BB_NOTE_LIST.
17045 * sel-sched-ir.c (init_bb): Likewise.
17046 (sel_restore_notes): Likewise.
17047 (move_bb_info): Likewise.
17048 (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
17049 (SET_BB_NOTE_LIST): New function.
17051 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17053 * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
17054 field will eventually be an rtx_insn *. To help with transition,
17055 for now, convert from an access macro into a pair of functions:
17056 VINSN_INSN_RTX, returning an rtx_insn *, and...
17057 (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
17058 is used as an lvalue.
17060 * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
17061 SET_VINSN_INSN_RTX where it's used as an lvalue.
17062 (VINSN_INSN_RTX): New function.
17063 (SET_VINSN_INSN_RTX): New function.
17065 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17067 * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
17068 eventually be rtx_insn *, but to help with transition, for now,
17069 convert from an access macro into a pair of functions: DEP_PRO
17070 returning an rtx_insn * and...
17071 (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
17072 lvalue, returning an rtx&.
17073 (DEP_CON): Analogous changes to DEP_PRO above.
17074 (SET_DEP_CON): Likewise.
17076 * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
17077 an lvalue to SET_DEP_CON.
17078 * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
17079 (sd_copy_back_deps): Likewise for DEP_CON.
17080 (DEP_PRO): New function, adding a checked cast for now.
17081 (DEP_CON): Likewise.
17082 (SET_DEP_PRO): New function.
17083 (SET_DEP_CON): Likewise.
17085 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
17087 * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
17088 (extra_options): Add i386/cygwin.opt.
17089 * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
17090 (CPP_SPEC): Accept -pthread.
17091 (LINK_SPEC): Ditto.
17092 (GOMP_SELF_SPECS): Update comment.
17093 * config/i386/cygwin.opt: New file for -pthread flag.
17095 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17097 * df-core.c (DF_REF_INSN): New, using a checked cast for now.
17098 * df.h (DF_REF_INSN): Convert from a macro to a function, so
17099 that we can return an rtx_insn *.
17101 2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
17103 * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
17104 when building executables, not DLLs. Add --large-address-aware
17105 under the same conditions.
17106 * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
17107 when building executables, not DLLs. Add --large-address-aware
17108 under the same conditions when using -m32.
17110 * config/i386/cygwin-stdint.h: Throughout, make type
17111 definitions dependent on target architecture, not host.
17113 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17115 * rtl.h (PREV_INSN): Convert to an inline function. Strengthen
17116 the return type from rtx to rtx_insn *, which will enable various
17117 conversions in followup patches. For now this is is done by a
17119 (NEXT_INSN): Likewise.
17120 (SET_PREV_INSN): Convert to an inline function. This is intended
17121 for use as an lvalue, and so returns an rtx& to allow in-place
17123 (SET_NEXT_INSN): Likewise.
17125 2014-07-08 Mark Wielaard <mjw@redhat.com>
17128 * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
17130 2014-08-19 Marek Polacek <polacek@redhat.com>
17133 * cgraphunit.c (handle_alias_pairs): Fix condition.
17135 2014-08-19 Richard Biener <rguenther@suse.de>
17137 * gimple-fold.c (fold_gimple_assign): Properly build a
17138 null-pointer constant when devirtualizing addresses.
17140 2014-07-07 Mark Wielaard <mjw@redhat.com>
17142 * dwarf2out.c (decl_quals): New function.
17143 (modified_type_die): Take one cv_quals argument instead of two,
17144 one for const and one for volatile.
17145 (add_type_attribute): Likewise.
17146 (generic_parameter_die): Call add_type_attribute with one modifier
17148 (base_type_for_mode): Likewise.
17149 (add_bounds_info): Likewise.
17150 (add_subscript_info): Likewise.
17151 (gen_array_type_die): Likewise.
17152 (gen_descr_array_type_die): Likewise.
17153 (gen_entry_point_die): Likewise.
17154 (gen_enumeration_type_die): Likewise.
17155 (gen_formal_parameter_die): Likewise.
17156 (gen_subprogram_die): Likewise.
17157 (gen_variable_die): Likewise.
17158 (gen_const_die): Likewise.
17159 (gen_field_die): Likewise.
17160 (gen_pointer_type_die): Likewise.
17161 (gen_reference_type_die): Likewise.
17162 (gen_ptr_to_mbr_type_die): Likewise.
17163 (gen_inheritance_die): Likewise.
17164 (gen_subroutine_type_die): Likewise.
17165 (gen_typedef_die): Likewise.
17166 (force_type_die): Likewise.
17168 2014-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17170 * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
17172 * configure: Regenerate.
17174 2014-08-19 Richard Biener <rguenther@suse.de>
17176 * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
17177 DECL_EXTERNALs in BLOCKs as non-references.
17178 * tree-streamer-out.c (streamer_write_chain): Likewise.
17180 2014-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
17181 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17182 Anna Tikhonova <anna.tikhonova@intel.com>
17183 Ilya Tocar <ilya.tocar@intel.com>
17184 Andrey Turetskiy <andrey.turetskiy@intel.com>
17185 Ilya Verbin <ilya.verbin@intel.com>
17186 Kirill Yukhin <kirill.yukhin@intel.com>
17187 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17189 * config/i386/sse.md
17190 (define_mode_iterator VI48_AVX512F): Delete.
17191 (define_mode_iterator VI48_AVX512F_AVX512VL): New.
17192 (define_mode_iterator VI2_AVX512VL): Ditto.
17193 (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
17196 ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
17198 (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
17199 (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
17200 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
17201 with VI48_AVX512F_AVX512VL): New.
17202 (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
17203 with VI2_AVX512VL): Ditto.
17205 2014-08-19 Marek Polacek <polacek@redhat.com>
17207 * doc/invoke.texi: Document -Wc99-c11-compat.
17209 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17211 * rtl.h (PREV_INSN): Split macro in two: the existing one,
17212 for rvalues, and...
17213 (SET_PREV_INSN): New macro, for use as an lvalue.
17214 (NEXT_INSN, SET_NEXT_INSN): Likewise.
17216 * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
17217 PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
17218 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
17219 (fixup_abnormal_edges): Likewise.
17220 (unlink_insn_chain): Likewise.
17221 (fixup_reorder_chain): Likewise.
17222 (cfg_layout_delete_block): Likewise.
17223 (cfg_layout_merge_blocks): Likewise.
17224 * combine.c (update_cfg_for_uncondjump): Likewise.
17225 * emit-rtl.c (link_insn_into_chain): Likewise.
17226 (remove_insn): Likewise.
17227 (delete_insns_since): Likewise.
17228 (reorder_insns_nobb): Likewise.
17229 (emit_insn_after_1): Likewise.
17230 * final.c (rest_of_clean_state): Likewise.
17231 (final_scan_insn): Likewise.
17232 * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
17233 * haifa-sched.c (concat_note_lists): Likewise.
17234 (remove_notes): Likewise.
17235 (restore_other_notes): Likewise.
17236 (move_insn): Likewise.
17237 (unlink_bb_notes): Likewise.
17238 (restore_bb_notes): Likewise.
17239 * jump.c (delete_for_peephole): Likewise.
17240 * optabs.c (emit_libcall_block_1): Likewise.
17241 * reorg.c (emit_delay_sequence): Likewise.
17242 (fill_simple_delay_slots): Likewise.
17243 * sel-sched-ir.c (sel_move_insn): Likewise.
17244 (sel_remove_insn): Likewise.
17245 (get_bb_note_from_pool): Likewise.
17246 * sel-sched.c (move_nop_to_previous_block): Likewise.
17248 * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
17249 * config/c6x/c6x.c (gen_one_bundle): Likewise.
17250 (c6x_gen_bundles): Likewise.
17251 (hwloop_optimize): Likewise.
17252 * config/frv/frv.c (frv_function_prologue): Likewise.
17253 (frv_register_nop): Likewise.
17254 * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
17255 (ia64_reorg): Likewise.
17256 * config/mep/mep.c (mep_reorg_addcombine): Likewise.
17257 (mep_make_bundle): Likewise.
17258 (mep_bundle_insns): Likewise.
17259 * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
17260 * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
17261 * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
17263 2014-08-19 David Malcolm <dmalcolm@redhat.com>
17265 * basic-block.h (BB_HEAD): Convert to a function. Strengthen the
17266 return type from rtx to rtx_insn *.
17267 (BB_END): Likewise.
17268 (BB_HEADER): Likewise.
17269 (BB_FOOTER): Likewise.
17270 (SET_BB_HEAD): Convert to a function.
17271 (SET_BB_END): Likewise.
17272 (SET_BB_HEADER): Likewise.
17273 (SET_BB_FOOTER): Likewise.
17275 * cfgrtl.c (BB_HEAD): New function, from macro of same name.
17276 Strengthen the return type from rtx to rtx_insn *. For now, this
17277 is done by adding a checked cast, but this will eventually
17278 become a field lookup.
17279 (BB_END): Likewise.
17280 (BB_HEADER): Likewise.
17281 (BB_FOOTER): Likewise.
17282 (SET_BB_HEAD): New function, from macro of same name. This is
17283 intended for use as an lvalue, and so returns an rtx& to allow
17284 in-place modification.
17285 (SET_BB_END): Likewise.
17286 (SET_BB_HEADER): Likewise.
17287 (SET_BB_FOOTER): Likewise.
17289 2014-08-18 David Malcolm <dmalcolm@redhat.com>
17291 * basic-block.h (BB_HEAD): Split macro in two: the existing one,
17292 for rvalues, and...
17293 (SET_BB_HEAD): New macro, for use as a lvalue.
17294 (BB_END, SET_BB_END): Likewise.
17295 (BB_HEADER, SET_BB_HEADER): Likewise.
17296 (BB_FOOTER, SET_BB_FOOTER): Likewise.
17298 * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
17299 of BB_* macros into SET_BB_* macros.
17300 (fix_crossing_unconditional_branches): Likewise.
17301 * caller-save.c (save_call_clobbered_regs): Likewise.
17302 (insert_one_insn): Likewise.
17303 * cfgbuild.c (find_bb_boundaries): Likewise.
17304 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
17305 (outgoing_edges_match): Likewise.
17306 (try_optimize_cfg): Likewise.
17307 * cfgexpand.c (expand_gimple_cond): Likewise.
17308 (expand_gimple_tailcall): Likewise.
17309 (expand_gimple_basic_block): Likewise.
17310 (construct_exit_block): Likewise.
17311 * cfgrtl.c (delete_insn): Likewise.
17312 (create_basic_block_structure): Likewise.
17313 (rtl_delete_block): Likewise.
17314 (rtl_split_block): Likewise.
17315 (emit_nop_for_unique_locus_between): Likewise.
17316 (rtl_merge_blocks): Likewise.
17317 (block_label): Likewise.
17318 (try_redirect_by_replacing_jump): Likewise.
17319 (emit_barrier_after_bb): Likewise.
17320 (fixup_abnormal_edges): Likewise.
17321 (record_effective_endpoints): Likewise.
17322 (relink_block_chain): Likewise.
17323 (fixup_reorder_chain): Likewise.
17324 (fixup_fallthru_exit_predecessor): Likewise.
17325 (cfg_layout_duplicate_bb): Likewise.
17326 (cfg_layout_split_block): Likewise.
17327 (cfg_layout_delete_block): Likewise.
17328 (cfg_layout_merge_blocks): Likewise.
17329 * combine.c (update_cfg_for_uncondjump): Likewise.
17330 * emit-rtl.c (add_insn_after): Likewise.
17331 (remove_insn): Likewise.
17332 (reorder_insns): Likewise.
17333 (emit_insn_after_1): Likewise.
17334 * haifa-sched.c (get_ebb_head_tail): Likewise.
17335 (restore_other_notes): Likewise.
17336 (move_insn): Likewise.
17337 (sched_extend_bb): Likewise.
17338 (fix_jump_move): Likewise.
17339 * ifcvt.c (noce_process_if_block): Likewise.
17340 (dead_or_predicable): Likewise.
17341 * ira.c (update_equiv_regs): Likewise.
17342 * reg-stack.c (change_stack): Likewise.
17343 * sel-sched-ir.c (sel_move_insn): Likewise.
17344 * sel-sched.c (move_nop_to_previous_block): Likewise.
17346 * config/c6x/c6x.c (hwloop_optimize): Likewise.
17347 * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
17349 2014-08-18 David Malcolm <dmalcolm@redhat.com>
17351 * rtl.h (for_each_rtx_in_insn): New function.
17352 * rtlanal.c (for_each_rtx_in_insn): Likewise.
17354 2014-08-18 David Malcolm <dmalcolm@redhat.com>
17356 * coretypes.h (class rtx_insn): Add forward declaration.
17358 * rtl.h: Include is-a.h.
17359 (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
17360 workaround to ensure gengtype knows inheritance is occurring,
17361 whilst continuing to use the pre-existing special-casing for
17363 (class rtx_insn): New subclass of rtx_def, adding the
17364 invariant that we're dealing with something we can sanely use
17365 INSN_UID, NEXT_INSN, PREV_INSN on.
17366 (is_a_helper <rtx_insn *>::test): New.
17367 (is_a_helper <const rtx_insn *>::test): New.
17369 2014-08-18 David Malcolm <dmalcolm@redhat.com>
17371 * is-a.h (template<T, U> safe_as_a <U *p>) New function.
17373 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
17375 * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
17378 2014-08-18 Jan Hubicka <hubicka@ucw.cz>
17380 * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
17381 to BUILT_IN_UNREACHABLE.
17383 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
17386 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
17388 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
17389 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
17390 (ffs<mode>2): Do not expand with tzcnt for
17391 TARGET_AVOID_FALSE_DEP_FOR_BMI.
17392 (ffssi2_no_cmove): Ditto.
17393 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
17394 (ctz<mode>2): New expander.
17395 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
17396 (*ctz<mode>2_falsedep): New insn.
17397 (*ctz<mode>2): Rename from ctz<mode>2.
17398 (clz<mode>2_lzcnt): New expander.
17399 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
17400 (*clz<mode>2_lzcnt_falsedep): New insn.
17401 (*clz<mode>2): Rename from ctz<mode>2.
17402 (popcount<mode>2): New expander.
17403 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
17404 (*popcount<mode>2_falsedep): New insn.
17405 (*popcount<mode>2): Rename from ctz<mode>2.
17406 (*popcount<mode>2_cmp): Remove.
17407 (*popcountsi2_cmp_zext): Ditto.
17409 2014-08-18 Ajit Agarwal <ajitkum@xilinx.com>
17411 * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
17412 (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
17413 * config/microblaze/microblaze.h
17414 (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
17416 2014-08-18 H.J. Lu <hongjiu.lu@intel.com>
17419 * configure.ac: Set install_gold_as_default to no for
17421 * configure: Regenerated.
17423 2014-08-18 Roman Gareev <gareevroman@gmail.com>
17425 * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
17426 * config.in: Add undef of HAVE_isl.
17427 * configure: Regenerate.
17428 * configure.ac: Add definition of HAVE_isl.
17429 * graphite-blocking.c: Add checking of HAVE_isl.
17430 * graphite-dependences.c: Likewise.
17431 * graphite-interchange.c: Likewise.
17432 * graphite-isl-ast-to-gimple.c: Likewise.
17433 * graphite-optimize-isl.c: Likewise.
17434 * graphite-poly.c: Likewise.
17435 * graphite-scop-detection.c: Likewise.
17436 * graphite-sese-to-poly.c: Likewise.
17437 * graphite.c: Likewise.
17438 * toplev.c: Replace the checking of HAVE_cloog with the checking
17441 2014-08-18 Richard Biener <rguenther@suse.de>
17443 PR tree-optimization/62090
17444 * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
17445 (fold_builtin_3): Do not fold snprintf.
17446 (fold_builtin_4): Likewise.
17447 * gimple-fold.c (gimple_fold_builtin_snprintf): New function
17448 moved from builtins.c.
17449 (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
17450 (gimple_fold_builtin): Do not fold sprintf here.
17452 2014-08-18 Richard Biener <rguenther@suse.de>
17454 * gimple-fold.c (maybe_fold_reference): Move re-gimplification
17456 (maybe_canonicalize_mem_ref_addr): ... this function.
17457 (fold_stmt_1): Apply it here before all simplification.
17459 2014-08-18 Ilya Enkovich <ilya.enkovich@intel.com>
17462 * cgraph.h (cgraph_node::create_indirect_edge): Add
17463 compute_indirect_info param.
17464 * cgraph.c (cgraph_node::create_indirect_edge): Compute
17465 indirect_info only when it is required.
17466 * cgraphclones.c (cgraph_clone_edge): Do not recompute
17467 indirect_info fore cloned indirect edge.
17469 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17470 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17471 Anna Tikhonova <anna.tikhonova@intel.com>
17472 Ilya Tocar <ilya.tocar@intel.com>
17473 Andrey Turetskiy <andrey.turetskiy@intel.com>
17474 Ilya Verbin <ilya.verbin@intel.com>
17475 Kirill Yukhin <kirill.yukhin@intel.com>
17476 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17478 * config/i386/sse.md
17479 (define_mode_iterator VI8_AVX2_AVX512BW): New.
17480 (define_insn "<sse2_avx2>_psadbw"): Add evex version.
17482 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17483 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17484 Anna Tikhonova <anna.tikhonova@intel.com>
17485 Ilya Tocar <ilya.tocar@intel.com>
17486 Andrey Turetskiy <andrey.turetskiy@intel.com>
17487 Ilya Verbin <ilya.verbin@intel.com>
17488 Kirill Yukhin <kirill.yukhin@intel.com>
17489 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17491 * config/i386/sse.md
17492 (define_mode_iterator VF1_AVX512VL): New.
17493 (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
17494 (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
17497 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17498 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17499 Anna Tikhonova <anna.tikhonova@intel.com>
17500 Ilya Tocar <ilya.tocar@intel.com>
17501 Andrey Turetskiy <andrey.turetskiy@intel.com>
17502 Ilya Verbin <ilya.verbin@intel.com>
17503 Kirill Yukhin <kirill.yukhin@intel.com>
17504 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17506 * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
17507 * config/i386/i386.md
17508 (define_code_iterator any_float): New.
17509 (define_code_attr floatsuffix): New.
17510 * config/i386/sse.md
17511 (define_mode_iterator VF1_128_256VL): New.
17512 (define_mode_iterator VF2_512_256VL): New.
17513 (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
17515 (define_insn "ufloatv8siv8df<mask_name>"): Delete.
17516 (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
17518 (define_mode_attr qq2pssuff): New.
17519 (define_mode_attr sselongvecmode): New.
17520 (define_mode_attr sselongvecmodelower): New.
17521 (define_mode_attr sseintvecmode3): New.
17522 (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
17524 (define_insn "*<floatsuffix>floatv2div2sf2"): New.
17525 (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
17526 (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
17527 (define_insn "ufloatv2siv2df2<mask_name>"): New.
17529 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17530 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17531 Anna Tikhonova <anna.tikhonova@intel.com>
17532 Ilya Tocar <ilya.tocar@intel.com>
17533 Andrey Turetskiy <andrey.turetskiy@intel.com>
17534 Ilya Verbin <ilya.verbin@intel.com>
17535 Kirill Yukhin <kirill.yukhin@intel.com>
17536 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17538 * config/i386/sse.md
17539 (define_mode_iterator VF2_AVX512VL): New.
17540 (define_mode_attr sseintvecmode2): New.
17541 (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
17542 (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
17543 (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
17545 "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
17547 (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
17549 (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
17552 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17553 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17554 Anna Tikhonova <anna.tikhonova@intel.com>
17555 Ilya Tocar <ilya.tocar@intel.com>
17556 Andrey Turetskiy <andrey.turetskiy@intel.com>
17557 Ilya Verbin <ilya.verbin@intel.com>
17558 Kirill Yukhin <kirill.yukhin@intel.com>
17559 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17561 * config/i386/i386.md
17562 (define_insn "*movoi_internal_avx"): Add evex version.
17563 (define_insn "*movti_internal"): Ditto.
17565 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17566 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17567 Anna Tikhonova <anna.tikhonova@intel.com>
17568 Ilya Tocar <ilya.tocar@intel.com>
17569 Andrey Turetskiy <andrey.turetskiy@intel.com>
17570 Ilya Verbin <ilya.verbin@intel.com>
17571 Kirill Yukhin <kirill.yukhin@intel.com>
17572 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17574 * config/i386/i386.md
17575 (define_attr "isa"): Add avx512dq, noavx512dq.
17576 (define_attr "enabled"): Ditto.
17577 * config/i386/sse.md
17578 (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
17580 2014-08-18 Alexander Ivchenko <alexander.ivchenko@intel.com>
17581 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17582 Anna Tikhonova <anna.tikhonova@intel.com>
17583 Ilya Tocar <ilya.tocar@intel.com>
17584 Andrey Turetskiy <andrey.turetskiy@intel.com>
17585 Ilya Verbin <ilya.verbin@intel.com>
17586 Kirill Yukhin <kirill.yukhin@intel.com>
17587 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17589 * config/i386/i386.c
17590 (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
17591 avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
17592 avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
17593 avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
17594 avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
17595 avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
17596 avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
17597 avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
17598 * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
17599 * config/i386/sse.md
17600 (define_mode_iterator VMOVE): Allow V4TI mode.
17601 (define_mode_iterator V_AVX512VL): New.
17602 (define_mode_iterator V): New handling for AVX512VL.
17603 (define_insn "avx512f_load<mode>_mask"): Delete.
17604 (define_insn "<avx512>_load<mode>_mask"): New.
17605 (define_insn "avx512f_store<mode>_mask"): Delete.
17606 (define_insn "<avx512>_store<mode>_mask"): New.
17609 2014-08-18 Yury Gribov <y.gribov@samsung.com>
17612 * asan.c (instrument_derefs): Fix bitfield check.
17614 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
17616 * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
17617 * config/rs6000/htm.md (ttest): Remove clobber.
17618 * config/rs6000/predicates.md (any_mask_operand): New predicate.
17619 (and_operand): Reformat.
17620 (and_2rld_operand): New predicate.
17621 * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
17623 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
17624 parameter. Handle AND directly.
17625 (rs6000_split_logical_di): Remove last parameter.
17626 (rs6000_split_logical): Remove last parameter. Remove obsolete
17628 * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
17629 (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
17630 (ctz<mode>2, ffs<mode>2): Delete clobber. Reformat.
17631 (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
17632 *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
17633 and 5 anonymous splitters): Delete.
17634 (and<mode>3): New expander.
17635 (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
17636 (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
17637 (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
17638 (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
17639 (floatdisf2_internal1): Remove clobbers.
17640 (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
17641 *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
17642 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
17643 (and<mode>3 for BOOL_128): Remove clobber.
17644 (*and<mode>3_internal for BOOL_128): Remove clobber. Adjust call of
17645 rs6000_split_logical.
17646 (*bool<mode>3_internal for BOOL_128): Adjust call of
17647 rs6000_split_logical.
17648 (*boolc<mode>3_internal1 for BOOL_128,
17649 *boolc<mode>3_internal2 for BOOL_128,
17650 *boolcc<mode>3_internal1 for BOOL_128,
17651 *boolcc<mode>3_internal2 for BOOL_128,
17652 *eqv<mode>3_internal1 for BOOL_128,
17653 *eqv<mode>3_internal2 for BOOL_128,
17654 *one_cmpl<mode>3_internal for BOOL_128): Ditto.
17655 * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
17657 (*vec_reload_and_reg_<mptrsize>): Delete.
17659 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
17661 * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
17662 and split, *boolccsi3_internal3 and split): Delete.
17663 (*boolccdi3_internal1, *boolccdi3_internal2 and split,
17664 *boolccdi3_internal3 and split): Delete.
17665 (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
17666 (*eqv<mode>3): Move. Add TODO comment. Fix attributes.
17668 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
17670 * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
17671 and split, *boolcsi3_internal3 and split): Delete.
17672 (*boolcdi3_internal1, *boolcdi3_internal2 and split,
17673 *boolcdi3_internal3 and split): Delete.
17674 (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
17676 2014-08-17 Segher Boessenkool <segher@kernel.crashing.org>
17678 * config/rs6000/rs6000.c (print_operand) <'e'>: New.
17679 <'u'>: Also support printing the low-order 16 bits.
17680 * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
17681 *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
17682 (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
17683 *booldi3_internal3 and split): Delete.
17684 (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
17685 *bool<mode>3_dot2): New.
17686 (two anonymous define_splits for non_logical_cint_operand): Merge.
17688 2014-08-17 Marek Polacek <polacek@redhat.com>
17689 Manuel López-Ibáñez <manu@gcc.gnu.org>
17692 * diagnostic.c (adjust_line): Add gcc_checking_assert.
17693 (diagnostic_show_locus): Don't print caret diagnostic
17694 if a column is larger than the line_width.
17696 2014-08-17 Roman Gareev <gareevroman@gmail.com>
17698 * common.opt: Make the ISL AST generator to be the main code generator
17701 2014-08-16 Gerald Pfeifer <gerald@pfeifer.com>
17703 * wide-int.h (generic_wide_int): Declare as class instead of struct.
17705 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
17708 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
17710 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
17711 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
17712 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
17714 * config/pa/pa.md (begin_brtab): Delete insn.
17715 (end_brtab): Likewise.
17717 2014-08-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
17719 * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
17721 2014-08-15 Jan Hubicka <hubicka@ucw.cz>
17723 * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
17724 (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
17725 possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
17726 (get_dynamic_type): Remove.
17727 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
17728 (clear_speculation): Bring to ipa-deivrt.h
17729 (get_class_context): Rename to ...
17730 (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
17731 (contains_type_p): Update.
17732 (get_dynamic_type): Rename to ...
17733 ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
17734 (possible_polymorphic_call_targets): UPdate.
17735 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
17736 * ipa-prop.c (ipa_analyze_call_uses): Update.
17738 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
17740 * doc/invoke.texi (SH options): Document missing processor variant
17741 options. Remove references to Hitachi. Undocument deprecated mspace
17744 2014-08-15 Jason Merrill <jason@redhat.com>
17746 * tree.c (type_hash_canon): Uncomment assert.
17748 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
17750 * input.h (in_system_header_at): Add comment.
17752 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
17755 * diagnostic.c (build_message_string): Make it extern.
17756 * diagnostic.h (build_message_string): Make it extern.
17758 2014-08-15 Vladimir Makarov <vmakarov@redhat.com>
17760 * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
17761 load/store from/to non-floating class pseudo.
17763 2014-08-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
17765 * input.c (diagnostic_file_cache_fini): Fix typo in comment.
17767 2014-08-15 Richard Biener <rguenther@suse.de>
17769 * tree-ssa-structalias.c (readonly_id): Rename to string_id.
17770 (get_constraint_for_ssa_var): Remove dead code.
17771 (get_constraint_for_1): Adjust.
17772 (find_what_var_points_to): Likewise.
17773 (init_base_vars): Likewise. STRING_CSTs do not contain pointers.
17775 2014-08-15 Ilya Tocar <tocarip@gmail.com>
17778 * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
17779 (_mm512_mask_cmpge_epu32_mask): Ditto.
17780 (_mm512_cmpge_epu32_mask): Ditto.
17781 (_mm512_mask_cmpge_epi64_mask): Ditto.
17782 (_mm512_cmpge_epi64_mask): Ditto.
17783 (_mm512_mask_cmpge_epu64_mask): Ditto.
17784 (_mm512_cmpge_epu64_mask): Ditto.
17785 (_mm512_mask_cmple_epi32_mask): Ditto.
17786 (_mm512_cmple_epi32_mask): Ditto.
17787 (_mm512_mask_cmple_epu32_mask): Ditto.
17788 (_mm512_cmple_epu32_mask): Ditto.
17789 (_mm512_mask_cmple_epi64_mask): Ditto.
17790 (_mm512_cmple_epi64_mask): Ditto.
17791 (_mm512_mask_cmple_epu64_mask): Ditto.
17792 (_mm512_cmple_epu64_mask): Ditto.
17793 (_mm512_mask_cmplt_epi32_mask): Ditto.
17794 (_mm512_cmplt_epi32_mask): Ditto.
17795 (_mm512_mask_cmplt_epu32_mask): Ditto.
17796 (_mm512_cmplt_epu32_mask): Ditto.
17797 (_mm512_mask_cmplt_epi64_mask): Ditto.
17798 (_mm512_cmplt_epi64_mask): Ditto.
17799 (_mm512_mask_cmplt_epu64_mask): Ditto.
17800 (_mm512_cmplt_epu64_mask): Ditto.
17801 (_mm512_mask_cmpneq_epi32_mask): Ditto.
17802 (_mm512_mask_cmpneq_epu32_mask): Ditto.
17803 (_mm512_cmpneq_epu32_mask): Ditto.
17804 (_mm512_mask_cmpneq_epi64_mask): Ditto.
17805 (_mm512_cmpneq_epi64_mask): Ditto.
17806 (_mm512_mask_cmpneq_epu64_mask): Ditto.
17807 (_mm512_cmpneq_epu64_mask): Ditto.
17808 (_mm512_castpd_ps): Ditto.
17809 (_mm512_castpd_si512): Ditto.
17810 (_mm512_castps_pd): Ditto.
17811 (_mm512_castps_si512): Ditto.
17812 (_mm512_castsi512_ps): Ditto.
17813 (_mm512_castsi512_pd): Ditto.
17814 (_mm512_castpd512_pd128): Ditto.
17815 (_mm512_castps512_ps128): Ditto.
17816 (_mm512_castsi512_si128): Ditto.
17817 (_mm512_castpd512_pd256): Ditto.
17818 (_mm512_castps512_ps256): Ditto.
17819 (_mm512_castsi512_si256): Ditto.
17820 (_mm512_castpd128_pd512): Ditto.
17821 (_mm512_castps128_ps512): Ditto.
17822 (_mm512_castsi128_si512): Ditto.
17823 (_mm512_castpd256_pd512): Ditto.
17824 (_mm512_castps256_ps512): Ditto.
17825 (_mm512_castsi256_si512): Ditto.
17826 (_mm512_cmpeq_epu32_mask): Ditto.
17827 (_mm512_mask_cmpeq_epu32_mask): Ditto.
17828 (_mm512_mask_cmpeq_epu64_mask): Ditto.
17829 (_mm512_cmpeq_epu64_mask): Ditto.
17830 (_mm512_cmpgt_epu32_mask): Ditto.
17831 (_mm512_mask_cmpgt_epu32_mask): Ditto.
17832 (_mm512_mask_cmpgt_epu64_mask): Ditto.
17833 (_mm512_cmpgt_epu64_mask): Ditto.
17834 * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
17835 V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
17836 * config/i386/i386.c (enum ix86_builtins): Add
17837 IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
17838 IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
17839 IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
17840 (bdesc_args): Add __builtin_ia32_si512_256si,
17841 __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
17842 __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
17843 __builtin_ia32_pd512_pd.
17844 (ix86_expand_args_builtin): Handle new FTYPEs.
17845 * config/i386/sse.md (castmode): Add 512-bit modes.
17846 (AVX512MODE2P): New.
17847 (avx512f_<castmode><avxsizesuffix>_<castmode): New.
17848 (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
17850 2014-08-15 Richard Biener <rguenther@suse.de>
17852 * fold-const.c (tree_swap_operands_p): Put all constants
17853 last, also strip sign-changing NOPs when considering further
17854 canonicalization. Canonicalize also when optimizing for size.
17856 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17858 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
17859 one_match > zero_match case to just before simple_sequence.
17861 2014-08-15 Richard Biener <rguenther@suse.de>
17863 * data-streamer.h (streamer_string_index, string_for_index):
17865 * data-streamer-out.c (streamer_string_index): Make static.
17866 * data-streamer-in.c (string_for_index): Likewise.
17867 * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
17868 * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
17870 2014-08-15 Richard Biener <rguenther@suse.de>
17872 PR tree-optimization/62031
17873 * tree-data-ref.c (dr_analyze_indices): Do not set
17874 DR_UNCONSTRAINED_BASE.
17875 (dr_may_alias_p): All indirect accesses have to go the
17876 formerly DR_UNCONSTRAINED_BASE path.
17877 * tree-data-ref.h (struct indices): Remove
17878 unconstrained_base member.
17879 (DR_UNCONSTRAINED_BASE): Remove.
17881 2014-08-15 Jakub Jelinek <jakub@redhat.com>
17883 PR middle-end/62092
17884 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
17885 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
17886 in OMP_CLAUSE_MAP in some outer target region.
17888 2014-08-15 Bin Cheng <bin.cheng@arm.com>
17890 * tree-ssa-loop-ivopts.c (ivopts_data): New field
17891 name_expansion_cache.
17892 (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
17893 (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
17894 (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
17895 (difference_cannot_overflow_p): New parameter. Use affine
17896 expansion for equality check.
17897 (iv_elimination_compare_lt): Pass new argument.
17899 2014-08-14 DJ Delorie <dj@redhat.com>
17901 * config/rl78/rl78-real.md (addqi3_real): Allow adding global
17902 variables to the accumulator.
17904 * config/rl78/predicates.md (rl78_near_mem_operand): New.
17905 * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
17906 (movhi_virt_mm): Split out near mem-mem moves to avoid problems
17907 with far-far moves.
17909 * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
17910 * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
17911 (umulqihi3_virt): Likewise.
17912 * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
17913 (umulqihi3_real): Likewise.
17915 * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
17917 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
17919 PR tree-optimization/62091
17920 * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
17921 function_entry_reached.
17922 (walk_aliased_vdefs): Clear it here.
17923 * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
17925 2014-08-14 Jan Hubicka <hubicka@ucw.cz>
17927 * ipa-utils.h (compare_virtual_tables): Declare.
17928 * ipa-devirt.c (odr_subtypes_equivalent_p): New function
17930 2014-08-14 Marek Polacek <polacek@redhat.com>
17933 * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
17934 (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
17936 2014-08-14 Tom de Vries <tom@codesourcery.com>
17938 * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
17940 2014-08-14 Tom de Vries <tom@codesourcery.com>
17942 PR rtl-optimization/62004
17943 PR rtl-optimization/62030
17944 * ifcvt.c (rtx_interchangeable_p): New function.
17945 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
17946 * emit-rtl.h (mem_attrs_eq_p): Declare.
17948 2014-08-14 Roman Gareev <gareevroman@gmail.com>
17950 * graphite-scop-detection.c:
17951 Add inclusion of cp-tree.h.
17952 (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
17953 in case they are pointers to object types
17955 2014-08-14 Richard Biener <rguenther@suse.de>
17957 * BASE-VER: Change to 5.0.0
17959 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
17960 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17961 Anna Tikhonova <anna.tikhonova@intel.com>
17962 Ilya Tocar <ilya.tocar@intel.com>
17963 Andrey Turetskiy <andrey.turetskiy@intel.com>
17964 Ilya Verbin <ilya.verbin@intel.com>
17965 Kirill Yukhin <kirill.yukhin@intel.com>
17966 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
17968 * config/i386/sse.md (define_mode_attr avx512): New.
17969 (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
17971 (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
17972 (define_mode_attr ssse3_avx2): Ditto.
17973 (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
17974 (define_mode_attr avx2_avx512bw): New.
17975 (define_mode_attr ssedoublemodelower): New.
17976 (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
17977 V32HI, V64QI modes.
17978 (define_mode_attr ssebytemode): Allow V8DI modes.
17979 (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
17980 (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
17981 (define_mode_attr ssePSmode2): New.
17982 (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
17983 V16HI, V32HI modes.
17984 (define_mode_attr dbpsadbwmode): New.
17985 (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
17986 V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
17987 (vi8_sse4_1_avx2_avx512): New.
17988 (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
17990 (define_mode_attr blendbits): Move before its immediate use.
17992 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
17993 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
17994 Anna Tikhonova <anna.tikhonova@intel.com>
17995 Ilya Tocar <ilya.tocar@intel.com>
17996 Andrey Turetskiy <andrey.turetskiy@intel.com>
17997 Ilya Verbin <ilya.verbin@intel.com>
17998 Kirill Yukhin <kirill.yukhin@intel.com>
17999 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18001 * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
18002 * config/i386/subst.md
18003 (define_mode_iterator SUBST_V): Update.
18004 (define_mode_iterator SUBST_A): Ditto.
18005 (define_subst_attr "mask_operand7"): New.
18006 (define_subst_attr "mask_operand10"): New.
18007 (define_subst_attr "mask_operand_arg34") : New.
18008 (define_subst_attr "mask_expand_op3"): New.
18009 (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
18010 (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
18011 (define_subst_attr "mask_avx512vl_condition"): New.
18012 (define_subst_attr "round_mask_operand4"): Ditto.
18013 (define_subst_attr "round_mask_scalar_op3"): Delete.
18014 (define_subst_attr "round_mask_op4"): New.
18015 (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
18017 (define_subst_attr "round_modev8sf_condition"): New.
18018 (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
18020 (define_subst_attr "round_saeonly_mask_operand4"): New.
18021 (define_subst_attr "round_saeonly_mask_op4"): New.
18022 (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
18023 V8DImode, V16SImode.
18024 (define_subst_attr "round_saeonly_modev8sf_condition"): New.
18025 (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
18026 (define_subst_attr "mask_expand4_args"): New.
18027 (define_subst "mask_expand4"): New.
18029 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
18030 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18031 Anna Tikhonova <anna.tikhonova@intel.com>
18032 Ilya Tocar <ilya.tocar@intel.com>
18033 Andrey Turetskiy <andrey.turetskiy@intel.com>
18034 Ilya Verbin <ilya.verbin@intel.com>
18035 Kirill Yukhin <kirill.yukhin@intel.com>
18036 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18038 * config/i386/i386.md
18039 (define_attr "isa"): Add avx512bw,noavx512bw.
18040 (define_attr "enabled"): Ditto.
18041 (define_split): Add 32/64-bit mask logic.
18042 (define_insn "*k<logic>qi"): New.
18043 (define_insn "*k<logic>hi"): New.
18044 (define_insn "*anddi_1"): Add mask version.
18045 (define_insn "*andsi_1"): Ditto.
18046 (define_insn "*<code><mode>_1"): Ditto.
18047 (define_insn "*<code>hi_1"): Ditto.
18048 (define_insn "kxnor<mode>"): New.
18049 (define_insn "kunpcksi"): New.
18050 (define_insn "kunpckdi"): New.
18051 (define_insn "*one_cmpl<mode>2_1"): Add mask version.
18052 (define_insn "*one_cmplhi2_1"): Ditto.
18054 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
18055 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18056 Anna Tikhonova <anna.tikhonova@intel.com>
18057 Ilya Tocar <ilya.tocar@intel.com>
18058 Andrey Turetskiy <andrey.turetskiy@intel.com>
18059 Ilya Verbin <ilya.verbin@intel.com>
18060 Kirill Yukhin <kirill.yukhin@intel.com>
18061 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18063 * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
18066 2014-08-14 Alexander Ivchenko <alexander.ivchenko@intel.com>
18067 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18068 Anna Tikhonova <anna.tikhonova@intel.com>
18069 Ilya Tocar <ilya.tocar@intel.com>
18070 Andrey Turetskiy <andrey.turetskiy@intel.com>
18071 Ilya Verbin <ilya.verbin@intel.com>
18072 Kirill Yukhin <kirill.yukhin@intel.com>
18073 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18075 * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
18077 (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
18078 (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
18079 xmm/ymm16+ when availble.
18080 * config/i386/i386.h
18081 (HARD_REGNO_NREGS): Add mask regs.
18082 (VALID_AVX512F_REG_MODE): Ditto.
18083 (VALID_AVX512F_REG_MODE) : Define.
18084 (VALID_MASK_AVX512BW_MODE): Ditto.
18085 (reg_class) (MASK_REG_P(X)): Define.
18086 * config/i386/i386.md: Do not split long moves with mask register,
18087 use kmovb if avx512bw is availible.
18088 (movdi_internal): Handle mask registers.
18090 2014-08-14 Richard Biener <rguenther@suse.de>
18092 PR tree-optimization/62081
18093 * tree-ssa-loop.c (pass_fix_loops): New pass.
18094 (pass_tree_loop::gate): Do not fixup loops here.
18095 * tree-pass.h (make_pass_fix_loops): Declare.
18096 * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
18098 2014-08-14 Richard Biener <rguenther@suse.de>
18100 * tree.c (type_hash_lookup, type_hash_add): Merge into ...
18101 (type_hash_canon): ... this and avoid 2nd lookup for the add.
18103 2014-08-14 Richard Biener <rguenther@suse.de>
18105 PR tree-optimization/62090
18106 * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
18107 (fold_builtin_2): Do not fold sprintf.
18108 (fold_builtin_3): Likewise.
18109 * gimple-fold.c (gimple_fold_builtin_sprintf): New function
18110 moved from builtins.c.
18111 (gimple_fold_builtin): Fold sprintf.
18113 2014-08-14 Richard Biener <rguenther@suse.de>
18115 PR rtl-optimization/62079
18116 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
18119 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
18121 * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
18122 current_function_decl.
18124 2014-08-14 Ilya Enkovich <ilya.enkovich@intel.com>
18126 * cgraph.c (cgraph_node::function_symbol): Fix wrong
18127 cgraph_function_node to cgraph_node::function_symbol
18130 2014-08-14 Zhenqiang Chen <zhenqiang.chen@arm.com>
18132 * config/arm/arm.c (arm_option_override): Set max_insns_skipped
18133 to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
18135 2014-08-13 Chen Gang gang.chen.5i5j@gmail.com
18137 * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
18140 2014-08-13 Roman Gareev <gareevroman@gmail.com>
18142 * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
18145 2014-08-12 Jakub Jelinek <jakub@redhat.com>
18148 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
18149 any registers that are used in mem_insn.
18151 2014-08-12 Steve Ellcey <sellcey@mips.com>
18153 * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
18155 2014-08-12 Steve Ellcey <sellcey@mips.com>
18157 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
18158 (MULTILIB_DIRNAMES): Ditto.
18159 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
18160 * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
18161 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
18162 * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
18163 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
18164 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
18166 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18169 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
18170 of __ARM_SIZEOF_WCHAR_T.
18172 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18175 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
18176 Remove unnecessary attributes.
18178 2014-08-12 Yury Gribov <y.gribov@samsung.com>
18180 * internal-fn.c (init_internal_fns): Fix off-by-one.
18182 2014-08-12 Alexander Ivchenko <alexander.ivchenko@intel.com>
18183 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18184 Anna Tikhonova <anna.tikhonova@intel.com>
18185 Ilya Tocar <ilya.tocar@intel.com>
18186 Andrey Turetskiy <andrey.turetskiy@intel.com>
18187 Ilya Verbin <ilya.verbin@intel.com>
18188 Kirill Yukhin <kirill.yukhin@intel.com>
18189 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18191 * config/i386/i386.c (standard_sse_constant_opcode): Use
18192 vpxord/vpternlog if avx512 is availible.
18194 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
18196 PR middle-end/62103
18197 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
18198 bitfields, that is when size doesn't match the size of type or the
18199 size of the constructor.
18201 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
18203 * config/rs6000/constraints.md (wh constraint): New constraint,
18204 for FP registers if direct move is available.
18205 (wi constraint): New constraint, for VSX/FP registers that can
18206 handle 64-bit integers.
18207 (wj constraint): New constraint for VSX/FP registers that can
18208 handle 64-bit integers for direct moves.
18209 (wk constraint): New constraint for VSX/FP registers that can
18210 handle 64-bit doubles for direct moves.
18211 (wy constraint): Make documentation match implementation.
18213 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
18214 scalar_in_vmx_p field to simplify tests of whether SFmode or
18215 DFmode can go in the Altivec registers.
18216 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
18217 (rs6000_setup_reg_addr_masks): Likewise.
18218 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
18219 field, and wh/wi/wj/wk constraints.
18220 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
18221 the wh/wi/wj/wk constraints.
18222 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
18223 upper registers, prefer VSX registers unless the operation is a
18224 memory operation with REG+OFFSET addressing.
18226 * config/rs6000/vsx.md (VSr mode attribute): Add support for
18227 DImode. Change SFmode to use ww constraint instead of d to allow
18228 SF registers in the upper registers.
18231 (VSr5): Fix thinko in comment.
18232 (VSa): New mode attribute that is an alternative to wa, that
18233 returns the VSX register class that a mode can go in, but may not
18234 be the preferred register class.
18235 (VS_64dm): New mode attribute for appropriate register classes for
18236 referencing 64-bit elements of vectors for direct moves and normal
18238 (VS_64reg): Likewise.
18239 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
18240 register allocator to only registers the data type can handle.
18241 (vsx_le_perm_load_<mode>): Likewise.
18242 (vsx_le_perm_store_<mode>): Likewise.
18243 (vsx_xxpermdi2_le_<mode>): Likewise.
18244 (vsx_xxpermdi4_le_<mode>): Likewise.
18245 (vsx_lxvd2x2_le_<mode>): Likewise.
18246 (vsx_lxvd2x4_le_<mode>): Likewise.
18247 (vsx_stxvd2x2_le_<mode>): Likewise.
18248 (vsx_add<mode>3): Likewise.
18249 (vsx_sub<mode>3): Likewise.
18250 (vsx_mul<mode>3): Likewise.
18251 (vsx_div<mode>3): Likewise.
18252 (vsx_tdiv<mode>3_internal): Likewise.
18253 (vsx_fre<mode>2): Likewise.
18254 (vsx_neg<mode>2): Likewise.
18255 (vsx_abs<mode>2): Likewise.
18256 (vsx_nabs<mode>2): Likewise.
18257 (vsx_smax<mode>3): Likewise.
18258 (vsx_smin<mode>3): Likewise.
18259 (vsx_sqrt<mode>2): Likewise.
18260 (vsx_rsqrte<mode>2): Likewise.
18261 (vsx_tsqrt<mode>2_internal): Likewise.
18262 (vsx_fms<mode>4): Likewise.
18263 (vsx_nfma<mode>4): Likewise.
18264 (vsx_eq<mode>): Likewise.
18265 (vsx_gt<mode>): Likewise.
18266 (vsx_ge<mode>): Likewise.
18267 (vsx_eq<mode>_p): Likewise.
18268 (vsx_gt<mode>_p): Likewise.
18269 (vsx_ge<mode>_p): Likewise.
18270 (vsx_xxsel<mode>): Likewise.
18271 (vsx_xxsel<mode>_uns): Likewise.
18272 (vsx_copysign<mode>3): Likewise.
18273 (vsx_float<VSi><mode>2): Likewise.
18274 (vsx_floatuns<VSi><mode>2): Likewise.
18275 (vsx_fix_trunc<mode><VSi>2): Likewise.
18276 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
18277 (vsx_x<VSv>r<VSs>i): Likewise.
18278 (vsx_x<VSv>r<VSs>ic): Likewise.
18279 (vsx_btrunc<mode>2): Likewise.
18280 (vsx_b2trunc<mode>2): Likewise.
18281 (vsx_floor<mode>2): Likewise.
18282 (vsx_ceil<mode>2): Likewise.
18283 (vsx_<VS_spdp_insn>): Likewise.
18284 (vsx_xscvspdp): Likewise.
18285 (vsx_xvcvspuxds): Likewise.
18286 (vsx_float_fix_<mode>2): Likewise.
18287 (vsx_set_<mode>): Likewise.
18288 (vsx_extract_<mode>_internal1): Likewise.
18289 (vsx_extract_<mode>_internal2): Likewise.
18290 (vsx_extract_<mode>_load): Likewise.
18291 (vsx_extract_<mode>_store): Likewise.
18292 (vsx_splat_<mode>): Likewise.
18293 (vsx_xxspltw_<mode>): Likewise.
18294 (vsx_xxspltw_<mode>_direct): Likewise.
18295 (vsx_xxmrghw_<mode>): Likewise.
18296 (vsx_xxmrglw_<mode>): Likewise.
18297 (vsx_xxsldwi_<mode>): Likewise.
18298 (vsx_xscvdpspn): Tighten constraints to only use register classes
18300 (vsx_xscvspdpn): Likewise.
18301 (vsx_xscvdpspn_scalar): Likewise.
18303 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
18304 wj, and wk constraints.
18305 (GPR_REG_CLASS_P): New helper macro for register classes targeting
18306 general purpose registers.
18308 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
18310 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
18311 DImode instead of wm. Use wk constraint for direct move of DFmode
18313 (extendsidi2_lfiwax): Likewise.
18314 (lfiwax): Likewise.
18315 (lfiwzx): Likewise.
18316 (movdi_internal64): Likewise.
18318 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
18319 wk constraints. Make the wy constraint documentation match them
18322 2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
18324 Replacement of isl_int by isl_val
18325 * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
18326 (compute_bounds_for_param): use isl_val instead of isl_int
18327 (compute_bounds_for_loop): likewise
18328 * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
18329 (build_linearized_memory_access): use isl_val instead of isl_int
18330 (pdr_stride_in_loop): likewise
18331 * graphite-optimize-isl.c:
18332 (getPrevectorMap): use isl_val instead of isl_int
18334 (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
18335 graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
18336 (extern the_isl_ctx): declare
18337 (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
18338 (extract_affine_gmp): likewise
18340 (build_loop_iteration_domains): likewise
18341 (add_param_constraints): likewise
18343 2014-08-11 Richard Biener <rguenther@suse.de>
18345 PR tree-optimization/62075
18346 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
18347 handle uses in patterns.
18349 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
18350 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18351 Anna Tikhonova <anna.tikhonova@intel.com>
18352 Ilya Tocar <ilya.tocar@intel.com>
18353 Andrey Turetskiy <andrey.turetskiy@intel.com>
18354 Ilya Verbin <ilya.verbin@intel.com>
18355 Kirill Yukhin <kirill.yukhin@intel.com>
18356 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18358 * common/config/i386/i386-common.c
18359 (OPTION_MASK_ISA_AVX512VL_SET): Define.
18360 (OPTION_MASK_ISA_AVX512F_UNSET): Update.
18361 (ix86_handle_option): Handle OPT_mavx512vl.
18362 * config/i386/cpuid.h (bit_AVX512VL): Define.
18363 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
18364 set -mavx512vl accordingly.
18365 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
18366 OPTION_MASK_ISA_AVX512VL.
18367 * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
18368 (ix86_option_override_internal): Define PTA_AVX512VL, handle
18369 PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
18370 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
18371 * config/i386/i386.h (TARGET_AVX512VL): Define.
18372 (TARGET_AVX512VL_P(x)): Ditto.
18373 * config/i386/i386.opt: Add mavx512vl.
18375 2014-08-11 Felix Yang <fei.yang0953@gmail.com>
18377 PR tree-optimization/62073
18378 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
18381 2014-08-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
18382 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18383 Anna Tikhonova <anna.tikhonova@intel.com>
18384 Ilya Tocar <ilya.tocar@intel.com>
18385 Andrey Turetskiy <andrey.turetskiy@intel.com>
18386 Ilya Verbin <ilya.verbin@intel.com>
18387 Kirill Yukhin <kirill.yukhin@intel.com>
18388 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18390 * common/config/i386/i386-common.c
18391 (OPTION_MASK_ISA_AVX512BW_SET) : Define.
18392 (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
18393 (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
18394 (ix86_handle_option): Handle OPT_mavx512bw.
18395 * config/i386/cpuid.h (bit_AVX512BW): Define.
18396 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
18397 set -mavx512bw accordingly.
18398 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
18399 OPTION_MASK_ISA_AVX512BW.
18400 * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
18401 (ix86_option_override_internal): Define PTA_AVX512BW, handle
18402 PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
18403 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
18404 * config/i386/i386.h (TARGET_AVX512BW): Define.
18405 (TARGET_AVX512BW_P(x)): Ditto.
18406 * config/i386/i386.opt: Add mavx512bw.
18408 2014-08-11 Richard Biener <rguenther@suse.de>
18410 PR tree-optimization/62070
18411 * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
18412 Remove SSA checking.
18414 2014-08-11 Yury Gribov <y.gribov@samsung.com>
18416 * asan.c (asan_check_flags): New enum.
18417 (build_check_stmt_with_calls): Removed function.
18418 (build_check_stmt): Split inlining logic to
18419 asan_expand_check_ifn.
18420 (instrument_derefs): Rename parameter.
18421 (instrument_mem_region_access): Rename parameter.
18422 (instrument_strlen_call): Likewise.
18423 (asan_expand_check_ifn): New function.
18424 (asan_instrument): Remove old code.
18425 (pass_sanopt::execute): Change handling of
18426 asan-instrumentation-with-call-threshold.
18427 (asan_clear_shadow): Fix formatting.
18428 (asan_function_start): Likewise.
18429 (asan_emit_stack_protection): Likewise.
18430 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
18431 Update description.
18432 * internal-fn.c (expand_ASAN_CHECK): New function.
18433 * internal-fn.def (ASAN_CHECK): New internal function.
18434 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
18435 Update description.
18436 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
18437 * tree.c: Small comment fix.
18439 2014-08-11 Yury Gribov <y.gribov@samsung.com>
18441 * gimple.c (gimple_call_fnspec): Support internal functions.
18442 (gimple_call_return_flags): Use const.
18443 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
18444 * internal-fn.def: Add fnspec information.
18445 * internal-fn.h (internal_fn_fnspec): New function.
18446 (init_internal_fns): Declare new function.
18447 * internal-fn.c (internal_fn_fnspec_array): New global variable.
18448 (init_internal_fns): New function.
18449 * tree-core.h: Update macro call.
18450 * tree.c (build_common_builtin_nodes): Initialize internal fns.
18452 2014-08-10 Gerald Pfeifer <gerald@pfeifer.com>
18454 * lto-streamer.h (struct output_block::symbol): Change from
18455 struct symtab_node to plain symtab_node.
18456 (referenced_from_this_partition_p): Change first parameter
18457 from struct symtab_node to plain symtab_node.
18459 2014-08-10 Marek Polacek <polacek@redhat.com>
18462 * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
18464 2014-08-09 Jan Hubicka <hubicka@ucw.cz>
18466 * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
18467 DECL correctly; do not give up on types in static storage.
18469 2014-08-09 Paolo Carlini <paolo.carlini@oracle.com>
18471 * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
18473 2014-08-09 Roman Gareev <gareevroman@gmail.com>
18475 * graphite-isl-ast-to-gimple.c:
18476 (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
18478 * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
18480 2014-08-08 Guozhi Wei <carrot@google.com>
18482 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
18484 2014-08-08 Cary Coutant <ccoutant@google.com>
18486 * dwarf2out.c (get_skeleton_type_unit): Remove.
18487 (output_skeleton_debug_sections): Remove skeleton type units.
18488 (output_comdat_type_unit): Likewise.
18489 (dwarf2out_finish): Likewise.
18491 2014-08-07 Yi Yang <ahyangyi@google.com>
18493 * predict.c (expr_expected_value_1): Remove the redundant assignment.
18495 2014-08-08 Richard Biener <rguenther@suse.de>
18497 * lto-streamer.h (struct lto_input_block): Make it a class
18498 with a constructor.
18499 (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
18500 (struct lto_function_header, struct lto_simple_header,
18501 struct lto_simple_header_with_strings,
18502 struct lto_decl_header, struct lto_function_header): Make
18503 a simple inheritance hieararchy. Remove unused fields.
18504 (struct lto_asm_header): Remove.
18505 * lto-streamer-out.c (produce_asm): Adjust.
18506 (lto_output_toplevel_asms): Likewise.
18507 (produce_asm_for_decls): Likewise.
18508 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
18509 * data-streamer-in.c (string_for_index): Likewise.
18510 * ipa-inline-analysis.c (inline_read_section): Likewise.
18511 * ipa-prop.c (ipa_prop_read_section): Likewise.
18512 (read_replacements_section): Likewise.
18513 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
18514 * lto-section-in.c (lto_create_simple_input_block): Likewise.
18515 (lto_destroy_simple_input_block): Likewise.
18516 * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
18517 (lto_input_toplevel_asms): Likewise.
18519 2014-08-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
18520 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
18521 Anna Tikhonova <anna.tikhonova@intel.com>
18522 Ilya Tocar <ilya.tocar@intel.com>
18523 Andrey Turetskiy <andrey.turetskiy@intel.com>
18524 Ilya Verbin <ilya.verbin@intel.com>
18525 Kirill Yukhin <kirill.yukhin@intel.com>
18526 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
18528 * common/config/i386/i386-common.c
18529 (OPTION_MASK_ISA_AVX512DQ_SET): Define.
18530 (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
18531 (ix86_handle_option): Handle OPT_mavx512dq.
18532 * config/i386/cpuid.h (bit_AVX512DQ): Define.
18533 * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
18534 set -mavx512dq accordingly.
18535 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
18536 OPTION_MASK_ISA_AVX512DQ.
18537 * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
18538 (ix86_option_override_internal): Define PTA_AVX512DQ, handle
18539 PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
18540 (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
18541 * config/i386/i386.h (TARGET_AVX512DQ): Define.
18542 (TARGET_AVX512DQ_P(x)): Ditto.
18543 * config/i386/i386.opt: Add mavx512dq.
18545 2014-08-08 Richard Biener <rguenther@suse.de>
18547 * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
18548 target_percent, target_percent_s): Export.
18549 (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
18550 fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
18551 fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
18552 fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
18553 fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
18554 Move to gimple-fold.c.
18555 (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
18557 (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
18558 mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
18559 (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
18560 memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
18561 (rewrite_call_expr_array): Remove.
18562 (fold_builtin_sprintf_chk): Likewise.
18563 (fold_builtin_snprintf_chk): Likewise.
18564 (fold_builtin_varargs): Remove handling of sprintf_chk,
18565 vsprintf_chk, snprintf_chk and vsnprintf_chk.
18566 (gimple_fold_builtin_sprintf_chk): Remove.
18567 (gimple_fold_builtin_snprintf_chk): Likewise.
18568 (gimple_fold_builtin_varargs): Likewise.
18569 (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
18570 * predict.c (optimize_bb_for_size_p): Handle NULL bb.
18571 * gimple.c (gimple_seq_add_seq_without_update): New function.
18572 * gimple.h (gimple_seq_add_seq_without_update): Declare.
18573 * gimple-fold.c: Include output.h.
18574 (gsi_replace_with_seq_vops): New function, split out from ...
18575 (gimplify_and_update_call_from_tree): ... here.
18576 (replace_call_with_value): New function.
18577 (replace_call_with_call_and_fold): Likewise.
18578 (var_decl_component_p): Moved from builtins.c.
18579 (gimple_fold_builtin_memory_op): Moved from builtins.c
18580 fold_builtin_memory_op and rewritten to GIMPLE.
18581 (gimple_fold_builtin_memset): Likewise.
18582 (gimple_fold_builtin_strcpy): Likewise.
18583 (gimple_fold_builtin_strncpy): Likewise.
18584 (gimple_fold_builtin_strcat): Likewise.
18585 (gimple_fold_builtin_fputs): Likewise.
18586 (gimple_fold_builtin_memory_chk): Likewise.
18587 (gimple_fold_builtin_stxcpy_chk): Likewise.
18588 (gimple_fold_builtin_stxncpy_chk): Likewise.
18589 (gimple_fold_builtin_snprintf_chk): Likewise.
18590 (gimple_fold_builtin_sprintf_chk): Likewise.
18591 (gimple_fold_builtin_strlen): New function.
18592 (gimple_fold_builtin_with_strlen): New function split out from
18593 gimple_fold_builtin.
18594 (gimple_fold_builtin): Change signature and handle
18595 bzero, memset, bcopy, memcpy, mempcpy and memmove folding
18596 here. Call gimple_fold_builtin_with_strlen.
18597 (gimple_fold_call): Adjust.
18599 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
18601 * calls.c (precompute_arguments): Check
18602 promoted_for_signed_and_unsigned_p and set the promoted mode.
18603 (promoted_for_signed_and_unsigned_p): New function.
18604 (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18605 and set the promoted mode.
18606 * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18607 * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18608 SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18611 2014-08-08 Kugan Vivekanandarajah <kuganv@linaro.org>
18613 * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
18614 instead of SUBREG_PROMOTED_UNSIGNED_SET.
18615 (expand_call): Likewise.
18616 * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
18617 to get promoted mode.
18618 * combine.c (record_promoted_value): Skip > 0 comparison with
18619 SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
18620 * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
18621 of SUBREG_PROMOTED_UNSIGNED_P.
18622 (convert_modes): Likewise.
18623 (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
18624 Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
18625 (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
18626 SUBREG_PROMOTED_UNSIGNED_SET.
18627 * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
18628 instead of SUBREG_PROMOTED_UNSIGNED_SET.
18629 * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
18630 SUBREG_PROMOTED_SET.
18631 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
18632 SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
18633 * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
18634 of SUBREG_PROMOTED_UNSIGNED_P.
18635 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
18636 (SUBREG_PROMOTED_SET): New define.
18637 (SUBREG_PROMOTED_GET): Likewise.
18638 (SUBREG_PROMOTED_SIGN): Likewise.
18639 (SUBREG_PROMOTED_SIGNED_P): Likewise.
18640 (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
18641 (SUBREG_PROMOTED_UNSIGNED_P): Updated.
18642 * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
18643 instead of SUBREG_PROMOTED_UNSIGNED_GET.
18644 (nonzero_bits1): Skip > 0 comparison with the results as
18645 SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
18646 (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
18647 of !SUBREG_PROMOTED_UNSIGNED_P.
18648 * simplify-rtx.c (simplify_unary_operation_1): Use new
18649 SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
18650 (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
18651 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
18652 SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
18654 2014-08-07 Jan Hubicka <hubicka@ucw.cz>
18656 * ipa-devirt.c: Include gimple-pretty-print.h
18657 (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
18659 (decl_maybe_in_construction_p): Fix conditional on cdtor check
18660 (get_polymorphic_call_info): Fix return value
18661 (type_change_info): New sturcture based on ipa-prop
18663 (noncall_stmt_may_be_vtbl_ptr_store): New predicate
18664 based on ipa-prop variant.
18665 (extr_type_from_vtbl_ptr_store): New function
18666 based on ipa-prop variant.
18667 (record_known_type): New function.
18668 (check_stmt_for_type_change): New function.
18669 (get_dynamic_type): New function.
18670 * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
18671 * tree-ssa-pre.c: ipa-utils.h
18672 (eliminate_dom_walker::before_dom_children): Use ipa-devirt
18673 machinery; sanity check with ipa-prop devirtualization.
18674 * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
18677 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
18679 * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
18680 * alias.c, cfgexpand.c, cgraphbuild.c,
18681 config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
18682 config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
18683 config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
18684 config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
18685 config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
18686 config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
18687 config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
18688 dse.c, except.c, gengtype.c, gimple-expr.c,
18689 gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
18690 ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
18691 tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
18692 tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
18693 tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
18694 tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
18696 * pointer-set.c: Remove file.
18697 * pointer-set.h: Remove file.
18699 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18701 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
18702 * config/arm/types.md (f_sels, f_seld): Delete.
18704 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18706 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
18707 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
18708 (aarch64_movdi_<mode>high): Likewise.
18709 (aarch64_mov<mode>high_di): Likewise.
18710 (aarch64_movdi_<mode>low): Likewise.
18711 (aarch64_mov<mode>low_di): Likewise.
18712 (aarch64_movtilow_tilow): Likewise.
18713 Add comment explaining usage of fp,simd attributes and of
18714 TARGET_FLOAT and TARGET_SIMD.
18716 2014-08-07 Ian Bolton <ian.bolton@arm.com>
18717 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18719 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
18720 Use MOVN when one of the half-words is 0xffff.
18722 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
18724 * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
18726 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18728 * haifa-sched.c (SCHED_SORT): Delete. Macro used exactly once.
18729 (enum rfs_decition:RFS_*): New constants wrapped in an enum.
18730 (rfs_str): String corresponding to RFS_* constants.
18731 (rank_for_schedule_stats_t): New typedef.
18732 (rank_for_schedule_stats): New static variable.
18733 (rfs_result): New static function.
18734 (rank_for_schedule): Track statistics for deciding heuristics.
18735 (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
18737 (ready_sort): Use them for debug printouts.
18738 (schedule_block): Init statistics state. Print statistics on
18739 rank_for_schedule decisions.
18741 2014-08-07 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18743 * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
18745 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
18747 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
18750 2014-08-07 Trevor Saunders <tsaunders@mozilla.com>
18752 * hash-map.h (default_hashmap_traits): Adjust overloads of hash
18753 function to not conflict.
18754 * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
18755 gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
18756 lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
18757 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
18758 tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
18761 2014-08-07 Marek Polacek <polacek@redhat.com>
18763 * fold-const.c (fold_binary_loc): Add folding of
18764 (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
18766 2013-08-07 Ilya Enkovich <ilya.enkovich@intel.com>
18768 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
18769 instead of type size.
18770 (ASM_FINISH_DECLARE_OBJECT): Likewise.
18772 2014-08-07 Marat Zakirov <m.zakirov@samsung.com>
18774 * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
18775 (*thumb1_movqi_insn): Likewise.
18776 * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
18778 2014-08-07 Tom de Vries <tom@codesourcery.com>
18780 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
18781 (glibc_2_11_or_earlier): Remove effective-target keywords.
18783 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
18785 * config/arm/arm.c (bdesc_2arg): Fix typo.
18786 (arm_atomic_assign_expand_fenv): Remove The default implementation.
18788 2014-08-07 Zhenqiang Chen <zhenqiang.chen@arm.com>
18790 * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
18792 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
18795 * haifa-sched.c (advance_one_cycle): Fix dump.
18796 (schedule_block): Don't advance cycle if we are already at the
18797 beginning of the cycle.
18799 2014-08-06 Martin Jambor <mjambor@suse.cz>
18802 * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
18804 2014-08-06 Richard Biener <rguenther@suse.de>
18807 * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
18809 (lto_input_tree): Pop SCCs here.
18811 2014-08-06 Richard Biener <rguenther@suse.de>
18813 PR tree-optimization/61320
18814 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
18815 handle misaligned loads.
18817 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
18819 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
18820 (aarch64_expand_vec_perm_const): Check for dup before zip.
18822 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18824 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
18825 CONST_INT_P instead of GET_CODE and compare.
18826 (aarch64_select_cc_mode): Likewise.
18827 (aarch64_print_operand): Likewise.
18828 (aarch64_rtx_costs): Likewise.
18829 (aarch64_simd_valid_immediate): Likewise.
18830 (aarch64_simd_check_vect_par_cnst_half): Likewise.
18831 (aarch64_simd_emit_pair_result_insn): Likewise.
18833 2014-08-05 David Malcolm <dmalcolm@redhat.com>
18835 * gdbhooks.py (find_gcc_source_dir): New helper function.
18836 (class PassNames): New class, locating and parsing passes.def.
18837 (class BreakOnPass): New command "break-on-pass".
18839 2014-08-05 Trevor Saunders <tsaunders@mozilla.com>
18841 * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
18844 2014-08-05 Richard Biener <rguenther@suse.de>
18846 PR rtl-optimization/61672
18847 * emit-rtl.h (mem_attrs_eq_p): Declare.
18848 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
18849 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
18850 * cfgcleanup.c (merge_memattrs): Likewise.
18851 Include emit-rtl.h.
18853 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18855 * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
18856 rather than singleton vectors.
18857 (vqdmlsls_lane_s32): Likewise.
18859 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18861 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
18862 Use VSDQ_HSI mode iterator.
18863 (aarch64_sqrdmulh_laneq<mode>): Likewise.
18864 (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
18865 * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
18866 Use BUILTIN_VDQHS macro.
18867 (sqrdmulh_laneq): Likewise.
18868 * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
18869 (vqdmlals_laneq_s32): Likewise.
18870 (vqdmlslh_laneq_s16): Likewise.
18871 (vqdmlsls_laneq_s32): Likewise.
18872 (vqdmulhh_laneq_s16): Likewise.
18873 (vqdmulhs_laneq_s32): Likewise.
18874 (vqrdmulhh_laneq_s16): Likewise.
18875 (vqrdmulhs_laneq_s32): Likewise.
18877 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18879 * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
18880 (vmuld_laneq_f64): Likewise.
18881 (vmuls_laneq_f32): Likewise.
18882 (vmul_n_f64): Likewise.
18883 (vmuld_lane_f64): Reimplement in C.
18884 (vmuls_lane_f32): Likewise.
18886 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18888 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
18890 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
18892 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18894 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
18895 (rbitsi2): Likewise.
18896 (*arm_rev): Set predicable and predicable_short_it attributes.
18898 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18900 * convert.c (convert_to_integer): Guard transformation to lrint by
18903 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
18905 * config/aarch64/aarch64-builtins.c
18906 (aarch64_simd_builtin_type_mode): Delete.
18907 (v8qi_UP): Remap to V8QImode.
18908 (v4hi_UP): Remap to V4HImode.
18909 (v2si_UP): Remap to V2SImode.
18910 (v2sf_UP): Remap to V2SFmode.
18911 (v1df_UP): Remap to V1DFmode.
18912 (di_UP): Remap to DImode.
18913 (df_UP): Remap to DFmode.
18914 (v16qi_UP):V16QImode.
18915 (v8hi_UP): Remap to V8HImode.
18916 (v4si_UP): Remap to V4SImode.
18917 (v4sf_UP): Remap to V4SFmode.
18918 (v2di_UP): Remap to V2DImode.
18919 (v2df_UP): Remap to V2DFmode.
18920 (ti_UP): Remap to TImode.
18921 (ei_UP): Remap to EImode.
18922 (oi_UP): Remap to OImode.
18923 (ci_UP): Map to CImode.
18924 (xi_UP): Remap to XImode.
18925 (si_UP): Remap to SImode.
18926 (sf_UP): Remap to SFmode.
18927 (hi_UP): Remap to HImode.
18928 (qi_UP): Remap to QImode.
18929 (aarch64_simd_builtin_datum): Make mode a machine_mode.
18930 (VAR1): Build builtin name.
18931 (aarch64_init_simd_builtins): Remove dead code.
18933 2014-08-05 Roman Gareev <gareevroman@gmail.com>
18935 * graphite-isl-ast-to-gimple.c:
18936 (set_options): New function.
18937 (scop_to_isl_ast): Add calling of set_options.
18939 2014-08-05 Jakub Jelinek <jakub@redhat.com>
18941 * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
18942 (analyze_iv_to_split_insn): Don't initialize them.
18943 (get_ivts_expr): Removed.
18944 (allocate_basic_variable, insert_base_initialization): Use
18945 SET_SRC instead of *get_ivts_expr.
18946 (split_iv): Use &SET_SRC instead of get_ivts_expr.
18948 2014-08-05 Roman Gareev <gareevroman@gmail.com>
18950 * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
18951 (translate_isl_ast_for_loop): Add checking of the
18952 flag_loop_parallelize_all.
18953 (ast_build_before_for): New function.
18954 (scop_to_isl_ast): Add checking of the
18955 flag_loop_parallelize_all.
18956 * graphite-dependences.c: Move the defenition of the
18957 scop_get_dependences from graphite-optimize-isl.c to this file.
18958 (apply_schedule_on_deps): Add checking of the ux's emptiness.
18959 (carries_deps): Add checking of the x's value.
18960 * graphite-optimize-isl.c: Move the defenition of the
18961 scop_get_dependences to graphite-dependences.c.
18962 * graphite-poly.h: Add declarations of scop_get_dependences
18965 2014-08-04 Rohit <rohitarulraj@freescale.com>
18968 * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
18970 (alt_reg_names): Likewise.
18971 (rs6000_dwarf_register_span): For SPE high registers, replace
18972 dwarf register numbers with GCC hard register numbers.
18973 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
18974 (rs6000_dbx_register_number): For SPE high registers, return dwarf
18975 register number for the corresponding GCC hard register number.
18976 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
18977 newly added GCC hard register numbers for SPE high registers.
18978 (DWARF_FRAME_REGISTERS): Likewise.
18979 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
18980 (DWARF_FRAME_REGNUM): Likewise.
18981 (FIXED_REGISTERS): Likewise.
18982 (CALL_USED_REGISTERS): Likewise.
18983 (CALL_REALLY_USED_REGISTERS): Likewise.
18984 (REG_ALLOC_ORDER): Likewise.
18985 (enum reg_class): Likewise.
18986 (REG_CLASS_NAMES): Likewise.
18987 (REG_CLASS_CONTENTS): Likewise.
18988 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
18990 2014-08-04 Richard Biener <rguenther@suse.de>
18992 * gimple-fold.h (gimple_fold_builtin): Remove.
18993 * gimple-fold.c (gimple_fold_builtin): Make static.
18994 * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
18995 fold_stmt, not gimple_fold_builtin.
18997 2014-08-04 Martin Liska <mliska@suse.cz>
18999 * cgraph.h (csi_end_p): Removed.
19000 (csi_next): Likewise.
19001 (csi_node): Likewise.
19002 (csi_start): Likewise.
19003 (cgraph_node_in_set_p): Likewise.
19004 (cgraph_node_set_size): Likewise.
19005 (vsi_end_p): Likewise.
19006 (vsi_next): Likewise.
19007 (vsi_node): Likewise.
19008 (vsi_start): Likewise.
19009 (varpool_node_set_size): Likewise.
19010 (cgraph_node_set_nonempty_p): Likewise.
19011 (varpool_node_set_nonempty_p): Likewise.
19012 * cgraphunit.c (cgraph_process_new_functions): vec replaces
19014 * ipa-inline-transform.c: Likewise.
19015 * ipa-utils.c (cgraph_node_set_new): Removed.
19016 (cgraph_node_set_add): Likewise.
19017 (cgraph_node_set_remove): Likewise.
19018 (cgraph_node_set_find): Likewise.
19019 (dump_cgraph_node_set): Likewise.
19020 (debug_cgraph_node_set): Likewise.
19021 (free_cgraph_node_set): Likewise.
19022 (varpool_node_set_new): Likewise.
19023 (varpool_node_set_add): Likewise.
19024 (varpool_node_set_remove): Likewise.
19025 (varpool_node_set_find): Likewise.
19026 (dump_varpool_node_set): Likewise.
19027 (free_varpool_node_set): Likewise.
19028 (debug_varpool_node_set): Likewise.
19029 * tree-emutls.c (struct tls_var_data):
19030 (emutls_index): Removed.
19031 (emutls_decl): Likewise.
19032 (gen_emutls_addr): Function implementation uses newly added
19033 hash_map<varpool_node *, tls_var_data>.
19034 (clear_access_vars): Likewise.
19035 (create_emultls_var): Likewise.
19036 (ipa_lower_emutls): Likewise.
19037 (reset_access): New function.
19039 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
19041 * config/i386/i386.c (ix86_option_override_internal): Add
19042 PTA_RDRND and PTA_MOVBE for bdver4.
19044 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19045 James Greenhalgh <james.greenhalgh@arm.com>
19047 * doc/md.texi (clrsb): Document.
19048 (clz): Change reference to x into operand 1.
19050 (popcount): Likewise.
19052 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19055 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
19056 move to subtarget in serial version if result is ignored.
19058 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19059 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19061 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
19062 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
19063 (sched_analyze_insn): Update use of try_group_insn to
19064 sched_macro_fuse_insns.
19065 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
19066 arguments that are not conditional jumps.
19068 2014-08-04 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
19070 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
19071 family information. Handle BTVER2 cpu with cpuid family value.
19073 2014-08-04 Tom de Vries <tom@codesourcery.com>
19075 * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
19076 (glibc_2_11_or_earlier): Document effective-target keywords.
19078 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
19080 * ipa-devirt.c (odr_type_warn_count): Add type.
19081 (possible_polymorphic_call_targets): Set it.
19082 (ipa_devirt): Use it.
19084 2014-08-01 Jan Hubicka <hubicka@ucw.cz>
19086 * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
19088 * ipa-devirt.c: Include hash-map.h
19089 (struct polymorphic_call_target_d): Add type_warning and decl_warning.
19090 (clear_speculation): Break out of ...
19091 (get_class_context): ... here; speed up handling obviously useless
19093 (odr_type_warn_count, decl_warn_count): New structures.
19094 (final_warning_record): New structure.
19095 (final_warning_records): New static variable.
19096 (possible_polymorphic_call_targets): Cleanup handling of
19097 speculative info; do not build speculation when user do not care;
19098 record info about warnings when asked for.
19099 (add_decl_warning): New function.
19100 (type_warning_cmp): New function.
19101 (decl_warning_cmp): New function.
19102 (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
19103 (gate): Enable pass when warnings are requested.
19104 * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
19107 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
19109 * hash-map.h (default_hashmap_traits::mark_key_deleted):
19111 (hash_map::remove): New method.
19112 (hash_map::traverse): New method.
19113 * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
19114 ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
19115 tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
19116 tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
19117 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
19118 tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
19121 2014-08-02 Trevor Saunders <tsaunders@mozilla.com>
19123 * hash-set.h: new File.
19124 * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
19125 cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
19126 ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
19127 lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
19128 tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
19129 tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
19130 tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
19131 varpool.c: Use hash_set instead of pointer_set.
19133 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
19135 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
19137 2014-08-01 Jiong Wang <jiong.wang@arm.com>
19139 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
19140 for frame access when strict_p is false.
19142 2014-08-01 Renlin Li <renlin.li@arm.com>
19143 2014-08-01 Jiong Wang <jiong.wang@arm.com>
19145 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
19146 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
19147 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
19149 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
19151 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
19152 aarch64_mem_pair_offset.
19154 2014-08-01 Jiong Wang <jiong.wang@arm.com>
19156 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
19158 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
19159 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
19161 2014-08-01 Matthew Fortune <matthew.fortune@imgtec.com>
19163 * config/mips/mips.h (REGISTER_PREFIX): Define macro.
19165 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
19167 PR regression/61510
19168 * cgraphunit.c (analyze_functions): Use get_create rather than get
19169 for decls which are clones of abstract functions.
19171 2014-08-01 Martin Liska <mliska@suse.cz>
19173 * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
19174 * ipa-prop.h (count_formal_params): Global function created from static.
19175 * ipa-prop.c (count_formal_params): Likewise.
19176 * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
19177 profiles for semantically equivalent functions.
19178 * passes.c (do_per_function): If we load body of a function
19179 during WPA, this condition should behave same.
19180 * varpool.c (ctor_for_folding): More tolerant assert for variable
19181 aliases created during WPA.
19183 2014-08-01 Martin Liska <mliska@suse.cz>
19185 * doc/invoke.texi (Options That Control Optimization): Documentation
19186 for -foptimize-strlen introduced. Optimization levels default options
19189 2014-08-01 Jakub Jelinek <jakub@redhat.com>
19191 * opts.c (common_handle_option): Handle -fsanitize=alignment.
19192 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
19193 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
19195 * stor-layout.h (min_align_of_type): New prototype.
19196 * asan.c (pass_sanopt::execute): Don't perform gsi_next if
19197 ubsan_expand* told us not to do it. Remove the extra gsi_end_p
19199 * ubsan.c: Include builtins.h.
19200 (ubsan_expand_bounds_ifn): Change return type to bool,
19201 always return true.
19202 (ubsan_expand_null_ifn): Change return type to bool, change
19203 argument to gimple_stmt_iterator *. Handle both null and alignment
19204 sanitization, take type from ckind argument's type rather than
19206 (instrument_member_call): Removed.
19207 (instrument_mem_ref): Remove t argument, add mem and base arguments.
19208 Handle both null and alignment sanitization, don't say whole
19209 struct access is member access. Build 3 argument IFN_UBSAN_NULL
19210 call instead of 2 argument.
19211 (instrument_null): Adjust instrument_mem_ref caller. Don't
19212 instrument calls here.
19213 (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
19214 like SANITIZE_NULL.
19215 * stor-layout.c (min_align_of_type): New function.
19216 * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
19217 Or it into SANITIZE_UNDEFINED.
19218 * doc/invoke.texi (-fsanitize=alignment): Document.
19220 2014-07-31 Andi Kleen <ak@linux.intel.com>
19222 * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
19224 2014-07-31 Andi Kleen <ak@linux.intel.com>
19226 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
19228 (vn_reference_compute_hash): Dito.
19229 (vn_nary_op_compute_hash): Dito.
19230 (vn_phi_compute_hash): Dito.
19231 * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
19233 2014-07-31 Andi Kleen <ak@linux.intel.com>
19235 * tree-ssa-dom.c (iterative_hash_exprs_commutative):
19236 Rename to inchash:add_expr_commutative. Convert to inchash.
19237 (iterative_hash_hashable_expr): Rename to
19238 inchash:add_hashable_expr. Convert to inchash.
19239 (avail_expr_hash): Dito.
19241 2014-07-31 Andi Kleen <ak@linux.intel.com>
19243 * ipa-devirt.c (polymorphic_call_target_hasher::hash):
19244 Convert to inchash.
19246 2014-07-31 Andi Kleen <ak@linux.intel.com>
19248 * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
19250 2014-07-31 Andi Kleen <ak@linux.intel.com>
19252 * Makefile.in (OBJS): Add rtlhash.o
19253 * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
19254 (loc_checksum): Dito.
19255 (loc_checksum_ordered): Dito.
19256 (hash_loc_operands): Dito.
19258 (hash_loc_list): Dito.
19259 * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
19260 * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
19261 * rtlhash.c: New file.
19262 * rtlhash.h: New file.
19264 2014-07-31 Andi Kleen <ak@linux.intel.com>
19266 * inchash.h (inchash): Change inchash class to namespace.
19267 (class hash): ... Rename from inchash.
19268 (add_object): Move from macro to class template.
19269 * lto-streamer-out.c (hash_tree): Change inchash
19271 * tree.c (build_type_attribute_qual_variant): Dito.
19272 (type_hash_list): Dito.
19273 (attribute_hash_list): Dito.
19274 (iterative_hstate_expr): Rename to inchash::add_expr
19275 (build_range_type_1): Change inchash to inchash::hash
19276 and use hash::add_expr.
19277 (build_array_type_1): Dito.
19278 (build_function_type): Dito
19279 (build_method_type_directly): Dito.
19280 (build_offset_type): Dito.
19281 (build_complex_type): Dito.
19282 (make_vector_type): Dito.
19283 * tree.h (iterative_hash_expr): Dito.
19285 2014-07-31 Chen Gang <gang.chen.5i5j@gmail.com>
19287 * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
19289 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
19291 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
19292 correct alphabetical position.
19293 (vpaddd_f64): Rewrite using builtins.
19294 (vpaddd_s64): Move to correct alphabetical position.
19297 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
19300 * config/sh/sh.c (sh_legitimate_address_p,
19301 sh_legitimize_reload_address): Handle reg+reg address modes when
19302 ALLOW_INDEXED_ADDRESS is false.
19303 * config/sh/predicates.md (general_movsrc_operand,
19304 general_movdst_operand): Likewise.
19306 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
19308 * config/aarch64/aarch64-builtins.c
19309 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
19312 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
19314 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
19315 the generated mask based on BYTES_BIG_ENDIAN.
19316 (aarch64_simd_check_vect_par_cnst_half): New.
19317 * config/aarch64/aarch64-protos.h
19318 (aarch64_simd_check_vect_par_cnst_half): New.
19319 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
19320 the check out to aarch64_simd_check_vect_par_cnst_half.
19321 (vect_par_cnst_lo_half): Likewise.
19322 * config/aarch64/aarch64-simd.md
19323 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
19324 (move_hi_quad_<mode>): Always generate a low mask.
19326 2014-07-30 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19328 * doc/invoke.texi (AVR Options): Add documentation about
19329 __AVR_DEVICE_NAME__ built-in macro.
19331 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
19334 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
19335 constraints are satisfied.
19336 (<shift>di3_neon): Likewise.
19338 2014-07-31 Richard Biener <rguenther@suse.de>
19340 PR tree-optimization/61964
19341 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
19342 by structural equality.
19344 2014-07-31 Yury Gribov <y.gribov@samsung.com>
19346 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
19347 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
19348 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
19350 * gcc.c (sanitize_spec_function): Support new option.
19351 (SANITIZER_SPEC): Remove now redundant check.
19352 * opts.c (common_handle_option): Support new option.
19353 (finish_options): Check for incompatibilities.
19354 * toplev.c (process_options): Split userspace-specific checks.
19356 2014-07-31 Richard Biener <rguenther@suse.de>
19358 * lto-streamer.h (struct output_block): Remove global.
19359 (struct data_in): Remove labels, num_named_labels and
19360 num_unnamed_labels.
19361 * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
19362 * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
19364 2014-07-31 Marc Glisse <marc.glisse@inria.fr>
19367 * common.opt (-Wreturn-local-addr): Moved from c.opt.
19368 * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
19369 (isolate_path): New argument to avoid inserting a trap.
19370 (find_implicit_erroneous_behaviour): Handle returning the address
19371 of a local variable.
19372 (find_explicit_erroneous_behaviour): Likewise.
19374 2014-07-31 Bingfeng Mei <bmei@broadcom.com>
19377 * toplev.c (init_random_seed): Move piece of code never called to
19379 (set_random_seed): see above.
19381 2014-07-31 Tom de Vries <tom@codesourcery.com>
19383 * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
19385 2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
19387 * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
19388 (compute_regs_asm_clobbered): Use extract_asm_operands instead.
19390 2014-07-31 Richard Biener <rguenther@suse.de>
19392 * data-streamer.h (streamer_write_data_stream): Declare here,
19394 * lto-streamer.h (lto_output_data_stream): ... this. Remove.
19395 * lto-cgraph.c (lto_output_node): Adjust.
19396 (lto_output_varpool_node): Likewise.
19397 * data-streamer-out.c (streamer_string_index): Likewise.
19398 (streamer_write_data_stream, lto_append_block): Move from ...
19399 * lto-section-out.c (lto_output_data_stream,
19400 lto_append_block): ... here.
19402 2014-07-30 Mike Stump <mikestump@comcast.net>
19404 * configure.ac: Also check for popen.
19405 * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
19406 * configure: Regenerate.
19407 * config.in: Regenerate.
19409 2014-07-30 Martin Jambor <mjambor@suse.cz>
19411 * tree-sra.c (sra_ipa_modify_assign): Change type of the first
19412 parameter to gimple.
19414 2014-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19416 * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
19417 address as second parameter to __tpf_eh_return routine.
19419 2014-07-30 Jiong Wang <jiong.wang@arm.com>
19421 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
19424 2014-07-30 Tom Tromey <tromey@redhat.com>
19427 * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
19428 * doc/extend.texi (Type Attributes): Document designated_init
19431 2014-07-30 Roman Gareev <gareevroman@gmail.com>
19433 * graphite-isl-ast-to-gimple.c:
19434 (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
19435 (gcc_expression_from_isl_expression): Pass type to
19436 gcc_expression_from_isl_ast_expr_id.
19438 2014-07-30 Richard Biener <rguenther@suse.de>
19440 * lto-streamer.h (lto_write_data): New function.
19441 * langhooks.c (lhd_append_data): Do not free block.
19442 * lto-section-out.c (lto_write_data): New function writing
19443 raw data to the current section.
19444 (lto_write_stream): Adjust for langhook semantic change.
19445 (lto_destroy_simple_output_block): Write header directly.
19446 * lto-opts.c (lto_write_options): Write options directly.
19447 * lto-streamer-out.c (produce_asm): Write heaeder directly.
19448 (lto_output_toplevel_asms): Likewise.
19449 (copy_function_or_variable): Copy data directly.
19450 (write_global_references): Output index table directly.
19451 (lto_output_decl_state_refs): Likewise.
19452 (write_symbol): Write data directly.
19453 (produce_symtab): Adjust.
19454 (produce_asm_for_decls): Output header and refs directly.
19456 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
19458 * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
19459 to speculative_targets
19460 (get_class_context): Fix handling of contextes without outer type;
19461 avoid matching non-polymorphic types in LTO.
19462 (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
19463 parameter to speculative_targetsp; handle speculation.
19464 (dump_possible_polymorphic_call_targets): Update dumping.
19466 2014-07-29 Jan Hubicka <hubicka@ucw.cz>
19468 * common.opt (Wodr): Enable by default.
19470 2014-07-29 Olivier Hainque <hainque@adacore.com>
19472 * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
19474 2014-07-29 H.J. Lu <hongjiu.lu@intel.com>
19477 * gengtype.c (strtoken): New function.
19478 (create_user_defined_type): Replace strtok with strtoken.
19480 2014-07-29 Nathan Sidwell <nathan@acm.org>
19482 * gcov-io.c (gcov_var): Make hidden.
19483 * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
19484 (gcov_do_dump): Declare.
19485 (gcov_output_files): Call gcov_do_dump, not gcov_exit).
19487 2014-07-29 Martin Jambor <mjambor@suse.cz>
19489 * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
19490 parameter to gimple.
19491 (sra_modify_assign): Likewise.
19493 2014-07-29 Richard Biener <rguenther@suse.de>
19495 PR middle-end/52478
19496 * expr.c (expand_expr_real_2): Revert last change.
19498 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
19500 * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
19501 * cgraph.h (cgraph_indirect_call_info): Add speculative data.
19502 * gimple-fold.c (fold_gimple_assign): Fix check for virtual
19504 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
19505 (contains_type_p): Forward declare.
19506 (polymorphic_call_target_hasher::hash): Hash speculative info.
19507 (polymorphic_call_target_hasher::equal): Compare speculative info.
19508 (get_class_context): Handle speuclation.
19509 (contains_type_p): Update.
19510 (get_polymorphic_call_info_for_decl): Update.
19511 (walk_ssa_copies): Break out from ...
19512 (get_polymorphic_call_info): ... here; set speculative context
19514 * ipa-prop.c (ipa_write_indirect_edge_info,
19515 ipa_read_indirect_edge_info): Stream speculative context.
19516 * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
19517 (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
19518 SPECULATIVE_MAYBE_DERIVED_TYPE).
19519 (possible_polymorphic_call_targets overriders): Update.
19520 (dump_possible_polymorphic_call_targets overriders): Update.
19521 (dump_possible_polymorphic_call_target_p overriders): Update.
19523 2014-07-28 Jan Hubicka <hubicka@ucw.cz>
19525 * gimple-fold.c (fold_gimple_assign): Fix condition guarding
19526 ipa-devirt path; fix thinko there.
19528 2014-07-28 Trevor Saunders <tsaunders@mozilla.com>
19530 * config/i386/i386.c (ix86_return_in_memory): Replace one
19531 ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
19533 2014-07-28 Marek Polacek <polacek@redhat.com>
19535 * doc/invoke.texi (-Wno-odr): Fix @item entry. Tweak wording.
19537 2014-07-28 Peter Bergner <bergner@vnet.ibm.com>
19539 * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
19540 * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
19541 * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
19542 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
19543 (USE_LD_AS_NEEDED): Likewise.
19544 (ASM_APP_ON): Likewise.
19545 (ASM_APP_OFF): Likewise.
19546 (TARGET_POSIX_IO): Likewise.
19547 * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
19548 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
19549 (USE_LD_AS_NEEDED): Likewise.
19550 (ASM_APP_ON): Likewise.
19551 (ASM_APP_OFF): Likewise.
19552 (TARGET_POSIX_IO): Likewise.
19554 2014-07-28 Eric Botcazou <ebotcazou@adacore.com>
19556 PR middle-end/61734
19557 * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
19558 operators other than the equality operators.
19560 2014-07-28 Richard Biener <rguenther@suse.de>
19562 PR middle-end/52478
19563 * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
19564 sure to register SImode ones, not only >= word_mode ones.
19565 * expr.c (expand_expr_real_2): When expanding -ftrapv
19566 binops do not use OPTAB_LIB_WIDEN.
19568 2014-07-28 Richard Sandiford <rdsandiford@googlemail.com>
19570 PR middle-end/61919
19571 * tree-outof-ssa.c (insert_partition_copy_on_edge)
19572 (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
19573 (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
19574 inserting them in the insn stream.
19576 2014-07-28 Marek Polacek <polacek@redhat.com>
19578 PR middle-end/61913
19579 * common.opt (Wodr): Add Var.
19581 2014-07-28 Richard Biener <rguenther@suse.de>
19583 PR tree-optimization/61921
19584 * tree-ssa-structalias.c (create_variable_info_for_1): Check
19585 if there is a varpool node before dereferencing it.
19587 2014-07-28 Roman Gareev <gareevroman@gmail.com>
19589 * graphite-sese-to-poly.c:
19590 (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
19591 id of the pbb), which contains pointer to the pbb1.
19593 * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
19595 2014-07-28 Roman Gareev <gareevroman@gmail.com>
19597 * graphite-isl-ast-to-gimple.c:
19598 (graphite_create_new_guard): New function.
19599 (translate_isl_ast_node_if): New function.
19600 (translate_isl_ast): Add calling of translate_isl_ast_node_if.
19602 * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
19604 2014-07-27 Anthony Green <green@moxielogic.com>
19606 * config.gcc: Add moxie-*-moxiebox* configuration.
19607 * config/moxie/moxiebox.h: New file.
19609 2014-07-26 Andrew Pinski <apinski@cavium.com>
19611 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
19612 from the read only register.
19614 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
19616 * ira-costs.c (find_costs_and_classes): For -O0, use the best class
19617 as the allocation class if it isn't likely to be spilled.
19619 2014-07-26 Richard Sandiford <rdsandiford@googlemail.com>
19621 * rtl.h (tls_referenced_p): Declare.
19622 * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
19623 * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
19624 (mips_cannot_force_const_mem): Use tls_referenced_p.
19625 * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
19626 * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
19627 instead of pa_tls_referenced_p.
19628 * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
19629 (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
19630 (pa_legitimate_constant_p): Likewise.
19631 (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
19632 * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
19633 (rs6000_cannot_force_const_mem, rs6000_emit_move)
19634 (rs6000_address_for_altivec): Use tls_referenced_p instead of
19635 rs6000_tls_referenced_p.
19636 (rs6000_tls_symbol_ref_1): Delete.
19638 2014-07-26 Marc Glisse <marc.glisse@inria.fr>
19641 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
19642 Optimize inverse of a VEC_CONCAT.
19644 2014-07-25 Xinliang David Li <davidxl@google.com>
19646 * params.def: New parameter.
19647 * coverage.c (get_coverage_counts): Check new flag.
19648 (coverage_compute_profile_id): Check new flag.
19649 (coverage_begin_function): Check new flag.
19650 (coverage_end_function): Check new flag.
19651 * value-prof.c (coverage_node_map_initialized_p): New function.
19652 (init_node_map): Populate map with all functions.
19653 * doc/invoke.texi: Document new parameter.
19655 2014-07-25 Jan Hubicka <hubicka@ucw.cz>
19656 Richard Biener <rguenther@suse.de>
19658 * lto-streamer-out.c (struct sccs): Turn to ...
19659 (class DFS): ... this one; refactor the DFS walk so it can
19660 be re-done on per-SCC basis.
19661 (DFS::DFS): New constructor.
19662 (DFS::~DFS): New destructor.
19663 (hash_tree): Add new MAP argument holding in-SCC hash values;
19664 remove POINTER_TYPE hashing hack.
19665 (scc_entry_compare): Rename to ...
19666 (DFS::scc_entry_compare): ... this one.
19667 (hash_scc): Rename to ...
19668 (DFS::hash_scc): ... this one; pass output_block instead
19669 of streamer_cache; work harder to get unique and stable SCC
19671 (DFS_write_tree): Rename to ...
19672 (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
19673 (lto_output_tree): Update.
19675 2014-07-25 Andi Kleen <ak@linux.intel.com>
19677 * lto-streamer-out.c (hash_tree): Convert to inchash.
19679 2014-07-25 Andi Kleen <ak@linux.intel.com>
19681 * tree.c (build_type_attribute_qual_variant): Use inchash.
19682 (type_hash_list): Dito.
19683 (attribute_hash_list): Dito
19684 (iterative_hstate_expr): Dito.
19685 (iterative_hash_expr): Dito.
19686 (build_range_type_1): Dito.
19687 (build_array_type_1): Dito.
19688 (build_function_type): Dito.
19689 (build_method_type_directly): Dito.
19690 (build_offset_type): Dito.
19691 (build_complex_type): Dito.
19692 (make_vector_type): Dito.
19693 * tree.h (iterative_hash_expr): Add compat wrapper.
19694 (iterative_hstate_expr): Add.
19696 2014-07-25 Andi Kleen <ak@linux.intel.com>
19698 * Makefile.in (OBJS): Add inchash.o.
19699 (PLUGIN_HEADERS): Add inchash.h.
19700 * ipa-devirt.c: Include inchash.h.
19701 * lto-streamer-out.c: Dito.
19702 * tree-ssa-dom.c: Dito.
19703 * tree-ssa-pre.c: Dito.
19704 * tree-ssa-sccvn.c: Dito.
19705 * tree-ssa-tail-merge.c: Dito.
19707 * tree.c (iterative_hash_hashval_t): Move to ...
19708 (iterative_hash_host_wide_int): Move to ...
19709 * inchash.c: Here. New file.
19710 * tree.h (iterative_hash_hashval_t): Move to ...
19711 (iterative_hash_host_wide_int): Move to ...
19712 * inchash.h: Here. New file.
19714 2014-07-25 Richard Biener <rguenther@suse.de>
19716 PR middle-end/61762
19717 PR middle-end/61894
19718 * fold-const.c (native_encode_int): Add and handle offset
19719 parameter to do partial encodings of expr.
19720 (native_encode_fixed): Likewise.
19721 (native_encode_real): Likewise.
19722 (native_encode_complex): Likewise.
19723 (native_encode_vector): Likewise.
19724 (native_encode_string): Likewise.
19725 (native_encode_expr): Likewise.
19726 * fold-const.c (native_encode_expr): Add offset parameter
19728 * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
19729 (fold_ctor_reference): Handle all reads from tcc_constant
19732 2014-07-25 Richard Biener <rguenther@suse.de>
19734 * tree-inline.c (estimate_move_cost): Mark speed_p argument
19735 as possibly unused.
19737 2014-07-23 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19739 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
19741 2014-07-24 Kyle McMartin <kyle@redhat.com>
19743 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
19745 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19747 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
19749 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
19751 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
19752 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
19753 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
19755 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19757 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
19758 and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
19759 aggregate types. Instead, *all* aggregate types, except for single-
19760 element or homogeneous float/vector aggregates, are quadword-aligned
19761 if required by their type alignment. Issue -Wpsabi note when a type
19762 is now treated differently than before.
19764 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19766 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
19767 does not fit fully into floating-point registers, and there is still
19768 space in the register parameter area, use GPRs to pass those parts
19769 of the argument. Issue -Wpsabi note if any parameter is now treated
19770 differently than before.
19771 (rs6000_arg_partial_bytes): Update.
19773 2014-07-24 Uros Bizjak <ubizjak@gmail.com>
19775 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
19777 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
19779 * rtl.h (target_rtl): Remove lang_dependent_initialized.
19780 * toplev.c (initialize_rtl): Don't use it. Move previously
19781 "language-dependent" calls to...
19782 (backend_init): ...here.
19783 (lang_dependent_init_target): Don't set lang_dependent_initialized.
19784 Assert that RTL initialization hasn't happend yet.
19786 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
19788 PR rtl-optimization/61629
19789 * reginfo.c (reinit_regs): Only call ira_init and recog_init if
19790 they have already been initialized.
19792 2014-07-24 Richard Sandiford <rdsandiford@googlemail.com>
19794 PR middle-end/61268
19795 * function.c (assign_parm_setup_reg): Prevent invalid sharing of
19796 DECL_INCOMING_RTL and entry_parm.
19797 (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
19798 * calls.c (load_register_parameters): Likewise argument values.
19799 (emit_library_call_value_1, store_one_arg): Likewise argument
19801 * config/i386/i386.c (assign_386_stack_local): Likewise the local
19803 * explow.c (validize_mem): Modify the argument in-place.
19805 2014-07-24 Jiong Wang <jiong.wang@arm.com>
19807 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
19808 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
19810 2014-07-24 Jiong Wang <jiong.wang@arm.com>
19812 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
19813 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
19815 2014-07-24 Jiong Wang <jiong.wang@arm.com>
19817 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
19818 (aarch64_save_callee_saves): New parameter "skip_wb".
19819 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
19821 2014-07-24 Jiong Wang <jiong.wang@arm.com>
19823 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
19825 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
19827 2014-07-24 Roman Gareev <gareevroman@gmail.com>
19829 * graphite-isl-ast-to-gimple.c:
19830 (graphite_create_new_loop): Add calling of isl_id_free to properly
19831 decrement reference counts.
19833 * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
19835 2014-07-24 Martin Liska <mliska@suse.cz>
19836 * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
19838 * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
19839 (rs6000_code_end): Likewise.
19841 2014-07-24 Martin Liska <mliska@suse.cz>
19843 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
19844 symtab_node funtion used.
19845 (rs6000_xcoff_declare_object_name): Likewise.
19847 2014-07-24 Martin Liska <mliska@suse.cz>
19849 * cgraphunit.c (compile): Correct function used.
19851 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
19853 * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
19856 2014-07-24 Jan Hubicka <hubicka@ucw.cz>
19859 * varasm.c (bss_initializer_p): Handle offlined ctors.
19860 (align_variable, get_variable_align): Likewise.
19861 (make_decl_one_only): Likewise.
19862 (default_binds_local_p_1): Likewise.
19863 (decl_binds_to_current_def_p): Likewise.
19864 (get_variable_section): Get constructor if it is offlined.
19865 (assemble_variable_contents): Sanity check that the caller
19866 streamed in the ctor in LTO.
19868 2014-07-24 Roman Gareev <gareevroman@gmail.com>
19870 * graphite-isl-ast-to-gimple.c:
19871 (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
19872 (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
19873 isl_ast_op_pdiv_r to the different case.
19875 * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
19877 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19879 PR middle-end/61876
19880 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
19881 when flag_errno_math is on.
19883 2014-07-24 Martin Liska <mliska@suse.cz>
19885 * cgraph.h (varpool_node):
19886 (availability get_availability (void)):
19887 created from cgraph_variable_initializer_availability
19888 (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
19889 created from: cgraph_variable_initializer_availability
19890 (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
19891 (void finalize_named_section_flags (void)):
19892 created from varpool_finalize_named_section_flags
19893 (bool assemble_decl (void)): created from varpool_assemble_decl
19894 (void analyze (void)): created from varpool_analyze_node
19895 (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
19896 void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
19897 (void remove_initializer (void)): created from varpool_remove_initializer
19898 (tree get_constructor (void)): created from varpool_get_constructor
19899 (bool externally_visible_p (void)): created from varpool_externally_visible_p
19900 (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
19901 (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
19902 (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
19903 (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
19904 (static void finalize_decl (tree decl)): created from varpool_finalize_decl
19905 (static bool output_variables (void)): created from varpool_output_variables
19906 (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
19907 created from varpool_extra_name_alias
19908 (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
19909 (static void dump_varpool (FILE *f)): created from dump_varpool
19910 (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
19911 (static varpool_node *create_empty (void)): created from varpool_create_empty_node
19912 (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
19913 (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
19914 (void assemble_aliases (void)): created from assemble_aliases
19916 2014-07-24 Martin Liska <mliska@suse.cz>
19918 * cgraph.h (symtab_node):
19919 (void register_symbol (void)): created from symtab_register_node
19920 (void remove (void)): created from symtab_remove_node
19921 (void dump (FILE *f)): created from dump_symtab_node
19922 (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
19923 (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
19924 (struct ipa_ref *add_reference (symtab_node *referred_node,
19925 enum ipa_ref_use use_type)): created from add_reference
19926 (struct ipa_ref *add_reference (symtab_node *referred_node,
19927 enum ipa_ref_use use_type, gimple stmt)): created from add_reference
19928 (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
19929 gimple stmt)): created from maybe_add_reference
19930 (bool semantically_equivalent_p (symtab_node *target)): created from
19931 symtab_semantically_equivalent_p
19932 (void remove_from_same_comdat_group (void)): created from
19933 remove_from_same_comdat_group
19934 (void add_to_same_comdat_group (symtab_node *old_node)): created from
19935 symtab_add_to_same_comdat_group
19936 (void dissolve_same_comdat_group_list (void)): created from
19937 symtab_dissolve_same_comdat_group_list
19938 (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
19939 (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
19940 created from symtab_alias_ultimate_target
19941 (inline symtab_node *next_defined_symbol (void)): created from
19942 symtab_next_defined_symbol
19943 (bool resolve_alias (symtab_node *target)): created from
19944 symtab_resolve_alias
19945 (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
19946 void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
19947 (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
19948 (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
19949 (void set_section (const char *section)): created from set_section_1
19950 (enum availability get_availability (void)): created from symtab_node_availability
19951 (void make_decl_local (void)): created from symtab_make_decl_local
19952 (bool real_symbol_p (void)): created from symtab_read_node
19953 (can_be_discarded_p (void)): created from symtab_can_be_discarded
19954 (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
19955 (inline bool in_same_comdat_group_p (symtab_node *target)): created from
19956 symtab_in_same_comdat_p;
19957 (bool address_taken_from_non_vtable_p (void)): created from
19958 address_taken_from_non_vtable_p
19959 (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
19960 (static void dump_table (FILE *)): created from dump_symtab
19961 (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
19962 (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
19963 (static bool used_from_object_file_p_worker (symtab_node *node)): created from
19964 symtab_used_from_object_file_p
19965 (void dump_base (FILE *)): created from dump_symtab_base
19966 (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
19967 (void unregister (void)): created from symtab_unregister_node
19968 (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
19969 (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
19970 (static bool noninterposable_alias (symtab_node *node, void *data)): created from
19971 symtab_nonoverwritable_alias_1
19972 * cgraph.h (cgraph_node):
19973 (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
19974 created from cgraph_remove_node_and_inline_clones
19975 (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
19976 (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
19977 bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
19978 (cgraph_node *function_symbol (enum availability *avail = NULL)):
19979 created from cgraph_function_node
19980 (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
19981 vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
19982 struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
19983 created from cgraph_create_clone
19984 (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
19985 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
19986 created from cgraph_create_virtual_clone
19987 (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
19988 (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
19989 bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
19990 (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
19991 vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
19992 bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
19993 created from cgraph_function_version_info
19994 (struct cgraph_function_version_info *insert_new_function_version (void)):
19995 created from insert_new_cgraph_node_version
19996 (struct cgraph_function_version_info *function_version (void)): created from
19997 get_cgraph_node_version
19998 (void analyze (void)): created from analyze_function
19999 (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
20000 HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
20001 tree real_alias) cgraph_add_thunk
20002 (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
20003 (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
20004 created from cgraph_function_or_thunk_node
20005 (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
20006 created from expand_thunk
20007 (void reset (void)): created from cgraph_reset_node
20008 (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
20009 (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
20010 (void remove (void)): created from cgraph_remove_node
20011 (void dump (FILE *f)): created from dump_cgraph_node
20012 (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
20013 (bool get_body (void)): created from cgraph_get_body
20014 (void release_body (void)): created from cgraph_release_function_body
20015 (void unnest (void)): created from cgraph_unnest_node
20016 (void make_local (void)): created from cgraph_make_node_local
20017 (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
20018 (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
20019 gcov_type count, int freq)): created from cgraph_create_edge
20020 (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
20021 gcov_type count, int freq)): created from cgraph_create_indirect_edge
20022 (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
20023 gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
20024 created from cgraph_create_edge_including_clones
20025 (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
20026 (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
20027 (void remove_callers (void)): created from cgraph_node_remove_callers
20028 (void remove_callees (void)): created from cgraph_node_remove_callees
20029 (enum availability get_availability (void)): created from cgraph_function_body_availability
20030 (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
20031 (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
20032 (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
20033 (void call_duplication_hooks (cgraph_node *node2)): created from
20034 cgraph_call_node_duplication_hooks
20035 (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
20036 void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
20037 (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
20038 void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
20039 (void call_function_insertion_hooks (void)):
20040 created from cgraph_call_function_insertion_hooks
20041 (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
20042 (bool local_p (void)): created from cgraph_local_node
20043 (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
20044 (bool cannot_return_p (void)): created from cgraph_node_cannot_return
20045 (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
20046 (inline bool only_called_directly_or_aliased_p (void)):
20047 created from cgraph_only_called_directly_or_aliased_p
20048 (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
20049 created from cgraph_will_be_removed_from_program_if_no_direct_calls
20050 (bool can_remove_if_no_direct_calls_and_refs_p (void)):
20051 created from cgraph_can_remove_if_no_direct_calls_and_refs_p
20052 (bool can_remove_if_no_direct_calls_p (void)):
20053 created from cgraph_can_remove_if_no_direct_calls_p
20054 (inline bool has_gimple_body_p (void)):
20055 created from cgraph_function_with_gimple_body_p
20056 (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
20057 (static void dump_cgraph (FILE *f)): created from dump_cgraph
20058 (static inline void debug_cgraph (void)): created from debug_cgraph
20059 (static void record_function_versions (tree decl1, tree decl2)):
20060 created from record_function_versions
20061 (static void delete_function_version (tree decl)):
20062 created from delete_function_version
20063 (static void add_new_function (tree fndecl, bool lowered)):
20064 created from cgraph_add_new_function
20065 (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
20066 (static cgraph_node * create (tree decl)): created from cgraph_create_node
20067 (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
20068 (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
20069 (static cgraph_node *get_for_asmname (tree asmname)):
20070 created from cgraph_node_for_asm
20071 (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
20072 created from cgraph_same_body_alias
20073 (static bool used_from_object_file_p_worker (cgraph_node *node,
20074 void *): new function
20075 (static bool non_local_p (cgraph_node *node, void *)):
20076 created from cgraph_non_local_node_p_1
20077 (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
20078 created from verify_cgraph
20079 (static bool make_local (cgraph_node *node, void *)):
20080 created from cgraph_make_node_local
20081 (static cgraph_node *create_alias (tree alias, tree target)):
20082 created from cgraph_create_function_alias
20083 (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
20084 gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
20085 created from cgraph_create_edge_1
20086 * cgraph.h (varpool_node):
20087 (void remove (void)): created from varpool_remove_node
20088 (void dump (FILE *f)): created from dump_varpool_node
20090 2014-07-24 Richard Biener <rguenther@suse.de>
20093 * tree-ssa-structalias.c (create_variable_info_for_1):
20094 Use varpool_get_constructor.
20095 (create_variable_info_for): Likewise.
20097 2014-07-24 Jiong Wang <jiong.wang@arm.com>
20099 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
20100 subtract outgoing area size when restoring stack_pointer_rtx.
20102 2014-07-24 Nick Clifton <nickc@redhat.com>
20104 * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
20105 that operations are taking place in parallel.
20106 * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
20108 2014-07-24 Thomas Schwinge <thomas@codesourcery.com>
20110 * omp-low.c (extract_omp_for_data): Add missing break statement.
20112 2014-07-24 Richard Biener <rguenther@suse.de>
20114 * tree-inline.h (estimate_move_cost): Add speed_p parameter.
20115 * tree-inline.c (estimate_move_cost): Add speed_p parameter
20116 and adjust MOVE_RATIO query accordingly.
20117 (estimate_num_insns): Adjust callers.
20118 * ipa-prop.c (ipa_populate_param_decls): Likewise.
20119 * ipa-cp.c (gather_context_independent_values,
20120 estimate_local_effects): Likewise.
20121 * ipa-split.c (consider_split): Likewise.
20123 2014-07-24 Trevor Saunders <tsaunders@mozilla.com>
20125 * config/i386/driver-i386.c: Remove names of unused arguments and
20126 unnecessary unused attributes.
20127 * config/i386/host-mingw32.c: Likewise.
20128 * config/i386/i386.c: Likewise.
20129 * config/i386/winnt-stubs.c: Likewise.
20130 * config/i386/winnt.c: Likewise.
20132 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20134 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
20135 (aarch64_gen_loadwb_pair): New helper function.
20136 (aarch64_expand_epilogue): Simplify code using new helper functions.
20137 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
20139 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20141 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
20142 (aarch64_gen_storewb_pair): New helper function.
20143 (aarch64_expand_prologue): Simplify code using new helper functions.
20144 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
20146 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20148 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
20149 Rename to aarch64_save_callee_saves, remove restore code.
20150 (aarch64_restore_callee_saves): New function.
20152 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20154 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
20155 (aarch64_save_callee_saves): New function to handle reg save
20156 for both core and vectore regs.
20158 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20160 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
20161 (aarch64_gen_store_pair): New helper function.
20162 (aarch64_save_or_restore_callee_save_registers)
20163 (aarch64_save_or_restore_fprs): Use new helper functions.
20165 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20167 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
20168 (aarch64_save_or_restore_callee_save_registers)
20169 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
20171 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20173 * config/aarch64/aarch64.c
20174 (aarch64_save_or_restore_callee_save_registers)
20175 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
20177 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20179 * config/aarch64/aarch64.c
20180 (aarch64_save_or_restore_callee_save_registers)
20181 (aarch64_save_or_restore_fprs): Remove 'increment'.
20183 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20185 * config/aarch64/aarch64.c
20186 (aarch64_save_or_restore_callee_save_registers)
20187 (aarch64_save_or_restore_fprs): Use register offset in
20188 cfun->machine->frame.reg_offset.
20190 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20192 * config/aarch64/aarch64.c
20193 (aarch64_save_or_restore_callee_save_registers)
20194 (aarch64_save_or_restore_fprs): Remove base_rtx.
20196 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20198 * config/aarch64/aarch64.c
20199 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
20200 to 'start_offset'. Remove local variable 'start_offset'.
20202 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20204 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
20205 type to HOST_WIDE_INT.
20207 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20209 * config/aarch64/aarch64.c (aarch64_expand_prologue)
20210 (aarch64_save_or_restore_fprs)
20211 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
20213 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
20215 * config/arm/t-rtems-eabi: Add
20216 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
20217 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
20218 mbig-endian/mthumb/march=armv7-r, and
20219 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
20222 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
20223 Chris Johns <chrisj@rtems.org>
20224 Joel Sherrill <joel.sherrill@oarcorp.com>
20226 * config.gcc: Add nios2-*-rtems*.
20227 * config/nios2/rtems.h: New file.
20228 * gcc/config/nios2/t-rtems: New file.
20230 2014-07-23 Segher Boessenkool <segher@kernel.crashing.org>
20233 * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
20234 constant numbers, not general constants.
20235 (rs6000_expand_vector_init): Ditto.
20237 2014-07-23 Nathan Sidwell <nathan@acm.org>
20239 * gcov-tool.c (gcov_list): Declare here.
20240 (set_gcov_list): Remove.
20241 (gcov_output_files): Set gcov_list directly.
20243 2014-07-23 Host Schirmeier <horst@schirmeier.com>
20245 * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
20247 2014-07-23 Jiong Wang <jiong.wang@arm.com>
20249 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
20250 callee-saved registers are available for padding purpose
20251 and r3 is not mandatory, then prefer use those callee-saved
20254 2014-07-23 Richard Biener <rguenther@suse.de>
20256 * params.def (PARAM_MAX_COMBINE_INSNS): New.
20257 * combine.c: Include statistics.h and params.h.
20258 (combine_instructions): Guard three and four insn combines
20259 with max-combine-insns value. Record statistics for combines
20261 * doc/invoke.texi (max-combine-insns): Document new param.
20263 2014-07-23 Roman Gareev <gareevroman@gmail.com>
20265 * graphite-isl-ast-to-gimple.c:
20266 (translate_isl_ast_node_block): New function.
20267 (translate_isl_ast): Add calling of translate_isl_ast_node_block.
20269 * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
20270 * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
20272 2014-07-23 Roman Gareev <gareevroman@gmail.com>
20274 * graphite-isl-ast-to-gimple.c:
20275 (get_max_schedule_dimensions): New function.
20276 (extend_schedule): Likewise.
20277 (generate_isl_schedule): Add calling of extend_schedule and
20278 get_max_schedule_dimensions.
20280 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20282 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
20283 (case UNSPEC): Handle UNSPEC_RBIT.
20285 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20287 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
20288 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
20290 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20292 * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
20294 2014-07-22 Roman Gareev <gareevroman@gmail.com>
20296 * graphite-isl-ast-to-gimple.c:
20297 Add inclusion of gimple-ssa.h, tree-into-ssa.h.
20298 (ivs_params_clear):
20299 (build_iv_mapping): New function.
20300 (translate_isl_ast_node_user): Likewise.
20301 (translate_isl_ast): Add calling of translate_isl_ast_node_user.
20303 * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
20304 * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
20305 * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
20307 2014-07-21 Bin Cheng <bin.cheng@arm.com>
20310 * config/arm/arm.md (setmem): New pattern.
20311 * config/arm/arm-protos.h (struct tune_params): New fields.
20312 (arm_gen_setmem): New prototype.
20313 * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
20314 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
20315 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
20316 (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
20317 (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
20318 (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
20319 (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
20320 (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
20321 (arm_const_inline_cost): New function.
20322 (arm_block_set_max_insns): New function.
20323 (arm_block_set_non_vect_profit_p): New function.
20324 (arm_block_set_vect_profit_p): New function.
20325 (arm_block_set_unaligned_vect): New function.
20326 (arm_block_set_aligned_vect): New function.
20327 (arm_block_set_unaligned_non_vect): New function.
20328 (arm_block_set_aligned_non_vect): New function.
20329 (arm_block_set_vect, arm_gen_setmem): New functions.
20331 2014-07-21 Bin Cheng <bin.cheng@arm.com>
20333 * config/arm/arm.c (output_move_neon): Handle REG explicitly.
20335 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
20338 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
20339 out of #ifdef __OPTIMIZE__.
20341 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
20343 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
20344 different trapping status if -fnon-call-exceptions is enabled.
20346 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
20348 * expr.c (store_field): Handle VOIDmode for calls that return values
20349 in multiple locations.
20351 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20353 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
20354 (altivec_vsldoi_<mode>): Likewise.
20356 2014-07-20 Roman Gareev <gareevroman@gmail.com>
20358 * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
20359 to the number of characters in the line.
20361 2014-07-20 Roman Gareev <gareevroman@gmail.com>
20363 * graphite-isl-ast-to-gimple.c: Add using of
20364 build_nonstandard_integer_type instead of int128_integer_type_node.
20366 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
20368 * toplev.c (output_stack_usage): Adjust the location of the warning.
20370 2014-07-19 Daniel Cederman <cederman@gaisler.com>
20372 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
20373 (*membar_storeload): Disable for LEON3.
20375 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
20377 PR rtl-optimization/61461
20378 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
20380 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
20383 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
20384 Fix instruction constraint.
20385 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
20387 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
20389 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
20391 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
20393 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
20394 GNU coding standards.
20395 (nds32_register_move_cost): Likewise.
20396 (nds32_memory_move_cost): Likewise.
20397 (nds32_address_cost): Likewise.
20399 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20401 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
20403 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
20405 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
20406 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
20407 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
20408 (HAVE_sync_compare_and_swapqi): Define.
20409 (HAVE_sync_compare_and_swaphi): Likewise.
20410 (HAVE_sync_compare_and_swapsi): Likewise.
20412 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
20414 * config/mips/p5600.md: Add missing cpu tests.
20416 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20418 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
20419 (vmla_f64): Likewise.
20420 (vfms_f64): Likewise.
20421 (vmls_f64): Likewise.
20423 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20425 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
20426 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
20428 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20430 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
20431 (vmlal_high_lane_s32): Likewise.
20432 (vmlal_high_lane_u16): Likewise.
20433 (vmlal_high_lane_u32): Likewise.
20434 (vmlsl_high_lane_s16): Likewise.
20435 (vmlsl_high_lane_s32): Likewise.
20436 (vmlsl_high_lane_u16): Likewise.
20437 (vmlsl_high_lane_u32): Likewise.
20439 2014-07-17 Terry Guo <terry.guo@arm.com>
20441 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
20442 (alus_reg): Renamed to alus_sreg.
20443 * config/arm/arm-fixed.md: Change type of non-dsp instructions
20444 from alu_reg to alu_sreg. Change type of dsp instructions from
20445 alu_reg to alu_dsp_reg.
20446 * config/arm/thumb1.md: Likewise.
20447 * config/arm/thumb2.md: Likewise.
20448 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
20449 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
20450 with alu_sreg and alus_sreg.
20451 * config/arm/arm1026ejs.md (alu_op): Likewise.
20452 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
20453 * config/arm/arm926ejs.md (9_alu_op): Likewise.
20454 * config/arm/fa526.md (526_alu_op): Likewise.
20455 * config/arm/fa606te.md (606te_alu_op): Likewise.
20456 * config/arm/fa626te.md (626te_alu_op): Likewise.
20457 * config/arm/fa726te.md (726te_alu_op): Likewise.
20458 * config/arm/fmp626.md (mp626_alu_op): Likewise.
20459 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
20460 alu_sreg, alu_dsp_reg and alus_sreg.
20461 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
20462 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
20463 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
20464 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
20465 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
20466 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
20467 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
20468 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
20469 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
20470 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
20471 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
20472 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
20473 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
20474 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
20475 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
20476 alus_reg to alus_sreg.
20478 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
20480 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
20483 2014-07-17 Richard Biener <rguenther@suse.de>
20485 PR rtl-optimization/61801
20486 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
20487 don't set reg_pending_barrier if it appears in a debug-insn.
20489 2014-07-16 DJ Delorie <dj@redhat.com>
20491 * config/rx/rx.c (rx_option_override): Fix alignment values.
20492 (rx_align_for_label): Likewise.
20494 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
20497 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
20498 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
20499 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
20501 (cris_print_index, cris_print_operand, cris_constant_index_p)
20502 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
20503 (cris_address_cost): Ditto last CONSTANT_P.
20504 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
20505 callers changed. Yield cris_offsettable_symbol for non-PIC
20506 constant symbolic expressions including labels. Yield cris_unspec
20508 (cris_expand_pic_call_address): New parameter MARKERP. Set its
20509 target to pic_offset_table_rtx for calls that will likely go
20510 through PLT, const0_rtx when they can't. All callers changed.
20511 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
20512 symbolic expressions to be PICified. Remove second, redundant,
20513 assert on can_create_pseudo_p returning non-zero. Use
20514 replace_equiv_address_nv, not replace_equiv_address, for final
20516 * config/cris/cris.md ("movsi"): Move variable t to pattern
20517 toplevel. Adjust assert for new cris_symbol_type member. Use
20518 CONSTANT_P instead of CONSTANT_ADDRESS_P.
20519 ("*movsi_internal") <case 9>: Make check for valid unspec operands
20521 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
20522 ("call", "call_value"): Use second incoming operand as a marker
20523 for pic-offset-table-register being used.
20524 ("*expanded_call_non_v32", "*expanded_call_v32")
20525 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
20526 second incoming operand to CALL, match cris_call_type_marker.
20527 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
20528 ("*expanded_call_side"): Ditto. Fix typo in comment.
20529 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
20531 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
20532 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
20533 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
20534 users changed. Add members cris_offsettable_symbol and cris_unspec.
20535 (cris_symbol_type): Rename from cris_pic_symbol_type.
20536 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
20538 * config/cris/cris-protos.h (cris_symbol_type_of,
20539 cris_expand_pic_call_address): Adjust prototypes.
20540 (cris_legitimate_constant_p): New prototype.
20542 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
20543 an existing tmake_file. Don't add t-slibgcc and t-linux.
20545 2014-07-17 Jason Merrill <jason@redhat.com>
20548 * symtab.c (symtab_remove_from_same_comdat_group): Also
20549 set_comdat_group to NULL_TREE.
20550 (verify_symtab): Fix diagnostic.
20552 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
20555 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
20557 2014-07-16 Dodji Seketeli <dodji@redhat.com>
20559 Support location tracking for built-in macro tokens
20560 * input.h (is_location_from_builtin_token): New function declaration.
20561 * input.c (is_location_from_builtin_token): New function definition.
20562 * toplev.c (general_init): Tell libcpp what the pre-defined
20563 spelling location for built-in tokens is.
20565 2014-07-16 Jakub Jelinek <jakub@redhat.com>
20567 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
20568 on the FUNCTION_DECL.
20570 2014-07-16 Richard Biener <rguenther@suse.de>
20573 * doc/extend.texi (always_inline): Clarify.
20575 2014-07-15 Eric Christopher <echristo@gmail.com>
20577 * doc/invoke.texi (Link Options): Document -z option.
20579 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
20581 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
20582 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
20584 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
20586 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
20588 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
20590 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
20591 varpool_assemble_decl.
20592 * varpool.c (varpool_assemble_decl): Assert that node->definition is
20595 2014-07-15 Michael Matz <matz@suse.de>
20597 PR rtl-optimization/61772
20598 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
20600 2014-07-15 Richard Biener <rguenther@suse.de>
20602 * opts.c (default_options_table): Disable bit-ccp at -Og.
20604 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
20606 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
20608 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
20610 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
20611 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
20612 call langhook for unknown declaration.
20613 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
20614 * tree.h (DECL_ARGUMENTS): Update.
20615 * print-tree.c (print_node): Update.
20616 * tree-core.h (tree_decl_non_common): Remove arguments.
20617 (tree_function_decl): Add arguments.
20619 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
20621 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
20623 2014-07-14 Richard Biener <rguenther@suse.de>
20625 PR tree-optimization/61779
20626 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
20627 simplifying a condition.
20629 2014-07-14 Richard Biener <rguenther@suse.de>
20631 * builtins.c (c_strlen): Make only_value == 2 really only
20632 affect warning generation.
20634 2014-07-14 Richard Biener <rguenther@suse.de>
20636 PR tree-optimization/61757
20637 PR tree-optimization/61783
20638 PR tree-optimization/61787
20639 * tree-ssa-dom.c (record_equality): Revert canonicalization
20640 change and add comment.
20641 (propagate_rhs_into_lhs): Revert previous fix, removing
20642 loop depth restriction again.
20644 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20646 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
20647 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
20648 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
20649 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
20650 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
20651 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
20652 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
20654 2014-07-14 Richard Biener <rguenther@suse.de>
20656 * cgraph.h (decl_in_symtab_p): Make inline.
20658 2014-07-14 Jakub Jelinek <jakub@redhat.com>
20660 PR middle-end/61294
20661 * doc/invoke.texi (-Wmemset-transposed-args): Document.
20664 * config/i386/i386.c (classify_argument): Don't merge classes above
20667 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
20669 * cgraph.h (symtab_node): Add nonzero_address.
20670 (decl_in_symtab_p): Break out from ...
20671 (symtab_get_node): ... here.
20672 * fold-const.c: Include cgraph.h
20673 (tree_single_nonzero_warnv_p): Use symtab to determine
20674 if symbol is non-zero.
20675 * symtab.c (symtab_node::nonzero_address): New method.
20677 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
20679 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
20680 forgotten in previous commit.
20682 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
20684 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
20686 * ipa-devirt.c: Include stor-layout.h and intl.h
20687 (odr_subtypes_equivalent_p): New function.
20688 (warn_odr): New function.
20689 (warn_type_mismatch): New function.
20690 (odr_types_equivalent_p): New function.
20691 (add_type_duplicate): Use it.
20692 * common.opt (Wodr): New flag.
20693 * doc/invoke.texi (Wodr): Document new warning.
20695 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
20697 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
20698 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
20699 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
20700 (varpool_get_constructor): Push CTORS_IN timevar.
20701 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
20703 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
20705 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
20706 Remove VOID_FTYPE_PUSHORT.
20707 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
20708 Change code to USHORT_FTYPE_VOID.
20709 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
20710 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
20711 (ix86_atomic_assign_expand_fenv): Update for
20712 __builtin_ia32_fnstsw changes.
20713 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
20714 (fnstsw): Change operand 0 to nonimmediate operand.
20716 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
20718 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
20719 (varpool_get_constructor): New function.
20720 (varpool_ctor_useable_for_folding_p): Break out from ...
20721 (ctor_for_folding): ... here; use varpool_get_constructor.
20722 (varpool_assemble_decl): Likewise.
20723 * lto-streamer.h (struct output_block): Turn cgraph_node
20725 (lto_input_variable_constructor): Declare.
20726 * ipa-visibility.c (function_and_variable_visibility): Use
20727 varpool_get_constructor.
20728 * cgraph.h (varpool_get_constructor): Declare.
20729 (varpool_ctor_useable_for_folding_p): New function.
20730 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
20731 parameter; return error_mark_node for non-trivial constructors.
20732 (lto_write_tree_1, DFS_write_tree): Update use of
20733 get_symbol_initial_value.
20734 (output_function): Update initialization of symbol.
20735 (output_constructor): New function.
20736 (copy_function): Rename to ..
20737 (copy_function_or_variable): ... this one; handle vars too.
20738 (lto_output): Output variable sections.
20739 * lto-streamer-in.c (input_constructor): New function.
20740 (lto_read_body): Rename from ...
20741 (lto_read_body_or_constructor): ... this one; handle vars too.
20742 (lto_input_variable_constructor): New function.
20743 * ipa-prop.c (ipa_prop_write_jump_functions,
20744 ipa_prop_write_all_agg_replacement): Update.
20745 * lto-cgraph.c (compute_ltrans_boundary): Use it.
20746 (output_cgraph_opt_summary): Set symbol to NULL.
20748 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
20750 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
20751 non-polymorphic types.
20752 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
20753 * ipa-devirt.c (types_same_for_odr): Do not explode when one
20754 of types is not polymorphic.
20756 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
20758 * lra-constraints.c (remove_inheritance_pseudos): Process
20759 destination pseudo too.
20761 2014-07-11 Rong Xu <xur@google.com>
20763 * gcov-tool.c (gcov_output_files): Fix build error introduced in
20766 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
20768 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
20769 * config/avr/avr-devices.c (AVR_MCU): Same.
20770 (avr_mcu_types): add text start value to end of device list.
20771 * config/avr/avr-mcus.def: Add text section start for all devices.
20772 (ata5782): Add new avr5 device.
20774 * config/avr/avr-tables.opt: Regenerate.
20775 * config/avr/avr.h: Add declaration for text section start handler.
20776 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
20778 (LINK_SPEC): Include text section start handler to linker spec.
20779 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
20780 pass -Ttext option to linker if the text section start for the device
20782 * config/avr/t-multilib: Regenerate.
20783 * doc/avr-mmcu.texi: Regenerate.
20785 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
20787 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
20788 * config/rs6000/aix52.h (LINK_SPEC): Same.
20789 * config/rs6000/aix53.h (LINK_SPEC): Same.
20790 * config/rs6000/aix61.h (LINK_SPEC): Same.
20791 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
20793 2014-07-11 Roman Gareev <gareevroman@gmail.com>
20795 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
20796 (graphite_verify): New function.
20797 (ivs_params_clear): New function.
20798 (gcc_expression_from_isl_ast_expr_id): New function.
20799 (gcc_expression_from_isl_expr_int): New function.
20800 (binary_op_to_tree): New function.
20801 (ternary_op_to_tree): New function.
20802 (unary_op_to_tree): New function.
20803 (nary_op_to_tree): New function.
20804 (gcc_expression_from_isl_expr_op): New function.
20805 (gcc_expression_from_isl_expression): New function.
20806 (graphite_create_new_loop): New function.
20807 (translate_isl_ast_for_loop): New function.
20808 (get_upper_bound): New function.
20809 (graphite_create_new_loop_guard): New function.
20810 (translate_isl_ast_node_for): New function.
20811 (translate_isl_ast): New function.
20812 (add_parameters_to_ivs_params): New function.
20813 (scop_to_isl_ast): New parameter ip.
20814 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
20816 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
20818 * config/xtensa/predicates.md (call expander): Update for
20819 DECL_SECTION_NAME being string.
20821 2014-07-11 Richard Biener <rguenther@suse.de>
20823 PR middle-end/61473
20824 * builtins.c (fold_builtin_memory_op): Inline memory moves that
20825 can be implemented with a single load followed by a single store.
20826 (c_strlen): Only warn when only_value is not 2.
20828 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
20830 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
20832 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
20835 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
20836 (*movhi_bytes): Likewise.
20837 (*arm_movqi_insn): Likewise.
20839 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
20842 * config/alpha/alpha.c: Include tree-pass.h, context.h
20843 and pass_manager.h.
20844 (pass_data_handle_trap_shadows): New pass.
20845 (pass_handle_trap_shadows::gate): New pass gate function.
20846 (make_pass_handle_trap_shadows): New function.
20847 (rest_of_handle_trap_shadows): Ditto.
20849 (alpha_align_insns_1): Rename from alpha_align_insns.
20850 (pass_data_align_insns): New pass.
20851 (pass_align_insns::gate): New pass gate function.
20852 (make_pass_aling_insns): New function.
20853 (rest_of_align_insns): Ditto.
20854 (alpha_align_insns): Ditto.
20856 (alpha_option_override): Declare handle_trap_shadows info
20857 and align_insns_info. Register handle_trap_shadows and align_insns
20859 (alpha_reorg): Do not call alpha_trap_shadows and
20860 alpha_align_insn from here.
20862 (alpha_pad_function_end): Do not skip BARRIERs.
20864 2014-07-10 Rong Xu <xur@google.com>
20866 Add gcov-tool: an offline gcda profile processing tool support.
20867 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
20868 (gcov_is_error): Ditto.
20869 (gcov_read_string): Ditto.
20870 (gcov_read_sync): Ditto.
20871 * gcov-io.h: Move counter defines to gcov-counter.def.
20872 * gcov-dump.c (tag_counters): Use gcov-counter.def.
20873 * coverage.c: Ditto.
20874 * gcov-tool.c: Offline gcda profile processing tool.
20875 (unlink_gcda_file): Remove one gcda file.
20876 (unlink_profile_dir): Remove gcda files from the profile path.
20877 (gcov_output_files): Output gcda files to an output dir.
20878 (profile_merge): Merge two profiles in directory.
20879 (print_merge_usage_message): Print merge usage.
20880 (merge_usage): Print merge usage and exit.
20881 (do_merge): Driver for profile merge sub-command.
20882 (profile_rewrite): Rewrite profile.
20883 (print_rewrite_usage_message): Print rewrite usage.
20884 (rewrite_usage): Print rewrite usage and exit.
20885 (do_rewrite): Driver for profile rewrite sub-command.
20886 (print_usage): Print gcov-info usage and exit.
20887 (print_version): Print gcov-info version.
20888 (process_args): Process arguments.
20889 (main): Main routine for gcov-tool.
20890 * Makefile.in: Build and install gcov-tool.
20891 * gcov-counter.def: New file split from gcov-io.h.
20892 * doc/gcc.texi: Include gcov-tool.texi.
20893 * doc/gcov-tool.texi: Document for gcov-tool.
20895 2014-07-10 Richard Biener <rguenther@suse.de>
20897 PR tree-optimization/61757
20898 * tree-ssa-dom.c (loop_depth_of_name): Restore.
20899 (propagate_rhs_into_lhs): Revert part of last change.
20901 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
20903 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
20906 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
20908 PR middle-end/53590
20909 * function.c (allocate_struct_function): Revert r188667 change.
20911 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
20913 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
20915 * doc/install.texi: Remove links to defunct package providers for
20918 2014-07-09 Tom de Vries <tom@codesourcery.com>
20920 * final.c (get_call_fndecl): Declare.
20921 (self_recursive_call_p): New function.
20922 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
20924 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
20926 * ipa-devirt.c (record_node): Walk through aliases.
20928 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
20930 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
20932 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
20935 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
20937 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
20939 * ipa-visibility.c (function_and_variable_visibility): Remove
20940 temporary hack disabling local aliases on AIX.
20942 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
20944 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
20945 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
20947 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
20949 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
20950 * rs6000/rs6000.c: Inline output of .set instruction.
20951 (declare_alias_data): New struct.
20952 (rs6000_declare_alias): New function.
20953 (rs6000_xcoff_declare_function_name): Use it.
20954 (rs6000_xcoff_declare_object_name): New function.
20955 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
20956 (ASM_OUTPUT_DEF): Turn to empty definition.
20958 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
20961 * hash-table.h: use hash_table::value_type instead of
20962 Descriptor::value_type in the return types of several methods.
20964 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
20966 * tree-pass.h (pass_data): Remove has_execute member.
20967 * passes.c (execute_one_pass): Don't check pass->has_execute.
20968 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
20969 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
20970 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
20971 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
20972 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
20973 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
20974 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
20975 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
20976 gimple-low.c, gimple-ssa-isolate-paths.c,
20977 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
20978 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
20979 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
20980 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
20981 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
20982 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
20983 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
20984 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
20985 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
20986 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
20987 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
20988 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
20989 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
20990 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
20991 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
20992 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
20993 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
20994 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
20995 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
20996 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
20997 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
20998 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
20999 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
21000 web.c: Remove initializer for pass_data::has_execute.
21002 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
21004 * graphite-htab.h: Use hash_map instead of hash_table.
21005 * graphite-clast-to-gimple.c: Adjust.
21006 * passes.c: Use hash_map instead of hash_table.
21007 * sese.c: Likewise.
21008 * sese.h: Remove now unused code.
21010 2014-07-08 Sriraman Tallam <tmsriram@google.com>
21013 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
21016 2014-07-08 Jakub Jelinek <jakub@redhat.com>
21018 PR rtl-optimization/61673
21019 * combine.c (simplify_comparison): Test just mode's sign bit
21020 in tmode rather than the sign bit and any bits above it.
21022 2014-07-08 Roman Gareev <gareevroman@gmail.com>
21024 * graphite-isl-ast-to-gimple.c (generate_isl_context):
21025 Add __isl_give to the declaration.
21026 (generate_isl_schedule): Likewise.
21027 (scop_to_isl_ast): Likewise.
21029 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21031 * config/arm/arm.c (cortexa5_extra_costs): New table.
21032 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
21034 2014-07-08 Jakub Jelinek <jakub@redhat.com>
21036 PR tree-optimization/61725
21037 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
21038 range, use range_includes_zerop_p instead of integer_zerop on
21039 vr0->min, only use log2 of max if min is not negative.
21041 2014-07-08 Richard Biener <rguenther@suse.de>
21043 * tree-ssa-dom.h (loop_depth_of_name): Remove.
21044 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
21045 restriction on loop depth difference.
21046 (record_equality): Likewise.
21047 (propagate_rhs_into_lhs): Likewise. Simplify condition.
21048 (loop_depth_of_name): Remove.
21049 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
21050 restriction on loop depth difference.
21051 (init_copy_prop): Likewise.
21053 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
21055 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
21057 (walk_aliased_vdefs): Likewise.
21058 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
21059 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
21060 (detect_type_change_from_memory_writes): Check if entry was reached.
21062 2014-07-08 Richard Biener <rguenther@suse.de>
21064 PR tree-optimization/61681
21065 * tree-ssa-structalias.c (find_what_var_points_to): Expand
21066 NONLOCAL inside ESCAPED.
21068 2014-07-08 Richard Biener <rguenther@suse.de>
21070 PR tree-optimization/61680
21071 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21072 Handle properly all read-write dependences with group accesses.
21074 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
21076 PR tree-optimization/61576
21077 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
21078 block containing reduction statement is predecessor of phi basi block.
21080 2014-07-08 Marek Polacek <polacek@redhat.com>
21083 * fold-const.c (round_up_loc): Change the parameter type.
21085 * fold-const.h (round_up_loc): Adjust declaration.
21086 * stor-layout.c (finalize_record_size): Check for too large types.
21088 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
21090 * symtab.c: Include calls.h.
21091 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
21093 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
21095 * config/rs6000/rs6000.c (output_vec_const_move): Handle
21096 little-endian code generation.
21097 * config/rs6000/spe.md (spe_evmergehi): Rename to...
21098 (vec_perm00_v2si): ... this. Handle little-endian code generation.
21099 (spe_evmergehilo): Rename to...
21100 (vec_perm01_v2si): ... this. Handle little-endian code generation.
21101 (spe_evmergelo): Rename to...
21102 (vec_perm11_v2si): ... this. Handle little-endian code generation.
21103 (spe_evmergelohi): Rename to...
21104 (vec_perm10_v2si): ... this. Handle little-endian code generation.
21105 (spe_evmergehi, spe_evmergehilo): New expanders.
21106 (spe_evmergelo, spe_evmergelohi): Likewise.
21107 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
21108 (*frob_tf_ti): Likewise.
21109 (*frob_<mode>_di_2): Likewise.
21110 (*frob_tf_di_8_2): Likewise.
21111 (*frob_di_<mode>): Likewise.
21112 (*frob_ti_tf): Likewise.
21113 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
21114 (*frob_ti_<mode>_8_2): Likewise.
21115 (*frob_ti_tf_2): Likewise.
21116 (mov_si<mode>_e500_subreg0): Rename to...
21117 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
21119 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
21120 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
21121 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
21122 the big endianness only.
21123 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
21124 (*mov_si<mode>_e500_subreg0_2): Rename to...
21125 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
21126 big big endianness only.
21127 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
21128 (*mov_si<mode>_e500_subreg4): Rename to...
21129 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
21131 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
21132 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
21133 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
21134 the big endianness only.
21135 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
21137 (*mov_si<mode>_e500_subreg4_2): Rename to...
21138 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
21140 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
21141 (*mov_sitf_e500_subreg8): Rename to...
21142 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
21144 (*mov_sitf_e500_subreg8_le): New instruction pattern.
21145 (*mov_sitf_e500_subreg8_2): Rename to...
21146 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
21148 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
21149 (*mov_sitf_e500_subreg12): Rename to...
21150 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
21152 (*mov_sitf_e500_subreg12_le): New instruction pattern.
21153 (*mov_sitf_e500_subreg12_2): Rename to...
21154 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
21156 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
21158 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
21160 * asan.c (instrument_strlen_call): Do not instrument first byte
21161 in strlen if already instrumented.
21163 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21165 * config/arm/arm.opt (mwords-little-endian): Delete.
21166 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
21167 of TARGET_LITTLE_WORDS.
21168 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
21169 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
21171 * doc/invoke.texi: Remove references to -mwords-little-endian.
21173 2014-07-07 Jakub Jelinek <jakub@redhat.com>
21175 * expmed.c (struct init_expmed_rtl): Change all fields but
21176 pow2 and cint from struct rtx_def to rtx.
21177 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
21178 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
21181 2014-07-06 Marek Polacek <polacek@redhat.com>
21184 * doc/invoke.texi: Document -Wsizeof-array-argument.
21186 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
21188 * wide-int.h (wide_int_storage): Change declaration from struct
21191 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
21193 * cgraph.c (cgraph_create_indirect_edge): Update call of
21194 get_polymorphic_call_info.
21195 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
21196 (possible_polymorphic_call_targets): Add parameter call.
21197 (decl_maybe_in_construction_p): New predicate.
21198 (get_polymorphic_call_info): Add parameter call;
21199 use decl_maybe_in_construction_p.
21200 * gimple-fold.c (fold_gimple_assign): Update use of
21201 possible_polymorphic_call_targets.
21202 (gimple_fold_call): Likewise.
21203 * ipa-prop.c: Inlcude calls.h
21204 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
21205 (param_type_may_change_p): New predicate.
21206 (detect_type_change_from_memory_writes): Break out from ...
21207 (detect_type_change): ... this one; use param_type_may_change_p.
21208 (detect_type_change_ssa): Use param_type_may_change_p.
21209 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
21211 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
21214 * config/arm/arm-protos.h (arm_legitimate_address_p,
21215 arm_is_constant_pool_ref): Add prototypes.
21216 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
21217 (arm_is_constant_pool_ref) New function.
21218 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
21219 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
21220 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
21221 operand. Remove pool_range and neg_pool_range attributes.
21222 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
21223 pool_range and neg_pool_range attributes.
21224 * config/arm/constraints.md (Uh): New constraint.
21225 (Uq): Don't allow constant pool references.
21227 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
21229 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
21230 (move_lo_quad_internal_be_<mode>): Likewise.
21231 (move_lo_quad_<mode>): Convert to define_expand.
21232 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
21233 (aarch64_simd_move_hi_quad_be_<mode>): New.
21234 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
21235 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
21236 (aarch64_combinez_be<mode>): New.
21237 (aarch64_combine<mode>): Convert to define_expand.
21238 (aarch64_combine_internal<mode>): New.
21239 (aarch64_simd_combine<mode>): Remove bogus RTL description.
21241 2014-07-04 Tom de Vries <tom@codesourcery.com>
21243 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
21244 combination of earlyclobber and read/write modifiers.
21246 2014-07-04 Tom de Vries <tom@codesourcery.com>
21248 * config/aarch64/aarch64-simd.md
21249 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
21251 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
21254 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
21256 2014-07-04 Jakub Jelinek <jakub@redhat.com>
21258 PR middle-end/61654
21259 * cgraphunit.c (expand_thunk): Call free_dominance_info.
21261 PR tree-optimization/61684
21262 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
21263 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
21265 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21266 Kito Cheng <kito@0xlab.org>
21267 Monk Chiang <sh.chiang04@gmail.com>
21269 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
21270 (nds32_symbol_load_store_p): Move to ...
21271 (nds32_fp_as_gp_check_available): Move to ...
21272 * config/nds32/nds32-fp-as-gp.c: ... here.
21273 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
21274 extern declaration.
21276 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21277 Kito Cheng <kito@0xlab.org>
21278 Monk Chiang <sh.chiang04@gmail.com>
21280 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
21281 (nds32_expand_store_multiple): Move to ...
21282 (nds32_expand_movmemqi): Move to ...
21283 * config/nds32/nds32-memory-manipulation.c: ... here.
21285 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21286 Kito Cheng <kito@0xlab.org>
21287 Monk Chiang <sh.chiang04@gmail.com>
21289 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
21290 (nds32_output_casesi_pc_relative): Move to ...
21291 (nds32_output_casesi): Move to ...
21292 (nds32_mem_format): Move to ...
21293 (nds32_output_16bit_store): Move to ...
21294 (nds32_output_16bit_load): Move to ...
21295 (nds32_output_32bit_store): Move to ...
21296 (nds32_output_32bit_load): Move to ...
21297 (nds32_output_32bit_load_s): Move to ...
21298 (nds32_output_stack_push): Move to ...
21299 (nds32_output_stack_pop): Move to ...
21300 * config/nds32/nds32-md-auxiliary.c: ... here.
21302 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21303 Ling-Hua Tseng <uranus@tinlans.org>
21305 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
21306 the purpose of this file.
21308 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21309 Kito Cheng <kito@0xlab.org>
21310 Monk Chiang <sh.chiang04@gmail.com>
21312 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
21313 (nds32_address_cost): Move implementation to ...
21314 * config/nds32/nds32-cost.c: ... here.
21315 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
21316 (nds32_address_cost_impl): Declare.
21318 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21319 Kito Cheng <kito@0xlab.org>
21320 Monk Chiang <sh.chiang04@gmail.com>
21322 * config/nds32/nds32.c
21323 (nds32_consecutive_registers_load_store_p): Move to ...
21324 (nds32_valid_multiple_load_store): Move to ...
21325 (nds32_valid_stack_push_pop): Move to ...
21326 (nds32_can_use_bclr_p): Move to ...
21327 (nds32_can_use_bset_p): Move to ...
21328 (nds32_can_use_btgl_p): Move to ...
21329 (nds32_can_use_bitci_p): Move to ...
21330 * config/nds32/nds32-predicates.c: ... here.
21332 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21333 Kito Cheng <kito@0xlab.org>
21334 Monk Chiang <sh.chiang04@gmail.com>
21336 * config/nds32/nds32.c
21337 (nds32_expand_builtin_null_ftype_reg): Move to ...
21338 (nds32_expand_builtin_reg_ftype_imm): Move to ...
21339 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
21340 (nds32_init_builtins): Move implementation to ...
21341 (nds32_expand_builtin): Move implementation to ...
21342 * config/nds32/nds32-intrinsic.c: ... here.
21343 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
21344 (nds32_expand_builtin_impl): Declare.
21346 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21347 Kito Cheng <kito@0xlab.org>
21348 Monk Chiang <sh.chiang04@gmail.com>
21350 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
21351 (nds32_emit_section_tail_template): Move to ...
21352 (nds32_emit_isr_jmptbl_section): Move to ...
21353 (nds32_emit_isr_vector_section): Move to ...
21354 (nds32_emit_isr_reset_conten): Move to ...
21355 (nds32_check_isr_attrs_conflict): Move to ...
21356 (nds32_construct_isr_vectors_information): Move to ...
21357 (nds32_asm_file_start): Move implementation to ...
21358 (nds32_asm_file_end): Move implementation to ...
21359 * config/nds32/nds32-isr.c: ... here.
21360 * config/nds32/nds32-protos.h
21361 (nds32_check_isr_attrs_conflict): Declare.
21362 (nds32_construct_isr_vectors_information): Declare.
21363 (nds32_asm_file_start_for_isr): Declare.
21364 (nds32_asm_file_end_for_isr): Declare.
21366 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
21367 Kito Cheng <kito@0xlab.org>
21368 Monk Chiang <sh.chiang04@gmail.com>
21370 * config.gcc (nds32*): Add new modules to extra_objs.
21371 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
21372 (nds32be-*-*): Likewise.
21373 * config/nds32/nds32-cost.c: New file.
21374 * config/nds32/nds32-fp-as-gp.c: New file.
21375 * config/nds32/nds32-intrinsic.c: New file.
21376 * config/nds32/nds32-isr.c: New file.
21377 * config/nds32/nds32-md-auxiliary.c: New file.
21378 * config/nds32/nds32-memory-manipulation.c: New file.
21379 * config/nds32/nds32-pipelines-auxiliary.c: New file.
21380 * config/nds32/nds32-predicates.c: New file.
21381 * config/nds32/t-nds32: New file.
21383 2014-07-03 Jakub Jelinek <jakub@redhat.com>
21385 PR tree-optimization/61682
21386 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
21387 using cases and when one of the operands is equal to 1.
21389 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
21391 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
21392 ashr<mode>3): Correct mode of operands[2].
21393 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
21394 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
21395 Correct mode of operands[2]. Fix split condition.
21397 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
21399 * arm.md (arch): Add armv6_or_vfpv3.
21400 (arch_enabled): Add test for the above.
21401 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
21403 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
21405 2014-07-03 Jakub Jelinek <jakub@redhat.com>
21407 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
21408 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
21409 HWI 1 and negate the unsigned value.
21410 * expmed.c (expand_sdiv_pow2): For modes wider than word always
21411 use AND instead of shift.
21412 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
21414 2014-07-03 Marek Polacek <polacek@redhat.com>
21416 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
21417 (-fsanitize=float-divide-by-zero): Move to the table with
21418 -fsanitize=undefined suboptions.
21419 (-fsanitize=float-cast-overflow): Likewise.
21421 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
21423 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
21424 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
21427 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21429 * loop-invariant.c (struct invariant): Add a new member: eqno;
21430 (find_identical_invariants): Update eqno;
21431 (create_new_invariant): Init eqno;
21432 (get_inv_cost): Compute comp_cost with eqno;
21434 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
21436 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
21437 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
21438 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
21439 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
21440 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
21442 2014-07-02 Christian Bruel <christian.bruel@st.com>
21446 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
21447 (make_preds_opaque): Delete.
21448 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
21449 (commit_mode_sets): New function.
21450 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
21451 Process all modes at once.
21452 * basic-block.h (pre_edge_lcm_avs): Declare.
21453 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
21454 Call clear_aux_for_edges. Fix comments.
21455 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
21456 (pre_edge_rev_lcm): Idem.
21457 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
21459 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
21460 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
21462 * config/i386/i386.c (x96_emit_mode_set): Idem.
21463 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
21464 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
21465 (fpscr_toggle) Disallow from delay slot.
21466 * target.def (emit_mode_set): Add prev_mode parameter.
21467 * doc/tm.texi: Regenerate.
21469 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21471 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
21474 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
21476 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
21477 vtable_pointer_value_to_vtable): Constify.
21478 (contains_polymorphic_type_p): Declare.
21479 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
21480 vtable_pointer_value_to_vtable): Constify.
21481 (contains_polymorphic_type_p): New predicate.
21482 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
21484 (ipa_set_ancestor_jf): Likewise.
21485 (detect_type_change): Return false in easy cases.
21486 (compute_complex_assign_jump_func): Require type to contain
21488 (compute_known_type_jump_func): Likewise.
21490 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
21492 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
21494 (type_in_anonymous_namespace_p): Constify argument.
21495 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
21496 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
21497 (main_odr_variant): New function.
21498 (hash_type_name): Make static; update assert; do not ICE on
21500 (types_same_for_odr): Bring here from tree.c; simplify and remove
21501 old structural comparing code that doesn't work for templates.
21502 (odr_hasher::equal): Update assert.
21503 (add_type_duplicate): Return true when bases should be computed;
21504 replace incomplete loader by complete; do not output duplicated
21505 warnings; do not ICE on non-records; set odr_violated flag.
21506 (get_odr_type): Be ready to replace incomplete type by complete
21507 one; work on ODR variants instead of main variants; reorder item
21508 in array so bases have still smaller indexes.
21509 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
21510 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
21512 2014-07-01 Cary Coutant <ccoutant@google.com>
21514 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
21516 (resolve_addr_in_expr): When replacing the rtx in a location list
21517 entry, get a new address table entry.
21518 (dwarf2out_finish): Call index_location_lists even if there are no
21519 addr_index_table entries yet.
21521 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
21523 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
21524 change for not being obvious.
21526 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
21528 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
21531 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21533 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
21534 (vcagt_f64): Likewise.
21535 (vcale_f64): Likewise.
21536 (vcaled_f64): Likewise.
21537 (vcales_f32): Likewise.
21538 (vcalt_f64): Likewise.
21539 (vcaltd_f64): Likewise.
21540 (vcalts_f32): Likewise.
21542 2014-07-01 Marek Polacek <polacek@redhat.com>
21544 * doc/invoke.texi: Document -Wint-conversion.
21546 2014-07-01 Marek Polacek <polacek@redhat.com>
21549 * doc/invoke.texi: Document -Wincompatible-pointer-types.
21551 2014-07-01 Martin Liska <mliska@suse.cz>
21553 IPA REF alias refactoring
21554 * cgraph.h (iterate_direct_aliases): New function.
21555 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
21556 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
21557 FOR_EACH_ALIAS added.
21558 (cgraph_for_node_and_aliases): Likewise.
21559 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
21560 * ipa-inline.c (reset_edge_caches): Likewise.
21561 (update_caller_keys): Likewise.
21562 * trans-mem.c (ipa_tm_execute): Likewise.
21563 *varpool.c (varpool_analyze_node): Likewise.
21564 (varpool_for_node_and_aliases): Likewise.
21565 * ipa-ref.h (first_alias): New function.
21566 (last_alias): Likewise.
21567 (has_aliases_p): Likewise.
21568 * ipa-ref.c (ipa_ref::remove_reference): Removal function
21569 is sensitive to IPA_REF_ALIASes.
21570 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
21571 are put at the beginning of the list.
21572 (symtab_node::iterate_direct_aliases): New function.
21574 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21577 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
21579 (write_ts_type_common_tree_pointers): Do not stream fields not set
21580 for incomplete types; do not stream duplicated fields for variants;
21581 sanity check that variant and type match.
21582 (write_ts_type_non_common_tree_pointers): Likewise.
21583 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
21584 TYPE_SIZE whether type is complete.
21585 (lto_input_ts_type_common_tree_pointers): Do same changes as in
21586 write_ts_type_common_tree_pointers
21587 (lto_input_ts_type_non_common_tree_pointers): Likewise.
21589 2014-06-30 Joseph Myers <joseph@codesourcery.com>
21591 * var-tracking.c (add_stores): Return instead of asserting if old
21592 and new values for conditional store are the same.
21594 2014-06-30 Richard Henderson <rth@redhat.com>
21598 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
21599 the cfg if there were any changes.
21600 * passes.def: Revert move of peephole2 after reorder_blocks;
21601 move duplicate_computed_gotos before peephole2.
21603 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
21605 * except.c (emit_note_eh_region_end): New helper function.
21606 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
21607 emit EH_REGION_END note.
21608 * jump.c (cleanup_barriers): Do not split a call and its
21609 corresponding CALL_ARG_LOCATION note.
21611 2014-06-30 Jeff Law <law@redhat.com>
21613 PR tree-optimization/61607
21614 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
21615 deeper into the SSA_NAME_VALUE chain.
21617 2014-06-30 Marek Polacek <polacek@redhat.com>
21619 * convert.c (convert_to_integer): Don't instrument conversions if the
21620 function has no_sanitize_undefined attribute.
21621 * ubsan.c: Don't run the ubsan pass if the function has
21622 no_sanitize_undefined attribute.
21624 2014-06-30 Jakub Jelinek <jakub@redhat.com>
21626 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
21627 -fsanitize=undefined suboptions.
21629 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
21631 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
21632 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
21633 against bigendian and adjust indices.
21635 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
21637 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
21639 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
21642 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
21643 Add alternative; make early clobber. Adjust both split patterns
21644 to use operand 0 as the working register.
21646 2014-06-30 Jakub Jelinek <jakub@redhat.com>
21648 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
21649 as ira_object_id_map might be NULL, or 1.
21651 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21653 * loop-invariant.c (get_inv_cost): Handle register class.
21654 (gain_for_invariant): Check the register pressure of the inv
21655 and its overlapped register class, other than all.
21657 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
21659 * doc/invoke.texi (Optimize Options): Fix descriptions of
21660 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
21662 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
21664 * doc/extend.texi (Function Attributes): Update 'naked' attribute
21667 2014-06-29 Tobias Grosser <tobias@grosser.es>
21670 * graphite-isl-ast-to-gimple.c: Add missing guards.
21672 2014-06-29 Roman Gareev <gareevroman@gmail.com>
21674 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
21675 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
21676 * flag-types.h: Add new enum fgraphite_generator.
21677 * graphite-isl-ast-to-gimple.c: New.
21678 * graphite-isl-ast-to-gimple.h: New.
21679 * graphite.c (graphite_transform_loops): Add choice of Graphite
21680 code generator, which depends on flag_graphite_code_gen.
21682 2014-06-29 Roman Gareev <gareevroman@gmail.com>
21684 * graphite-dependences.c (subtract_commutative_associative_deps):
21685 Add NULL checking of the following variables: must_raw_no_source,
21686 may_raw_no_source, must_war_no_source, may_war_no_source,
21687 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
21688 must_war, may_war, must_waw, may_waw.
21690 2014-06-29 Roman Gareev <gareevroman@gmail.com>
21692 * graphite-clast-to-gimple.c: gloog is renamed to
21693 graphite_regenerate_ast_cloog. gloog_error is renamed to
21694 graphite_regenerate_error.
21695 * graphite-clast-to-gimple.h: The definition of the struct
21696 bb_pbb_def is moved to graphite-htab.h.
21697 Add inclusion of the hash-table.h.
21698 * graphite-htab.h: The declaration of the function gloog is moved
21699 to graphite-clast-to-gimple.h and renamed to
21700 graphite_regenerate_ast_cloog.
21701 * graphite.c (graphite_transform_loops): gloog is renamed
21702 to graphite_regenerate_ast_cloog.
21704 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21706 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
21708 (write_ts_type_common_tree_pointers): Do not stream fields not set
21709 for incomplete types; do not stream duplicated fields for variants;
21710 sanity check that variant and type match.
21711 (write_ts_type_non_common_tree_pointers): Likewise.
21712 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
21713 TYPE_SIZE whether type is complete.
21714 (lto_input_ts_type_common_tree_pointers): Do same changes as in
21715 write_ts_type_common_tree_pointers
21716 (lto_input_ts_type_non_common_tree_pointers): Likewise.
21718 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21720 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
21722 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21724 * tree-inline.c (remap_type_1): Do not duplicate fields
21725 that are shared in between type and its main variant.
21727 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21729 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
21731 (ipa_set_ancestor_jf) Likewise.
21732 (check_stmt_for_type_change): Check that we work on main variant.
21733 (detect_type_change): Look into main variant.
21734 (compute_known_type_jump_func): Check that main variant has BINFO.
21736 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21738 * ipa-devirt.c (set_type_binfo): New function.
21739 (add_type_duplicate): Use it.
21740 (get_odr_type): Sanity check that binfos points to main variants.
21741 (get_class_context): Be sure the context's outer_type is main variant.
21742 (contains_type_p): Walk main variant.
21743 (get_polymorphic_call_info_for_decl): Set outer_type to be
21745 (get_polymorphic_call_info): Likewise.
21746 (possible_polymorphic_call_targets): Sanity check that we operate
21749 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
21751 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
21753 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
21755 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
21756 accidental change due to wide-int branch merge.
21758 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21760 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
21761 compressed debug support.
21762 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
21763 * configure: Regenerate.
21764 * config.in: Regenerate.
21765 * common.opt (compressed_debug_sections): New enum.
21766 (gz, gz=): New options.
21767 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
21768 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
21769 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
21770 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
21771 LINK_COMPRESS_DEBUG_SPEC.
21772 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
21773 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
21774 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
21775 (Debugging Options): Document -gz[=type].
21777 2014-06-27 Martin Jambor <mjambor@suse.cz>
21780 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
21781 args_to_skip, use those from node instead. Copy args_to_skip and
21782 combined_args_to_skip from node to the new thunk.
21783 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
21784 (cgraph_create_virtual_clone): Moved computation of
21785 combined_args_to_skip...
21786 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
21788 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
21790 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
21791 redundant diagnostic machinary.
21793 2014-06-27 Richard Biener <rguenther@suse.de>
21795 * tree-ssa-math-opts.c (bswap_replace): Fix
21796 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
21798 2014-06-27 Martin Liska <mliska@suse.cz>
21800 * gimple.h (gimple_location_safe): New function introduced.
21801 * cgraphunit.c (walk_polymorphic_call_targets): Usage
21802 of gimple_location_safe replaces gimple_location.
21803 (gimple_fold_call): Likewise.
21804 * ipa-devirt.c (ipa_devirt): Likewise.
21805 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21806 * ipa.c (walk_polymorphic_call_targets): Likewise.
21807 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
21809 2014-06-27 Jakub Jelinek <jakub@redhat.com>
21811 PR tree-optimization/57233
21812 PR tree-optimization/61299
21813 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
21815 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
21816 would be lowered to scalar shifts, check if corresponding
21817 shifts and vector BIT_IOR_EXPR are supported and don't lower
21818 or lower just to narrower vector type in that case.
21819 * expmed.c (expand_shift_1): Fix up handling of vector
21820 shifts and rotates.
21822 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
21825 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
21827 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
21829 * doc/invoke.texi (-fsemantic-interposition): Document.
21830 * common.opt (fsemantic-interposition): New flag.
21831 * varasm.c (decl_replaceable_p): Use it.
21833 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21836 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
21837 extraction other than index 3.
21839 2014-06-26 Teresa Johnson <tejohnson@google.com>
21841 * doc/invoke.texi: Fix typo.
21842 * dumpfile.c: Add support for documented -fdump-* options
21843 optimized/missed/note/optall.
21845 2014-06-26 Martin Jambor <mjambor@suse.cz>
21847 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
21848 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
21849 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
21850 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
21851 * opts.c (default_options_optimization): Set
21852 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
21853 * doc/invoke.texi (allow-load-data-races)
21854 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
21855 (allow-store-data-races): Document the new default.
21857 2014-06-26 Martin Jambor <mjambor@suse.cz>
21859 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
21860 renamed to ipa_impossible_devirt_target. Fix typo.
21861 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
21862 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
21863 ipa_impossible_devirt_target.
21865 2014-06-26 Richard Biener <rguenther@suse.de>
21867 PR tree-optimization/61607
21868 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
21869 explaining why we restrict copies on loop depth.
21870 * tree-ssa-dom.c (cprop_operand): Remove restriction on
21872 (record_equivalences_from_phis): Instead add it here.
21874 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
21876 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
21877 (LTO_WRAPPER_OBJS): New variable.
21878 (lto-wrapper$(exeext)): Use it.
21879 * collect2.c: Include "collect-utils.h".
21880 (verbose, debug): Remove variables.
21881 (at_file_supplied): No longer static.
21882 (tool_name): New variable.
21883 (do_wait, fork_execute, maybe_unlink): Don't declare.
21884 (tool_cleanup): No longer static.
21885 (notice): Remove function.
21886 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
21887 fork_execute calls.
21888 (collect_wait, do_wait, collect_execute): Remove functions.
21889 (maybe_unlink): No longer static.
21890 * collect2.h (verbose, debug): Don't declare.
21891 (at_file_supplied): Declare.
21892 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
21894 (collect_execute): Replace with implementation from collect2, plus a
21895 new arg use_atfile. All callers changed.
21896 (collect_wait): Replace with implementation from collect2.
21897 (maybe_unlink_file): Remove function.
21898 (fork_execute): Replace with implementation from collect2, plus a
21899 new arg use_atfile. All callers changed.
21900 (do_wait): Add call to utils_cleanup to the error path.
21901 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
21902 (tool_cleanup): Adjust declarations.
21903 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
21904 * tlink.c: Include "collect-utils.h".
21905 (tlink_execute): New arg use_atfile. All callers changed.
21906 (tlink_init, tlink_execute): Remove declarations.
21908 * collect-utils.c (save_temps): New variable.
21909 (do_wait): Use it instead of debug. Use fatal_error.
21910 * collect-utils.h (save_temps): Declare.
21911 * collect2.c (verbose): Rename from vflag. All uses changed.
21912 (tool_cleanup): New function, copied from collect_atexit.
21913 (collect_atexit, handler): Just call it.
21914 * collect2.h (verbose): Declaration renamed from vflag.
21915 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
21918 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
21919 (lto-wrapper$(exeext)): Link with collect-utils.o.
21920 * collect-utils.c: New file.
21921 * collect-utils.h: New file.
21922 * lto-wrapper.c: Include "collect-utils.h".
21923 (args_name): Delete variable.
21924 (tool_name): New variable.
21925 (tool_cleanup): New function.
21926 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
21927 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
21928 (fork_execute): Remove functions.
21930 2014-06-26 Nick Clifton <nickc@redhat.com>
21932 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
21934 * doc/extend.texi (Function Attributes): Fix typo in description
21935 of RX vector attribute.
21937 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
21939 * config.gcc (supported_defaults): Error when passing either
21940 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
21942 2014-06-26 Richard Biener <rguenther@suse.de>
21944 * tree-ssa-dom.c (cprop_operand): Remove restriction on
21945 propagating volatile pointers.
21947 2014-06-26 Richard Biener <rguenther@suse.de>
21949 PR tree-optimization/61607
21950 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
21951 loop if we redirected its latch edge.
21952 (thread_block_1): Do not cancel loops prematurely.
21954 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
21956 * toplev.c (backend_init_target): Move init_emit_regs and
21958 (backend_init) ... here; skip ira_init_once and backend_init_target.
21959 (target_reinit) ... and here; clear
21960 this_target_rtl->lang_dependent_initialized.
21961 (lang_dependent_init_target): Clear
21962 this_target_rtl->lang_dependent_initialized;
21963 break out rtl initialization to ...
21964 (initialize_rtl): ... here; call also backend_init_target
21966 * toplev.h (initialize_rtl): New function.
21967 * function.c: Include toplev.h
21968 (init_function_start): Call initialize_rtl.
21969 * rtl.h (target_rtl): Add target_specific_initialized,
21970 lang_dependent_initialized.
21972 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
21973 Jakub Jelinek <jakub@redhat.com>
21975 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
21977 2014-06-25 Tom de Vries <tom@codesourcery.com>
21979 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
21981 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
21983 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
21984 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
21985 Issue a strict overflow warning if appropriate.
21987 2014-06-25 Martin Liska <mliska@suse.cz>
21989 IPA REF refactoring
21990 * Makefile.in: Removed header file (ipa-ref-inline.h).
21991 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
21993 (cgraph_speculative_call_info): Likewise.
21994 (cgraph_for_node_thunks_and_aliases): Likewise.
21995 (cgraph_for_node_and_aliases): Likewise.
21996 (verify_cgraph_node): Likewise.
21997 * cgraph.h: Batch of IPA REF functions become member functions of
21998 symtab_node: add_reference, maybe_add_reference, clone_references,
21999 clone_referring, clone_reference, find_reference,
22000 remove_stmt_references, remove_all_references,
22001 remove_all_referring, dump_references, dump_referring,
22002 has_alias_p, iterate_reference, iterate_referring.
22003 * cgraphbuild.c (record_reference): New IPA REF function used.
22004 (record_type_list): Likewise.
22005 (record_eh_tables): Likewise.
22006 (mark_address): Likewise.
22007 (mark_load): Likewise.
22008 (mark_store): Likewise.
22009 (pass_build_cgraph_edges): Likewise.
22010 (rebuild_cgraph_edge): Likewise.
22011 (cgraph_rebuild_references): Likewise.
22012 (pass_remove_cgraph_callee_edges): Likewise.
22013 * cgraphclones.c (cgraph_clone_node): Likewise.
22014 (cgraph_create_virtual_clone): Likewise.
22015 (cgraph_materialize_clone): Likewise.
22016 (cgraph_materialize_all_clones): Likewise.
22017 * cgraphunit.c (cgraph_reset_node): Likewise.
22018 (cgraph_reset_node): Likewise.
22019 (analyze_function): Likewise.
22020 (assemble_thunks_and_aliases): Likewise.
22021 (expand_function): Likewise.
22022 * ipa-comdats.c (propagate_comdat_group): Likewise.
22023 (enqueue_references): Likewise.
22024 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
22025 (create_specialized_node): Likewise.
22026 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
22027 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
22028 * ipa-inline.c (reset_edge_caches): Likewise.
22029 (update_caller_keys): Likewise.
22030 (execute): Likewise.
22031 * ipa-prop.c (remove_described_reference): Likewise.
22032 (propagate_controlled_uses): Likewise.
22033 (ipa_edge_duplication_hook): Likewise.
22034 (ipa_modify_call_arguments): Likewise.
22035 * ipa-pure-const.c (propagate_pure_const): Likewise.
22036 * ipa-ref-inline.h: Header file removed, functions moved
22037 to symtab_node class.
22038 * ipa-ref.c (remove_reference): New class member function.
22039 (cannot_lead_to_return): New class member function.
22040 (referring_ref_list): Likewise.
22041 (referred_ref_list): Likewise.
22042 Rest of functions moved to symtab_node class.
22043 * ipa-ref.h: New member functions remove_reference,
22044 cannot_lead_to_return, referring_ref_list, referred_ref_list added
22046 ipa_ref_list class has new member functions: first_reference,
22047 first_referring, clear, nreferences.
22048 * ipa-reference.c (analyze_function): New IPA REF function used.
22049 (write_node_summary_p): Likewise.
22050 (ipa_reference_write_optimization_summary): Likewise.
22051 * ipa-split.c (split_function): Likewise.
22052 * ipa-utils.c (ipa_reverse_postorder): Likewise.
22053 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
22054 (function_and_variable_visibility): Likewise.
22055 * ipa.c (has_addr_references_p): Likewise.
22056 (process_references): Argument type changed.
22057 (symtab_remove_unreachable_nodes): New IPA REF function used.
22058 (process_references): Likewise.
22059 (set_writeonly_bit): Likewise.
22060 * lto-cgraph.c: Implementation of new symtab_node member functions
22061 that uses new IPA REF functions.
22062 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
22064 * lto-streamer-out.c (output_symbol_p): Likewise.
22065 * lto-streamer.h (referenced_from_this_partition_p): Argument type
22067 * symtab.c: Implementation of new IPA REF API.
22068 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
22069 (ipa_tm_create_version): Likewise.
22070 (ipa_tm_execute): Likewise.
22071 * tree-emutls.c (gen_emutls_addr): Likewise.
22072 * tree-inline.c (copy_bb): Likewise.
22073 (delete_unreachable_blocks_update_callgraph): Likewise.
22074 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
22075 (varpool_for_node_and_aliases): Likewise.
22077 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
22079 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
22081 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
22084 * fold-const.c (fold_checksum_tree): Use a hash_table of const
22085 tree_node * instead of tree_node *.
22087 (print_fold_checksum): Likewise.
22088 (fold_check_failed): Likewise.
22089 (debug_fold_checksum): Likewise.
22090 (fold_build1_stat_loc): Likewise.
22091 (fold_build2_stat_loc): Likewise.
22092 (fold_build3_stat_loc): Likewise.
22093 (fold_build_call_array_loc): Likewise.
22095 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
22097 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
22098 implementation with call to...
22099 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
22101 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
22104 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
22106 PR tree-optimization/57742
22107 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
22108 after replacing the statement.
22110 2014-06-25 Nick Clifton <nickc@redhat.com>
22112 * config/v850/v850.c (GHS_default_section_names): Change to const
22114 (GHS_current_section_names): Likewise.
22115 (v850_insert_attributes): Do not build strings, just assign the
22116 names directly. Change the type of 'chosen_section' to const
22118 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
22119 directly to the array entry.
22120 * config/v850/v850.h (GHS_default_section_names): Change to const
22122 (GHS_current_section_names): Likewise.
22124 2014-06-25 Jakub Jelinek <jakub@redhat.com>
22126 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
22127 (LANG_HOOKS_DECLS): Add it.
22128 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
22130 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
22131 * langhooks.h (struct lang_hooks_for_decls): Add
22132 omp_clause_linear_ctor hook.
22133 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
22134 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
22135 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
22136 combined simd loop use omp_clause_linear_ctor hook.
22138 2014-06-24 Cong Hou <congh@google.com>
22140 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
22141 pattern recognition.
22142 (type_conversion_p): PROMOTION is true if it's a type promotion
22143 conversion, and false otherwise. Return true if the given expression
22144 is a type conversion one.
22145 * tree-vectorizer.h: Adjust the number of patterns.
22146 * tree.def: Add SAD_EXPR.
22147 * optabs.def: Add sad_optab.
22148 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
22149 * expr.c (expand_expr_real_2): Likewise.
22150 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
22151 * gimple.c (get_gimple_rhs_num_ops): Likewise.
22152 * optabs.c (optab_for_tree_code): Likewise.
22153 * tree-cfg.c (estimate_operator_cost): Likewise.
22154 * tree-ssa-operands.c (get_expr_operands): Likewise.
22155 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
22156 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
22157 * doc/generic.texi: Add document for SAD_EXPR.
22158 * doc/md.texi: Add document for ssad and usad.
22160 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
22162 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
22163 qualification in cast.
22165 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
22167 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
22168 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
22169 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
22170 (tree_function_decl): ... here.
22171 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
22172 streaming of vindex to ...
22173 (write_ts_function_decl_tree_pointers): ... here.
22174 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
22175 Do not stream DECL_VINDEX.
22176 (lto_input_ts_function_decl_tree_pointers): Stream it here.
22178 2014-06-24 Catherine Moore <clm@codesourcery.com>
22179 Sandra Loosemore <sandra@codesourcery.com>
22181 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
22182 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
22183 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
22185 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
22187 * doc/invoke.texi (Warning Options): Remove duplicated
22188 -Wmaybe-uninitialized.
22190 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
22192 PR tree-optimization/57742
22193 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
22194 (handle_builtin_malloc, handle_builtin_memset): New functions.
22195 (strlen_optimize_stmt): Call them.
22196 * passes.def: Move strlen after loop+dom but before vrp.
22198 2014-06-24 Jakub Jelinek <jakub@redhat.com>
22201 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
22202 model family 6 CPU with has_longmode never use a CPU without
22205 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
22208 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
22211 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
22213 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
22214 * dominance.c (iterate_fix_dominators): Use hash_map instead of
22216 * hash-map.h: New file.
22217 * ipa-comdats.c: Use hash_map instead of pointer_map.
22219 * lto-section-out.c: Adjust.
22220 * lto-streamer.h: Replace pointer_map with hash_map.
22221 * symtab.c (verify_symtab): Likewise.
22222 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
22223 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
22224 * tree-streamer.h: Likewise.
22225 * tree-streamer.c: Adjust.
22226 * pointer-set.h: Remove pointer_map.
22228 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
22230 * hash-table.h: Add a template arg to choose between storing values
22231 and storing pointers to values, and then provide partial
22232 specializations for both.
22233 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
22234 should store, not the type values should point to.
22235 * tree-into-ssa.c (var_info_hasher): Likewise.
22236 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
22237 * tree-complex.c: Adjust.
22238 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
22239 table instead of int_tree_map *.
22240 * tree-parloops.c: Adjust.
22241 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
22242 type is being stored.
22243 * tree-vectorizer.c: Adjust.
22245 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
22247 * hash-table.h: Remove a layer of indirection from hash_table so that
22248 it contains the hash table's data instead of a pointer to the data.
22249 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
22250 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
22251 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
22252 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
22253 fold-const.c, gcse.c, ggc-common.c,
22254 gimple-ssa-strength-reduction.c, gimplify.c,
22255 graphite-clast-to-gimple.c, graphite-dependences.c,
22256 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
22257 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
22258 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
22259 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
22260 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
22261 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
22262 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
22263 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
22264 tree-ssa-live.c, tree-ssa-loop-im.c,
22265 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
22266 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
22267 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
22268 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
22269 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
22270 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
22271 vtable-verify.c, vtable-verify.h: Adjust.
22273 2014-06-24 Richard Biener <rguenther@suse.de>
22275 PR tree-optimization/61572
22276 * tree-ssa-sink.c (statement_sink_location): Do not sink
22277 loads from hard registers.
22279 2014-06-24 Jakub Jelinek <jakub@redhat.com>
22281 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
22282 not mentioned in clauses use private clause if the iterator is
22283 declared in #pragma omp for simd, and when adding lastprivate
22284 instead, add it to the outer #pragma omp for too. Diagnose
22285 if the variable is private in outer context. For simd collapse > 1
22286 loops, replace all iterators with temporaries.
22287 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
22288 same even in collapse > 1 loops.
22290 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
22291 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
22293 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
22294 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
22296 (gimplify_adjust_omp_clauses): Likewise.
22297 * omp-low.c (lower_rec_simd_input_clauses,
22298 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
22299 safelen the same as safelen(1).
22300 * tree-nested.c (convert_nonlocal_omp_clauses,
22301 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
22302 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
22303 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
22304 Fixup handling of GIMPLE_OMP_TARGET.
22305 (convert_tramp_reference_stmt, convert_gimple_call): Handle
22308 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
22310 PR tree-optimization/61554
22311 * tree-ssa-propagate.c: Include "bitmap.h".
22312 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
22313 properly update constructor/destructor.
22314 (substitute_and_fold_dom_walker::before_dom_children):
22315 Remove call to gimple_purge_dead_eh_edges, add bb->index to
22316 need_eh_cleaup instead.
22317 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
22320 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
22322 * varpool.c (dump_varpool_node): Dump used_by_single_function.
22323 * tree-pass.h (make_pass_ipa_single_use): New pass.
22324 * cgraph.h (used_by_single_function): New flag.
22325 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
22327 * passes.def (pass_ipa_single_use): Scedule.
22328 * ipa.c (BOTTOM): New macro.
22329 (meet): New function
22330 (propagate_single_user): New function.
22331 (ipa_single_use): New function.
22332 (pass_data_ipa_single_use): New pass.
22333 (pass_ipa_single_use): New pass.
22334 (pass_ipa_single_use::gate): New gate.
22335 (make_pass_ipa_single_use): New function.
22337 2014-06-23 Kai Tietz <ktietz@redhat.com>
22340 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
22341 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
22343 2014-06-23 Richard Biener <rguenther@suse.de>
22345 * tree-ssa-loop.c (gate_loop): New function.
22346 (pass_tree_loop::gate): Call it.
22347 (pass_data_tree_no_loop, pass_tree_no_loop,
22348 make_pass_tree_no_loop): New.
22349 * tree-vectorizer.c: Include tree-scalar-evolution.c
22350 (pass_slp_vectorize::execute): Initialize loops and SCEV if
22352 (pass_slp_vectorize::clone): New method.
22353 * timevar.def (TV_TREE_NOLOOP): New.
22354 * tree-pass.h (make_pass_tree_no_loop): Declare.
22355 * passes.def (pass_tree_no_loop): New pass group with
22358 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
22361 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
22362 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
22364 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
22366 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
22367 "yes" where needed.
22369 2014-06-23 Alan Modra <amodra@gmail.com>
22372 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
22373 to zero on debug statements.
22375 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
22378 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
22379 Ignore third operand if present by marking qualifier_internal.
22381 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
22383 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
22385 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
22386 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
22387 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
22388 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
22389 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
22390 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
22391 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
22392 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
22393 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
22394 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
22395 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
22396 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
22397 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
22398 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
22399 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
22400 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
22401 logic in GCC vector extensions
22403 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
22404 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
22405 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
22406 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
22407 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
22408 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
22409 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
22410 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
22411 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
22412 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
22414 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
22416 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
22419 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
22420 (vget_low_s64): Use __GET_LOW macro.
22421 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
22422 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
22423 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
22424 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
22425 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
22427 (vcombine_s64): Use GCC vector extensions; remove cast.
22428 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
22429 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
22430 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
22431 Fix type signature; remove cast.
22433 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
22436 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
22438 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
22440 (BUILTIN_VD1): New.
22441 (BUILTIN_VD_RE): Remove.
22442 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
22443 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
22444 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
22445 variant but not df.
22446 (vreinterpretv1df*, vreinterpret*v1df): New.
22447 (vreinterpretdf*, vreinterpret*df): Remove.
22448 * config/aarch64/aarch64-simd.md (aarch64_create,
22449 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
22450 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
22452 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
22453 (vcreate_f64): Remove cast, use v1df builtin.
22454 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
22455 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
22456 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
22457 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
22458 vmov_n_f64, vst1_f64): Use gcc vector extensions.
22459 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
22460 add range check using __builtin_aarch64_im_lane_boundsi.
22461 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
22462 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
22463 type signature, use gcc vector extensions.
22464 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
22465 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
22466 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
22467 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
22468 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
22469 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
22470 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
22471 vreinterpret_u64_f64): Use v1df builtin not df.
22473 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
22475 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
22478 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
22480 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
22483 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
22485 * loop-invariant.c (pre_check_invariant_p): New function.
22486 (find_invariant_insn): Call pre_check_invariant_p.
22488 2014-06-22 Richard Henderson <rth@redhat.com>
22491 * compare-elim.c (struct comparison): Add eh_note.
22492 (find_comparison_dom_walker::before_dom_children): Don't eliminate
22493 a redundant comparison in a different EH region. Purge EH edges if
22496 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
22498 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
22499 (var_shift): Use it.
22500 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
22501 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
22502 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
22503 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
22504 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
22505 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
22506 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
22507 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
22508 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
22509 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
22510 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
22511 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
22512 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
22513 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
22514 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
22515 *rotldi3_internal15be): Use the new attribute. Merge register and
22516 integer alternatives.
22518 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
22520 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
22521 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
22522 split, *ashrdi3_internal3 and split): Delete, merge into...
22523 (ashr<mode>3): New expander.
22524 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
22525 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
22527 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
22529 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
22530 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
22531 *rotldi3_internal3 and split): Delete, merge into...
22532 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
22533 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
22534 Use "rotlw" extended mnemonic.
22536 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
22538 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
22539 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
22540 and split, *ashldi3_internal3 and split): Delete, merge into...
22541 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
22542 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
22544 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
22546 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
22547 (lshrsi3, two anonymous define_insns and define_splits,
22548 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
22549 *lshrdi3_internal3 and split): Delete, merge into...
22550 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
22551 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
22553 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
22555 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
22556 Remove "O" alternative.
22558 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
22560 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
22561 (mips_move_from_gpr_cost): Likewise.
22562 (mips_register_move_cost): Update accordingly.
22563 (mips_secondary_reload_class): Remove name of in_p.
22565 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
22568 * config/i386/i386.md (x86_64_shrd, x86_shrd,
22569 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
22571 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
22573 * config/nios2/nios2.c: Include "builtins.h".
22575 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
22577 * cgraph.h (tls_model_names): New variable.
22578 * print-tree.c (print_node): Simplify.
22579 * varpool.c (tls_model_names): New variable.
22580 (dump_varpool_node): Output tls model.
22582 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
22584 * ipa-visibility.c (function_and_variable_visibility): Disable
22585 temporarily local aliases for some targets.
22587 2014-06-20 Marek Polacek <polacek@redhat.com>
22589 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
22590 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
22591 into SANITIZE_UNDEFINED.
22592 * doc/invoke.texi: Describe -fsanitize=bounds.
22593 * gimplify.c (gimplify_call_expr): Add gimplification of internal
22594 functions created in the FEs.
22595 * internal-fn.c: Move "internal-fn.h" after "tree.h".
22596 (expand_UBSAN_BOUNDS): New function.
22597 * internal-fn.def (UBSAN_BOUNDS): New internal function.
22598 * internal-fn.h: Don't define internal functions here.
22599 * opts.c (common_handle_option): Add -fsanitize=bounds.
22600 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
22601 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
22602 * tree-core.h: Define internal functions here.
22603 (struct tree_base): Add ifn field.
22604 * tree-pretty-print.c: Include "internal-fn.h".
22605 (dump_generic_node): Handle functions without CALL_EXPR_FN.
22606 * tree.c (get_callee_fndecl): Likewise.
22607 (build_call_expr_internal_loc): New function.
22608 * tree.def (CALL_EXPR): Update description.
22609 * tree.h (CALL_EXPR_IFN): Define.
22610 (build_call_expr_internal_loc): Declare.
22611 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
22613 (ubsan_type_descriptor): Change bool parameter to enum
22614 ubsan_print_style. Adjust the code. Add handling of
22616 (ubsan_expand_bounds_ifn): New function.
22617 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
22618 (ubsan_build_overflow_builtin): Likewise.
22619 (instrument_bool_enum_load): Likewise.
22620 (ubsan_instrument_float_cast): Likewise.
22621 * ubsan.h (enum ubsan_print_style): New enum.
22622 (ubsan_expand_bounds_ifn): Declare.
22623 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
22625 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
22627 * config/rs6000/rs6000.md: Append `DONE' to preparation
22628 statements of `bswap' pattern splitters.
22630 2014-06-20 Tom de Vries <tom@codesourcery.com>
22632 * target.def (call_fusage_contains_non_callee_clobbers): Update
22634 * doc/tm.texi: Regenerate.
22636 2014-06-20 Yury Gribov <y.gribov@samsung.com>
22637 Max Ostapenko <m.ostapenko@partner.samsung.com>
22640 * asan.c (instrument_strlen_call): Fixed instrumentation of
22643 2014-06-20 Martin Jambor <mjambor@suse.cz>
22646 * ipa-prop.c (impossible_devirt_target): New function.
22647 (try_make_edge_direct_virtual_call): Use it, also instead of
22650 2014-06-20 Yury Gribov <y.gribov@samsung.com>
22651 Max Ostapenko <m.ostapenko@partner.samsung.com>
22654 * asan.c (build_check_stmt): Add condition.
22656 2014-06-20 Martin Jambor <mjambor@suse.cz>
22659 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
22662 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22664 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
22666 (VCONQ): Make comment more helpful.
22668 * config/aarch64/aarch64-simd.md
22669 (aarch64_sqdmulh_lane<mode>):
22670 Use VCOND for operands 2. Update lane checking and flipping logic.
22671 (aarch64_sqrdmulh_lane<mode>): Likewise.
22672 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
22673 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
22674 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
22675 attribute of operand 3 to VCOND.
22676 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
22677 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
22678 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
22679 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
22680 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
22681 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
22683 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
22684 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
22685 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
22686 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
22687 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
22688 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
22689 operand to VCOND. Update lane flipping and bounds checking logic.
22690 (aarch64_sqdmlal2_lane<mode>): Likewise.
22691 (aarch64_sqdmlsl_lane<mode>): Likewise.
22692 (aarch64_sqdmull_lane<mode>): Likewise.
22693 (aarch64_sqdmull2_lane<mode>): Likewise.
22694 (aarch64_sqdmlal_laneq<mode>):
22695 Replace VCON usage with VCONQ.
22696 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
22697 (aarch64_sqdmlal2_laneq<mode>): Emit
22698 aarch64_sqdmlal2_laneq<mode>_internal insn.
22699 Replace VCON with VCONQ.
22700 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
22701 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
22702 (aarch64_sqdmull_laneq<mode>): Emit
22703 aarch64_sqdmull_laneq<mode>_internal insn.
22704 Replace VCON with VCONQ.
22705 (aarch64_sqdmull2_laneq<mode>): Emit
22706 aarch64_sqdmull2_laneq<mode>_internal insn.
22707 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
22708 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
22709 of 3rd argument to int16x4_t.
22710 (vqdmlalh_lane_s16): Likewise.
22711 (vqdmlslh_lane_s16): Likewise.
22712 (vqdmull_high_lane_s16): Likewise.
22713 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
22714 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
22715 (vqdmlsl_lane_s16): Likewise.
22716 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
22717 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
22718 (vqdmlals_lane_s32): Likewise.
22719 (vqdmlsls_lane_s32): Likewise.
22720 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
22721 (vqdmulls_lane_s32): Likewise.
22722 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
22723 (vqdmlsl_lane_s32): Likewise.
22724 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
22725 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
22726 (vqrdmulhh_lane_s16): Likewise.
22727 (vqdmlsl_high_lane_s16): Likewise.
22728 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
22729 (vqdmlsl_high_lane_s32): Likewise.
22730 (vqrdmulhs_lane_s32): Likewise.
22732 2014-06-20 Tom de Vries <tom@codesourcery.com>
22734 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
22735 get_call_reg_set_usage.
22737 2014-06-20 Tom de Vries <tom@codesourcery.com>
22739 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
22740 it contains all call_used_regs.
22742 2014-06-20 Tom de Vries <tom@codesourcery.com>
22744 * final.c (collect_fn_hard_reg_usage): Add and use variable
22745 function_used_regs.
22747 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
22749 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
22750 (set_init_priority, get_init_priority, set_fini_priority,
22751 get_fini_priority): New methods.
22752 * tree.c (init_priority_for_decl): Remove.
22753 (init_ttree): Do not initialize init priority.
22754 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
22755 (decl_priority_info): Remove.
22756 (decl_init_priority_insert): Rewrite.
22757 (decl_fini_priority_insert): Rewrite.
22758 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
22759 tree_priority_map_marked_p): Remove.
22760 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
22761 * lto-streamer-out.c (hash_tree): Do not hash priorities.
22762 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
22763 not output priorities.
22764 (pack_ts_function_decl_value_fields): Likewise.
22765 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
22766 not input priorities.
22767 (unpack_ts_function_decl_value_fields): Likewise.
22768 * symtab.c (symbol_priority_map): Declare.
22769 (init_priority_hash): Declare.
22770 (symtab_unregister_node): Unregister from priority hash, too.
22771 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
22773 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
22774 (symbol_priority_info): New function.
22775 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
22777 * tree-core.h (tree_priority_map): Remove.
22779 2014-06-20 Jakub Jelinek <jakub@redhat.com>
22781 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
22782 0xff to uint64_t before shifting it up.
22784 2014-06-20 Julian Brown <julian@codesourcery.com>
22785 Chung-Lin Tang <cltang@codesourcery.com>
22787 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
22788 TARGET_THUMB1_ONLY. Add comments.
22790 2014-06-19 Tom de Vries <tom@codesourcery.com>
22792 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
22793 return type to void.
22794 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
22796 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
22798 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
22799 as "move", from depends_on.
22801 2014-06-19 Terry Guo <terry.guo@arm.com>
22803 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
22806 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
22808 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
22810 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
22812 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
22815 * config/sh/sh.c (prepare_move_operands): Don't process TLS
22816 addresses here if reload in progress or completed.
22818 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
22820 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
22821 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
22822 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
22823 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
22824 (mips_register_priority): New function that implements the target
22825 hook TARGET_REGISTER_PRIORITY.
22826 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
22827 (mips_lra_p): Likewise for TARGET_LRA_P.
22828 (TARGET_REGISTER_PRIORITY): Define macro.
22829 (TARGET_SPILL_CLASS): Likewise.
22830 (TARGET_LRA_P): Likewise.
22831 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
22833 (REG_CLASS_NAMES): Likewise.
22834 (REG_CLASS_CONTENTS): Likewise.
22835 (BASE_REG_CLASS): Use M16_SP_REGS.
22836 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
22837 New set attribute to enable alternatives depending on the register
22839 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
22840 (*lea64): Disable pattern for MIPS16.
22841 * config/mips/mips.opt (mlra): New option.
22843 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
22845 * lra-constraints.c (base_to_reg): New function.
22846 (process_address): Use new function.
22848 2014-06-18 Tom de Vries <tom@codesourcery.com>
22850 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
22851 * config/aarch64/aarch64.c
22852 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
22853 (aarch64_emit_call_insn): New function.
22854 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
22856 * config/aarch64/aarch64.md (define_expand "call_internal")
22857 (define_expand "call_value_internal", define_expand "sibcall_internal")
22858 (define_expand "sibcall_value_internal"): New.
22859 (define_expand "call", define_expand "call_value")
22860 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
22861 expand variant and aarch64_emit_call_insn.
22863 2014-06-18 Radovan Obradovic <robradovic@mips.com>
22864 Tom de Vries <tom@codesourcery.com>
22866 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
22867 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
22869 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
22870 clobbers to CALL_INSN_FUNCTION_USAGE.
22871 (define_expand "sibcall_internal")
22872 (define_expand "sibcall_value_internal"): New.
22873 (define_expand "call", define_expand "call_value"): Add argument to
22874 arm_emit_call_insn.
22875 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
22876 (define_expand "sibcall_value"): Use sibcall_value_internal and
22877 arm_emit_call_insn.
22879 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22881 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
22883 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22885 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
22888 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22890 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
22891 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
22892 annotations. Fix DWARF information.
22894 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22896 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
22897 __udivmoddi4, and fixups for negative operands.
22899 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22901 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
22903 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22905 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
22908 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22910 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
22913 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22915 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
22916 describing register usage on function entry and exit.
22918 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22920 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
22921 (__aeabi_ldivmod): Fix whitespace.
22923 2014-06-18 Andreas Schwab <schwab@suse.de>
22925 * doc/md.texi (Standard Names): Use @itemx for grouped items.
22926 Remove blank line after @item.
22928 2014-06-18 Richard Henderson <rth@redhat.com>
22931 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
22933 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
22935 * config/arm/arm.c (neon_vector_mem_operand): Allow register
22936 POST_MODIFY for neon loads and stores.
22937 (arm_print_operand): Output post-index register for neon loads and
22940 2014-06-18 Richard Biener <rguenther@suse.de>
22942 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
22944 2014-06-18 Richard Biener <rguenther@suse.de>
22946 * tree-pass.h (make_pass_dce_loop): Remove.
22947 * passes.def: Replace pass_dce_loop with pass_dce.
22948 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
22949 changed free niter estimates and reset the scev cache.
22950 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
22951 make_pass_dce_loop): Remove.
22952 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
22953 (fini_copy_prop): Return whether something changed. Always
22954 let substitute_and_fold perform DCE and free niter estimates
22955 and reset the scev cache if so.
22956 (execute_copy_prop): If sth changed schedule cleanup-cfg.
22957 (pass_data_copy_prop): Do not unconditionally schedule
22958 cleanup-cfg or update-ssa.
22960 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
22962 PR tree-optimization/61518
22963 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22964 reduction var is used in reduction stmt or phi-function only.
22966 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22968 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
22970 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
22972 PR tree-optimization/61517
22973 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
22974 whose rhs's first tree is the source expression instead of the
22976 (find_bswap_or_nop): Likewise.
22977 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
22978 gimple stmt whose rhs's first tree is the source. In the memory source
22979 case, move the stmt to be replaced close to one of the original load to
22980 avoid the problem of a store between the load and the stmt's original
22982 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
22985 2014-06-18 Andreas Schwab <schwab@suse.de>
22987 PR rtl-optimization/54555
22988 * postreload.c (move2add_use_add2_insn): Substitute
22989 STRICT_LOW_PART only if it is cheaper.
22991 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
22993 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
22994 Do not use unspec as call operand. Use memory_operand instead of
22995 memory_nox32_operand and add "m" operand constraint. Disable
22996 pattern for TARGET_X32.
22997 (*sibcall_pop_memory): Ditto.
22998 (*sibcall_value_memory): Ditto.
22999 (*sibcall_value_pop_memory): Ditto.
23000 (sibcall peepholes): Merge SImode and DImode patterns using
23001 W mode iterator. Use memory_operand instead of memory_nox32_operand.
23002 Disable pattern for TARGET_X32. Check if eliminated register is
23003 really dead after call insn. Generate call RTX without unspec operand.
23004 (sibcall_value peepholes): Ditto.
23005 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
23006 instead of memory_nox32_operand. Check if eliminated register is
23007 really dead after call insn. Generate call RTX without unspec operand.
23008 (sibcall_value_pop peepholes): Ditto.
23009 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
23011 2014-06-18 Terry Guo <terry.guo@arm.com>
23014 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
23017 2014-06-18 Olivier Hainque <hainque@adacore.com>
23019 * tree-core.h (tree_block): Add an "end_locus" field, allowing
23020 memorization of the end of block source location.
23021 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
23022 * gimplify.c (gimplify_bind_expr): Propagate the block start and
23023 end source location info we have on the block entry/exit code we
23026 2014-06-18 Richard Biener <rguenther@suse.de>
23028 * common.opt (fssa-phiopt): New option.
23029 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
23031 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
23032 * doc/invoke.texi (-fssa-phiopt): Document.
23034 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23036 * genattrtab.c (n_bypassed): New variable.
23037 (process_bypasses): Initialise n_bypassed.
23038 Count number of bypassed reservations.
23039 (make_automaton_attrs): Allocate space for bypassed reservations
23040 rather than number of bypasses.
23042 2014-06-18 Richard Biener <rguenther@suse.de>
23044 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
23045 we propagated anything.
23046 (substitute_and_fold_dom_walker::before_dom_children): Something
23047 changed if we propagated into PHI arguments.
23048 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
23051 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
23053 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
23055 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
23056 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
23057 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
23058 Introduces alternative way of loads group permutaions.
23059 (vect_transform_grouped_load): Try alternative way of permutations.
23061 2014-06-18 Jakub Jelinek <jakub@redhat.com>
23063 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
23064 changed in ORT_TARGET region, don't jump to do_outer.
23065 (struct gimplify_adjust_omp_clauses_data): New type.
23066 (gimplify_adjust_omp_clauses_1): Adjust for data being
23067 a struct gimplify_adjust_omp_clauses_data pointer instead
23068 of tree *. Pass pre_p as a new argument to
23069 lang_hooks.decls.omp_finish_clause hook.
23070 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
23071 splay_tree_foreach to pass both list_p and pre_p.
23072 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
23073 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
23074 gimplify_adjust_omp_clauses callers.
23075 * langhooks.c (lhd_omp_finish_clause): New function.
23076 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
23077 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
23078 * langhooks.h (struct lang_hooks_for_decls): Add a new
23079 gimple_seq * argument to omp_finish_clause hook.
23080 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
23081 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
23082 (scan_omp_parallel, lower_omp_for): When adding
23083 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
23084 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
23085 * tree-nested.c (convert_nonlocal_omp_clauses,
23086 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
23087 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
23089 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
23091 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
23092 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
23094 2014-06-17 Xinliang David Li <davidxl@google.com>
23096 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
23097 * passes.c (pass_init_dump_file): Do not set initialize
23098 flag to false unconditionally.
23100 2014-06-17 Richard Biener <rguenther@suse.de>
23102 * genopinit.c (main): Use vec<>::qsort method.
23103 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
23105 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
23107 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
23109 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
23110 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
23111 (mips_move_to_gpr_cost): Remove ST_REGS case.
23112 (mips_move_from_gpr_cost): Likewise.
23113 (mips_register_move_cost): Likewise.
23114 (mips_secondary_reload_class): Likewise.
23116 2014-06-17 Richard Biener <rguenther@suse.de>
23118 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
23119 (pass_all_optimizations): Move 3rd copy-prop pass from after
23120 fre to before ifcombine/phiopt.
23122 2014-06-17 Richard Biener <rguenther@suse.de>
23124 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
23125 and allow all blocks to be forwarders.
23127 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
23130 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
23131 variable 'size'; calculate 'size' right in the front; use
23132 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
23133 pcum->aapcs_stack_words.
23135 2014-06-17 Nick Clifton <nickc@redhat.com>
23137 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
23138 (umulhi3, mulsidi3, umulsidi3): Likewise.
23140 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
23142 PR middle-end/61508
23143 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
23144 check for section name.
23146 2014-06-17 Richard Biener <rguenther@suse.de>
23148 * tree-ssa-propagate.c: Include domwalk.h.
23149 (substitute_and_fold): Outline main worker into a domwalker ...
23150 (substitute_and_fold_dom_walker::before_dom_children): ... here.
23151 Schedule stmts we can fully propagate for removal. Remove
23153 (substitute_and_fold): Apply a dominator walk to perform
23154 substitution. Process stmts scheduled for removal here.
23156 2014-06-17 Richard Biener <rguenther@suse.de>
23158 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
23159 of PHI node moving.
23161 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
23163 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
23164 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
23165 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
23166 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
23167 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
23169 (get_fpscr) : Likewise.
23171 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
23173 PR rtl-optimization/61325
23174 * lra-constraints.c (valid_address_p): Add forward declaration.
23175 (simplify_operand_subreg): Check address validity before and after
23176 alter_reg of memory subreg.
23178 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
23180 * config/i386/i386.c (decide_alg): Correctly handle
23181 maximum size of stringop algorithm.
23183 2014-06-16 Yury Gribov <y.gribov@samsung.com>
23185 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
23187 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
23189 PR rtl-optimization/61522
23190 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
23192 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
23195 * symtab.c (symtab_node::reset_section): New method.
23196 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
23198 * cgraph.h (reset_section): Declare.
23199 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
23200 do not consider comdat locals.
23201 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
23203 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
23204 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
23205 reset sections of symbols dragged out of the comdats.
23206 (function_and_variable_visibility): Reset sections of
23209 2014-06-16 Richard Biener <rguenther@suse.de>
23211 PR tree-optimization/61482
23212 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
23213 [-INF(OVF), +INF(OVF)] range.
23215 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
23217 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
23218 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
23219 handling 32-bit multiplication.
23221 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
23223 PR middle-end/61430
23224 * lra-lives.c (process_bb_lives): Skip creating copy during
23225 insn scan when src/dest has constrained to same regno.
23227 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
23229 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
23230 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
23232 2014-06-16 Yury Gribov <y.gribov@samsung.com>
23234 * asan.c (check_func): New function.
23235 (maybe_create_ssa_name): Likewise.
23236 (build_check_stmt_with_calls): Likewise.
23237 (use_calls_p): Likewise.
23238 (report_error_func): Change interface.
23239 (build_check_stmt): Allow non-integer lengths; add support
23241 (asan_instrument): Likewise.
23242 (instrument_mem_region_access): Moved code to build_check_stmt.
23243 (instrument_derefs): Likewise.
23244 (instrument_strlen_call): Likewise.
23245 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
23246 * doc/invoke.texi: Describe new parameter.
23247 * params.def: Define new parameter.
23248 * params.h: Likewise.
23249 * sanitizer.def: Describe new builtins.
23251 2014-06-16 Richard Biener <rguenther@suse.de>
23253 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23254 Make all defs available at the end.
23255 (eliminate): If we remove a PHI node schedule cfg-cleanup.
23257 2014-06-18 Jakub Jelinek <jakub@redhat.com>
23260 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
23262 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
23265 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
23266 initialization. Replace remaining use of uid.
23268 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
23270 * c-family/c-common.c (handle_tls_model_attribute): Use
23271 set_decl_tls_model.
23272 * c-family/c-common.c (handle_tls_model_attribute): Use
23273 set_decl_tls_model.
23274 * cgraph.h (struct varpool_node): Add tls_model.
23275 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
23276 * tree.h (DECL_TLS_MODEL): Update.
23277 (DECL_THREAD_LOCAL_P): Check that variable is static.
23278 (decl_tls_model): Declare.
23279 (set_decl_tls_model): Declare.
23280 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
23281 set symbol prorperties.
23282 (get_emutls_init_templ_addr): Cleanup.
23283 (new_emutls_decl): Update.
23284 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
23285 (lto_input_varpool_node): Likewise.
23286 * lto-streamer-out.c (hash_tree): Likewise.
23287 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
23288 not stream DECL_TLS_MODEL.
23289 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
23290 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
23292 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23294 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
23296 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23298 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
23299 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
23301 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
23302 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
23303 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
23304 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
23305 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
23306 (df_get_artificial_defs, df_get_artificial_uses)
23307 (df_single_def, df_single_use): Update accordingly.
23308 (df_refs_chain_dump): Take the first element in a linked list as
23309 parameter, rather than a pointer to an array of pointers.
23310 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
23311 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
23312 (df_chain_create_bb_process_use): Likewise.
23313 (df_md_bb_local_compute_process_def): Likewise.
23314 * fwprop.c (process_defs, process_uses): Likewise.
23315 (register_active_defs, update_uses): Likewise.
23316 (forward_propagate_asm): Update for new df_ref linking.
23317 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
23318 (df_null_ref_rec, df_null_mw_rec): Likewise.
23319 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
23321 (df_scan_free_bb_info): Remove check for null artificial_defs.
23322 (df_install_ref_incremental): Adjust for new df_ref linking.
23323 Use a single-element insertion rather than a full sort.
23324 (df_ref_chain_delete_du_chain): Take the first element
23325 in a linked list as parameter, rather than a pointer to an array of
23327 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
23328 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
23329 (df_insn_info_delete): Remove check for null defs and call to
23330 df_scan_free_mws_vec.
23331 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
23332 null rather than df_null_*_rec.
23333 (df_insn_rescan_debug_internal): Likewise, and update null
23334 checks in the same way. Remove check for null defs.
23335 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
23336 Move a single element rather doing a full sort.
23337 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
23339 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
23340 Initialize df_ref and df_mw_hardreg lists to null rather than
23342 (df_ref_compare): Take df_refs as parameter, transferring the
23343 old interface to...
23344 (df_ref_ptr_compare): ...this new function.
23345 (df_sort_and_compress_refs): Update accordingly.
23346 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
23347 old interface to...
23348 (df_mw_ptr_compare): ...this new function.
23349 (df_sort_and_compress_mws): Update accordingly.
23350 (df_install_refs, df_install_mws): Return a linked list rather than
23351 an array of pointers.
23352 (df_refs_add_to_chains): Assert that old lists are empty rather
23354 (df_insn_refs_verify): Don't handle null defs speciailly.
23355 * web.c (union_match_dups): Update for new df_ref linking.
23357 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23359 * df.h (df_ref_create, df_ref_remove): Delete.
23360 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
23361 (df_ref_remove): Likewise.
23363 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23365 * df.h (df_single_def, df_single_use): New functions.
23366 * ira.c (find_moveable_pseudos): Use them.
23368 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23370 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
23371 * df-problems.c (df_note_bb_compute): Use it.
23372 * regstat.c (regstat_bb_compute_ri): Likewise.
23374 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23376 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
23377 * cse.c (cse_extended_basic_block): Use them.
23378 * dce.c (mark_artificial_use): Likewise.
23379 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
23380 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
23381 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
23382 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
23383 (df_simulate_initialize_backwards): Likewise.
23384 (df_simulate_finalize_backwards): Likewise.
23385 (df_simulate_initialize_forwards): Likewise.
23386 (df_md_simulate_artificial_defs_at_top): Likewise.
23387 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
23388 * regrename.c (init_rename_info): Likewise.
23389 * regstat.c (regstat_bb_compute_ri): Likewise.
23390 (regstat_bb_compute_calls_crossed): Likewise.
23392 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
23394 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
23395 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
23396 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
23397 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
23398 * combine.c (create_log_links): Likewise.
23399 * compare-elim.c (find_flags_uses_in_insn): Likewise.
23400 (try_eliminate_compare): Likewise.
23401 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
23402 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
23403 (remove_reg_equal_equiv_notes_for_defs): Likewise.
23404 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
23405 (word_dce_process_block, dce_process_block): Likewise.
23406 * ddg.c (def_has_ccmode_p): Likewise.
23407 * df-core.c (df_bb_regno_first_def_find): Likewise.
23408 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
23409 * df-problems.c (df_rd_simulate_one_insn): Likewise.
23410 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
23411 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
23412 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
23413 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
23414 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
23415 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
23416 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
23417 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
23418 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
23419 * fwprop.c (local_ref_killed_between_p): Likewise.
23420 (all_uses_available_at, free_load_extend): Likewise.
23421 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
23422 * hw-doloop.c (scan_loop): Likewise.
23423 * ifcvt.c (dead_or_predicable): Likewise.
23424 * init-regs.c (initialize_uninitialized_regs): Likewise.
23425 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
23426 (process_bb_node_lives): Likewise.
23427 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
23428 (find_moveable_pseudos): Likewise.
23429 * loop-invariant.c (check_dependencies, record_uses): Likewise.
23430 * recog.c (peep2_find_free_register): Likewise.
23431 * ree.c (get_defs): Likewise.
23432 * regstat.c (regstat_bb_compute_ri): Likewise.
23433 (regstat_bb_compute_calls_crossed): Likewise.
23434 * sched-deps.c (find_inc, find_mem): Likewise.
23435 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
23436 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
23437 * shrink-wrap.c (requires_stack_frame_p): Likewise.
23438 (prepare_shrink_wrap): Likewise.
23439 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
23440 * web.c (union_defs, pass_web::execute): Likewise.
23441 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
23442 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
23444 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
23446 * lra-assign.c (assign_by_spills): Add code to assign vector regs
23447 to inheritance pseudos.
23448 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
23450 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
23453 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
23454 (BU_MISC_2): Rename to ...
23455 (BU_LDBL128_2): ... this.
23456 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
23457 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
23458 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
23459 RS6000_BTM_LDBL128.
23460 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
23461 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
23462 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
23463 (unpacktf_1): Likewise.
23464 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
23465 (__builtin_longdouble_dw1): Likewise.
23466 * doc/sourcebuild.texi (longdouble128): Document.
23468 2014-06-13 Jeff Law <law@redhat.com>
23470 PR rtl-optimization/61094
23471 PR rtl-optimization/61446
23472 * ree.c (combine_reaching_defs): Get the mode for the copy from
23473 the extension insn rather than the defining insn.
23475 2014-06-13 Dehao Chen <dehao@google.com>
23477 * dwarf2out.c (add_linkage_name): Emit more linkage name.
23479 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
23481 * doc/install.texi (--enable-linker-plugin-configure-flags)
23482 (--enable-linker-plugin-flags): Document new flags.
23484 2014-06-13 Martin Jambor <mjambor@suse.cz>
23487 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
23488 cache_token if returning early.
23490 2014-06-13 Nick Clifton <nickc@redhat.com>
23492 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
23493 requested alignment is active.
23494 (LABEL_ALIGN): Likewise.
23495 (LOOP_ALIGN): Likewise.
23497 2014-06-13 Richard Biener <rguenther@suse.de>
23499 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23500 Rewrite to propagate the VN result into all uses where
23501 possible and to remove stmts becoming dead because of that.
23502 (eliminate): Generalize stmt removal handling, remove in
23503 reverse dominator order to support proper debug stmt
23504 generation. Update stmts before removing stmts.
23505 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
23507 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
23509 PR tree-optimization/61375
23510 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
23511 symbolic number cannot be represented in an uint64_t.
23512 (find_bswap_or_nop_1): Likewise.
23514 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
23516 * symtab.c (symtab_node::reset_section): New method.
23517 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
23519 * cgraph.h (reset_section): Declare.
23520 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
23521 do not consider comdat locals.
23522 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
23524 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
23525 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
23526 reset sections of symbols dragged out of the comdats.
23527 (function_and_variable_visibility): Reset sections of
23530 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
23532 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
23533 to use symtab and decl_binds_to_current_def_p
23534 * tree-vectorizer.c (increase_alignment): Increase alignment
23535 of alias target, too.
23537 2014-06-12 Jakub Jelinek <jakub@redhat.com>
23539 PR middle-end/61486
23540 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
23541 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
23542 if outer combined construct is distribute.
23543 (gimplify_omp_for): For OMP_DISTRIBUTE set
23544 gimplify_omp_ctxp->distribute.
23545 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
23546 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
23547 mapping into decl map.
23549 2014-06-12 Jason Merrill <jason@redhat.com>
23551 * common.opt (fabi-version): Change default to 0.
23553 2014-06-12 Jason Merrill <jason@redhat.com>
23555 * toplev.c (process_options): Reject -fabi-version=1.
23557 2014-06-12 Jeff Law <law@redhat.com>
23559 PR tree-optimization/61009
23560 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
23561 value when we stop processing a block due to problematic PHIs.
23563 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
23565 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
23566 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
23567 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
23568 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
23569 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
23570 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
23571 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
23572 are not in the spec.
23574 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
23577 * config/aarch64/aarch64-modes.def: Add V1DFmode.
23578 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
23581 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
23583 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
23585 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
23588 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
23589 loading from address spaces.
23591 2014-06-12 Martin Liska <mliska@suse.cz>
23594 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
23595 statement is reachable.
23597 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
23599 * symtab.c (section_hash): New hash.
23600 (symtab_unregister_node): Clear section before freeing.
23601 (hash_section_hash_entry): New haser.
23602 (eq_sections): New function.
23603 (symtab_node::set_section_for_node): New method.
23604 (set_section_1): Update.
23605 (symtab_node::set_section): Take string instead of tree as parameter.
23606 (symtab_resolve_alias): Update.
23607 * cgraph.h (section_hash_entry_d): New structure.
23608 (section_hash_entry): New typedef.
23609 (cgraph_node): Change comdat_group_ to x_comdat_group,
23610 change section_ to x_section and turn into section_hash_entry;
23611 update accestors; put set_section_for_node offline.
23612 * tree.c (decl_section_name): Turn into string.
23613 (set_decl_section_name): Change parameter to be string.
23614 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
23615 * sdbout.c (sdbout_one_type): Update.
23616 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
23617 * varasm.c (IN_NAMED_SECTION, get_named_section,
23618 resolve_unique_section, hot_function_section, get_named_text_section,
23619 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
23620 make_decl_rtl, default_unique_section): Update.
23621 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
23622 (c6x_elf_unique_section): Update.
23623 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
23624 * config/pa/pa.c (pa_function_section): Update.
23625 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
23626 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
23627 * config/arc/arc.c (arc_in_small_data_p): Update.
23628 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
23629 * config/mcore/mcore.c (mcore_unique_section): Update.
23630 * config/mips/mips.c (mips16_build_function_stub): Update.
23631 (mips16_build_call_stub): Update.
23632 (mips_function_rodata_section): Update.
23633 (mips_in_small_data_p): Update.
23634 * config/score/score.c (score_in_small_data_p): Update.
23635 * config/rx/rx.c (rx_in_small_data): Update.
23636 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
23637 (rs6000_xcoff_asm_named_section): Update.
23638 (rs6000_xcoff_unique_section): Update.
23639 * config/frv/frv.c (frv_string_begins_with): Update.
23640 (frv_in_small_data_p): Update.
23641 * config/v850/v850.c (v850_encode_data_area): Update.
23642 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
23643 (bfin_handle_l1_data_attribute): Update.
23644 (bfin_handle_l2_attribute): Update.
23645 * config/mep/mep.c (mep_unique_section): Update.
23646 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
23648 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
23649 (h8300_handle_tiny_data_attribute): Update.
23650 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
23651 (m32r_in_small_data_p): Update.
23652 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
23653 * config/i386/i386.c (ix86_in_large_data_p): Update.
23654 * config/i386/winnt.c (i386_pe_unique_section): Update.
23655 * config/darwin.c (darwin_function_section): Update.
23656 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
23657 * tree-emutls.c (get_emutls_init_templ_addr): Update.
23658 (new_emutls_decl): Update.
23659 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
23660 input_varpool_node): Update.
23661 (ead_string_cst): Turn to ...
23662 (read_string): ... this one.
23663 * dwarf2out.c (secname_for_decl): Update.
23664 * asan.c (asan_protect_global): Update.
23666 2014-06-11 DJ Delorie <dj@redhat.com>
23668 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
23670 * config/rx/rx.c (rx_option_override): Likewise.
23671 (rx_align_for_label): Likewise.
23673 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
23675 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
23677 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
23680 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23682 * common.md: New file.
23683 * doc/md.texi: Update description of generic, machine-independent
23685 * config/s390/constraints.md (e): Delete.
23686 * Makefile.in (md_file): Include common.md.
23687 * config/m32c/t-m32c (md_file): Likewise.
23688 * genpreds.c (general_mem): New array.
23689 (generic_constraint_letters): Remove constraints now defined by
23691 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
23692 Allow the first character to be '<' or '>' as well.
23693 * genoutput.c (general_mem): New array.
23694 (indep_constraints): Remove constraints now defined by common.md.
23695 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
23696 Remove special handling of 'm'.
23697 * ira-costs.c (record_reg_classes): Remove special handling of
23698 constraints now defined by common.md.
23699 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
23700 * ira-lives.c (single_reg_class): Likewise.
23701 (ira_implicitly_set_insn_hard_regs): Likewise.
23702 * lra-constraints.c (reg_class_from_constraints): Likewise.
23703 (process_alt_operands, process_address, curr_insn_transform): Likewise.
23704 * postreload.c (reload_cse_simplify_operands): Likewise.
23705 * reload.c (push_secondary_reload, scratch_reload_class)
23706 (find_reloads, alternative_allows_const_pool_ref): Likewise.
23707 * reload1.c (maybe_fix_stack_asms): Likewise.
23708 * targhooks.c (default_secondary_reload): Likewise.
23709 * stmt.c (parse_output_constraint): Likewise.
23710 * recog.c (preprocess_constraints): Likewise.
23711 (constrain_operands, peep2_find_free_register): Likewise.
23712 (asm_operand_ok): Likewise, but add a comment saying why 'o'
23713 must be handled specially.
23715 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23717 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
23718 * genpreds.c (have_const_dbl_constraints): Delete.
23719 (add_constraint): Don't set it.
23720 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
23721 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
23722 constraints using the lookup_constraint logic.
23723 * ira-lives.c (single_reg_class): Likewise.
23724 * ira.c (ira_setup_alts): Likewise.
23725 * lra-constraints.c (process_alt_operands): Likewise.
23726 * recog.c (asm_operand_ok, constrain_operands): Likewise.
23727 * reload.c (find_reloads): Likewise.
23729 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23731 * genpreds.c (const_int_start, const_int_end): New variables.
23732 (choose_enum_order): Output CONST_INT constraints before memory
23734 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
23736 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
23737 * ira.c (ira_setup_alts): Likewise.
23738 * lra-constraints.c (process_alt_operands): Likewise.
23739 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
23740 * reload.c (find_reloads): Likewise.
23742 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23744 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
23745 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
23746 * recog.c (preprocess_constraints): Update accordingly.
23748 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23750 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
23751 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
23752 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
23753 * genpreds.c (print_type_tree): New function.
23754 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
23755 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
23756 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
23757 Write out enum constraint_type and get_constraint_type.
23758 * lra-constraints.c (satisfies_memory_constraint_p): Take a
23759 constraint_num rather than a constraint string.
23760 (satisfies_address_constraint_p): Likewise.
23761 (reg_class_from_constraints): Avoid old constraint macros.
23762 (process_alt_operands, process_address_1): Likewise.
23763 (curr_insn_transform): Likewise.
23764 * ira-costs.c (record_reg_classes): Likewise.
23765 (record_operand_costs): Likewise.
23766 * ira-lives.c (single_reg_class): Likewise.
23767 (ira_implicitly_set_insn_hard_regs): Likewise.
23768 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
23769 * postreload.c (reload_cse_simplify_operands): Likewise.
23770 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
23771 (constrain_operands, peep2_find_free_register): Likewise.
23772 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
23773 (find_reloads, alternative_allows_const_pool_ref): Likewise.
23774 * reload1.c (maybe_fix_stack_asms): Likewise.
23775 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
23776 * targhooks.c (default_secondary_reload): Likewise.
23777 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
23778 to EXTRA_CONSTRAINT_STR.
23779 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
23781 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23783 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
23784 (write_constraint_satisfied_p_array): ...this new function.
23785 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
23787 (write_insn_preds_c): Update accordingly.
23789 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23791 * genpreds.c (write_lookup_constraint): Rename to...
23792 (write_lookup_constraint_1): ...this.
23793 (write_lookup_constraint_array): New function.
23794 (write_tm_preds_h): Define lookup_constraint as an inline function
23795 that uses write_lookup_constraint_array where possible.
23796 (write_insn_preds_c): Update for the changes above.
23798 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
23800 * doc/md.texi (regclass_for_constraint): Rename to...
23801 (reg_class_for_constraint): ...this.
23802 * genpreds.c (num_constraints, enum_order, register_start)
23803 (register_end, satisfied_start, memory_start, memory_end)
23804 (address_start, address_end): New variables.
23805 (add_constraint): Count the number of constraints.
23806 (choose_enum_order): New function.
23807 (write_enum_constraint_num): Iterate over enum_order.
23808 (write_regclass_for_constraint): Rename to...
23809 (write_reg_class_for_constraint_1): ...this and update output
23811 (write_constraint_satisfied_p): Rename to...
23812 (write_constraint_satisfied_p_1): ...this and update output
23813 accordingly. Do nothing if all extra constraints are register
23815 (write_insn_extra_memory_constraint): Delete.
23816 (write_insn_extra_address_constraint): Delete.
23817 (write_range_function): New function.
23818 (write_tm_preds_h): Define constraint_satisfied_p and
23819 reg_class_for_constraint as inline functions that do a range check
23820 before calling the out-of-line function. Use write_range_function
23821 to implement insn_extra_{register,memory,address}_constraint,
23822 the first of which is new.
23823 (write_insn_preds_c): Update after above changes to write_* functions.
23824 (main): Call choose_enum_order.
23826 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
23828 PR tree-optimization/61306
23829 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
23830 expression instead of its size.
23831 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
23832 false to prevent optimization when the result is unpredictable due to
23833 arithmetic right shift of signed type with highest byte is set.
23834 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
23835 (init_symbolic_number): Likewise.
23836 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
23837 when the result is unpredictable due to sign extension.
23839 2014-06-11 Terry Guo <terry.guo@arm.com>
23841 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
23842 (*thumb1_addsi3): Ditto.
23843 (*thumb_subdi3): Ditto.
23844 (thumb1_subsi3_insn): Ditto.
23845 (*thumb_mulsi3): Ditto.
23846 (*thumb_mulsi3_v6): Ditto.
23847 (*thumb1_andsi3_insn): Ditto.
23848 (thumb1_bicsi3): Ditto.
23849 (*thumb1_iorsi3_insn): Ditto.
23850 (*thumb1_xorsi3_insn): Ditto.
23851 (*thumb1_ashlsi3): Ditto.
23852 (*thumb1_ashrsi3): Ditto.
23853 (*thumb1_lshrsi3): Ditto.
23854 (*thumb1_rotrsi3): Ditto.
23855 (*thumb1_negdi2): Ditto.
23856 (*thumb1_negsi2): Ditto.
23857 (*thumb1_abssi2): Ditto.
23858 (*thumb1_neg_abssi2): Ditto.
23859 (*thumb1_one_cmplsi2): Ditto.
23860 (*thumb1_zero_extendhisi2): Ditto.
23861 (*thumb1_zero_extendqisi2): Ditto.
23862 (*thumb1_zero_extendqisi2_v6): Ditto.
23863 (thumb1_extendhisi2): Ditto.
23864 (thumb1_extendqisi2): Ditto.
23865 (*thumb1_movdi_insn): Ditto.
23866 (*thumb1_movsi_insn): Ditto.
23867 (*thumb1_movhi_insn): Ditto.
23868 (thumb_movhi_clobber): Ditto.
23869 (*thumb1_movqi_insn): Ditto.
23870 (*thumb1_movhf): Ditto.
23871 (*thumb1_movsf_insn): Ditto.
23872 (*thumb_movdf_insn): Ditto.
23873 (movmem12b): Ditto.
23875 (cbranchqi4): Ditto.
23876 (cbranchsi4_insn): Ditto.
23877 (cbranchsi4_scratch): Ditto.
23878 (*negated_cbranchsi4): Ditto.
23879 (*tbit_cbranch): Ditto.
23880 (*tlobits_cbranch): Ditto.
23881 (*tstsi3_cbranch): Ditto.
23882 (*cbranchne_decr1): Ditto.
23883 (*addsi3_cbranch): Ditto.
23884 (*addsi3_cbranch_scratch): Ditto.
23885 (*thumb_cmpdi_zero): Ditto.
23886 (cstoresi_eq0_thumb1): Ditto.
23887 (cstoresi_ne0_thumb1): Ditto.
23888 (*cstoresi_eq0_thumb1_insn): Ditto.
23889 (*cstoresi_ne0_thumb1_insn): Ditto.
23890 (cstoresi_nltu_thumb1): Ditto.
23891 (cstoresi_ltu_thumb1): Ditto.
23892 (thumb1_addsi3_addgeu): Ditto.
23893 (*thumb_jump): Ditto.
23894 (*call_reg_thumb1_v5): Ditto.
23895 (*call_reg_thumb1): Ditto.
23896 (*call_value_reg_thumb1_v5): Ditto.
23897 (*call_value_reg_thumb1): Ditto.
23898 (*call_insn): Ditto.
23899 (*call_value_insn): Ditto.
23900 (thumb1_casesi_internal_pic): Ditto.
23901 (thumb1_casesi_dispatch): Ditto.
23902 (*thumb1_indirect_jump): Ditto.
23903 (prologue_thumb1_interwork): Ditto.
23904 (*epilogue_insns): Ditto.
23905 (consttable_1): Ditto.
23906 (consttable_2): Ditto.
23907 (tablejump): Ditto.
23908 (*thumb1_tablejump): Ditto.
23909 (thumb_eh_return): Ditto.
23910 (define_peephole2): Two of them are thumb1 only and got moved into
23911 new file thumb1.md.
23912 (define_split): Six of them are thumb1 only and got moved into new
23914 * config/arm/thumb1.md: New file comprised of above thumb1 only
23917 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23919 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
23920 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
23922 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
23923 (aarch64_crc_builtin_datum): New struct.
23924 (aarch64_crc_builtin_data): New.
23925 (aarch64_init_crc32_builtins): New function.
23926 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
23927 (aarch64_crc32_expand_builtin): New.
23928 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
23929 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
23930 __ARM_FEATURE_CRC32 when appropriate.
23931 (TARGET_CRC32): Define.
23932 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
23933 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
23934 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
23935 (aarch64_<crc_variant>): New pattern.
23936 * config/aarch64/arm_acle.h: New file.
23937 * config/aarch64/iterators.md (CRC): New int iterator.
23938 (crc_variant, crc_mode): New int attributes.
23939 * doc/aarch64-acle-intrinsics.texi: New file.
23940 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
23941 Include aarch64-acle-intrinsics.texi.
23943 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
23945 * tree-vect-data-refs.c (vect_grouped_store_supported): New
23946 check for stores group of length 3.
23947 (vect_permute_store_chain): New permutations for stores group of
23949 * tree-vect-stmts.c (vect_model_store_cost): Change cost
23950 of vec_perm_shuffle for the new permutations.
23952 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
23954 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
23955 table rewriting temporarily on targets not supporting ONE_ONLY.
23957 2014-06-11 Richard Biener <rguenther@suse.de>
23959 PR middle-end/61437
23961 2014-06-04 Richard Biener <rguenther@suse.de>
23963 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
23964 TREE_PUBLIC and DECL_EXTERNAL decls.
23966 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
23968 * varasm.c (set_implicit_section): New function.
23969 (resolve_unique_section): Use it to set implicit section
23971 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
23972 (default_function_section): Likewise.
23973 (decl_binds_to_current_def_p): Constify argument.
23974 * varasm.h (decl_binds_to_current_def_p): Update prototype.
23975 * asan.c (asan_protect_global): Use
23976 symtab_get_node (decl)->implicit_section.
23977 * symtab.c (dump_symtab_base): Dump implicit sections.
23978 (verify_symtab_base): Verify sanity of sectoins and comdats.
23979 (symtab_resolve_alias): Alias share the section of its target.
23980 (set_section_1): New function.
23981 (symtab_node::set_section): Move here, recurse to aliases.
23982 (verify_symtab): Check for duplicated symtab lists.
23983 * tree-core.h (implicit_section_name_p): Remove.
23984 * tree-vect-data-refs.c: Include varasm.h.
23985 (vect_can_force_dr_alignment_p): Fix conditional on when
23986 decl bints to current definition; use
23987 symtab_get_node (decl)->implicit_section.
23988 * cgraph.c (cgraph_make_node_local_1): Fix section set.
23989 * cgraph.h (struct symtab_node): Add implicit_section.
23990 (set_section): Rename to ...
23991 (set_section_for_node): ... this one.
23992 (set_section): Declare.
23993 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
23994 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
23995 input_overwrite_node, input_varpool_node): Stream implicit_section.
23996 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
23997 removal; it will fail in LTO.
23999 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24001 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
24002 Change second alternative type to f_mcr.
24003 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
24004 and 12th alternatives' types to f_mcr and f_mrc.
24005 (*movdi_aarch64): Same for 12th and 13th alternatives.
24006 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
24007 (aarch64_movtilow_tilow): Change type to fmov.
24009 2014-06-10 Jiong Wang <jiong.wang@arm.com>
24011 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
24012 (aarch64_save_or_restore_callee_save_registers): Fix layout.
24014 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24016 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
24018 (aarch64_sqrdmulh_lane<mode>): Likewise.
24019 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
24020 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
24021 (aarch64_sqdmulh_laneq<mode>): New expander.
24022 (aarch64_sqrdmulh_laneq<mode>): Likewise.
24023 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
24024 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
24025 (aarch64_sqdmulh_lane<mode>): New expander.
24026 (aarch64_sqrdmulh_lane<mode>): Likewise.
24027 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
24028 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
24029 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
24030 (aarch64_sqdmlal_laneq<mode>): Likewise.
24031 (aarch64_sqdmlsl_lane<mode>): Likewise.
24032 (aarch64_sqdmlsl_laneq<mode>): Likewise.
24033 (aarch64_sqdmlal2_lane<mode>): Likewise.
24034 (aarch64_sqdmlal2_laneq<mode>): Likewise.
24035 (aarch64_sqdmlsl2_lane<mode>): Likewise.
24036 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
24037 (aarch64_sqdmull_lane<mode>): Likewise.
24038 (aarch64_sqdmull_laneq<mode>): Likewise.
24039 (aarch64_sqdmull2_lane<mode>): Likewise.
24040 (aarch64_sqdmull2_laneq<mode>): Likewise.
24042 2014-06-10 Richard Biener <rguenther@suse.de>
24044 PR tree-optimization/61438
24045 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
24046 (eliminate_dom_walker::before_dom_children): Only try to inhibit
24047 insertion of IVs if running PRE.
24048 (eliminate): Adjust.
24049 (pass_pre::execute): Likewise.
24050 (pass_fre::execute): Likewise.
24052 2014-06-10 Richard Biener <rguenther@suse.de>
24054 PR middle-end/61456
24055 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
24056 Do not use the main variant for the type comparison.
24057 (ncr_compar): Likewise.
24058 (nonoverlapping_component_refs_p): Likewise.
24060 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
24062 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
24063 REG_CFA_RESTORE mode.
24065 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
24067 * config/i386/i386.c (expand_vec_perm_pblendv): New.
24068 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
24069 expand_vec_perm_pblendv.
24071 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24073 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
24075 Simplify description of __crc32d and __crc32cd intrinsics.
24076 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
24079 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
24082 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
24083 * config.in: Regenerate.
24084 * configure: Likewise.
24086 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
24088 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
24090 (intersect_static_var_sets): Remove.
24091 (propagate): Do not prune local statics.
24093 2014-06-10 Jakub Jelinek <jakub@redhat.com>
24096 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
24097 Set lastprivate_firstprivate even if omp_private_outer_ref
24098 langhook returns true.
24099 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
24100 langhook, call unshare_expr on new_var and call
24101 build_outer_var_ref to get the last argument.
24103 2014-06-10 Marek Polacek <polacek@redhat.com>
24106 * doc/extend.texi: Add cindex for transparent_union.
24108 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
24110 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
24111 init_symbolic_number ().
24113 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
24115 PR middle-end/61141
24116 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
24117 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
24118 (verify_rtl_sharing): Likewise.
24120 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
24123 * tree.c (build_qualified_type): Use a canonical type for
24126 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24128 * config/arm/arm-modes.def: Remove XFmode.
24130 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
24133 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
24134 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
24135 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
24136 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
24137 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
24138 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
24139 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
24140 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
24141 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
24143 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
24145 * tree-core.h (tree_decl_with_vis): Remove section_name.
24147 2014-06-09 Kito Cheng <kito@0xlab.org>
24149 * ira.c (ira): Don't call init_caller_save if LRA enabled
24150 since LRA use its own infrastructure to handle that.
24152 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
24154 * symtab.c (dump_symtab_base): Update dumping.
24155 (symtab_make_decl_local): Clear only DECL_COMDAT.
24156 * tree-vect-data-refs.c (Check that variable is static before
24157 tampering with sections.
24158 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
24159 (cgraph_create_virtual_clone): Likewise.
24160 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
24161 (decl_section_name, set_decl_section_name): New accessors.
24162 (find_decls_types_r): Do not walk section name
24163 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
24164 (decl_comdat_group, decl_comdat_group_id): Constify.
24165 (decl_section_name, set_decl_section_name): Update.
24166 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
24167 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
24168 (cgraph_make_node_local_1): Clear section and comdat group.
24169 * cgraph.h (set_comdat_group): Sanity check.
24170 (get_section, set_section): New.
24171 * ipa-comdats.c (ipa_comdats): Use get_section.
24172 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
24173 * lto-streamer-out.c: Do not follow section names.
24174 * c-family/c-common.c (handle_section_attribute): Update.
24175 * lto-cgraph.c (lto_output_node): Output section.
24176 (lto_output_varpool_node): Likewise.
24177 (read_comdat_group): Rename to ...
24178 (read_identifier): ... this one.
24179 (read_string_cst): New function.
24180 (input_node, input_varpool_node): Input section names.
24181 * tree-emutls.c (get_emutls_init_templ_addr): Update.
24182 (new_emutls_decl): Update.
24183 (secname_for_decl): Check section names only of static vars.
24184 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
24185 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
24186 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24187 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24188 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
24189 * config/mcore/mcore.c (mcore_unique_section): Likewise.
24190 * config/mips/mips.c (mips16_build_function_stub): Likewise.
24191 * config/v850/v850.c (v850_insert_attributes): Likewise.
24192 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
24194 (h8300_handle_tiny_data_attribute): Likewise.
24195 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
24196 (bfin_handle_l2_attribute): Likewise.
24198 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
24200 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
24201 remove static initializer.
24203 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
24205 * varasm.c (use_blocks_for_decl_p): Check symbol table
24206 instead of alias attribute.
24207 (place_block_symbol): Recurse on aliases.
24209 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
24211 * ipa-visibility.c: Include varasm.h
24212 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
24214 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
24216 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
24217 outputting aliases.
24219 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
24221 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
24222 from test_insn into GGC space escape via SET_SRC.
24224 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
24226 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
24227 call statement, if any.
24228 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
24229 statements, if any. Tidy up.
24231 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
24234 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
24235 iterators, VSX_D that handles 64-bit types, and VSX_LE that
24236 handles swapping the two 64-bit double words on little endian
24237 systems. Include V1TImode and optionally TImode in VSX_LE so that
24238 these types are properly swapped. Change all of the insns and
24239 splits that do the 64-bit swaps to use VSX_LE.
24240 (vsx_le_perm_load_<mode>): Likewise.
24241 (vsx_le_perm_store_<mode>): Likewise.
24242 (splitters for little endian memory operations): Likewise.
24243 (vsx_xxpermdi2_le_<mode>): Likewise.
24244 (vsx_lxvd2x2_le_<mode>): Likewise.
24245 (vsx_stxvd2x2_le_<mode>): Likewise.
24247 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
24250 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
24251 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
24252 and corresponding splitters. Zero extend general register
24253 or memory input operand to XMM temporary. Enable for
24254 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
24255 (floatunssi<mode>2): Update expander predicate.
24257 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
24259 PR rtl-optimization/61325
24260 * lra-constraints.c (process_address_1): Check scale equal to one
24261 to prevent transformation: base + scale * index => base + new_reg.
24263 2014-06-06 Richard Biener <rguenther@suse.de>
24265 PR tree-optimization/59299
24266 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
24268 (nearest_common_dominator_of_uses): Likewise.
24269 (statement_sink_location): Adjust. Support sinking loads.
24271 2014-06-06 Martin Jambor <mjambor@suse.cz>
24273 * ipa-prop.c (get_place_in_agg_contents_list): New function.
24274 (build_agg_jump_func_from_list): Likewise.
24275 (determine_known_aggregate_parts): Renamed to
24276 determine_locally_known_aggregate_parts. Moved some functionality
24277 to the two functions above, removed bound checks.
24279 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
24281 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
24282 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
24283 (aarch64_progress_pointer): Likewise.
24284 (aarch64_copy_one_part_and_move_pointers): Likewise.
24285 (aarch64_expand_movmen): Likewise.
24286 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
24287 * config/aarch64/aarch64.md (movmem<mode>): New.
24289 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
24291 * targhooks.c (default_add_stmt_cost): Call target specific
24292 hook instead of default one.
24294 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
24296 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
24297 endianness instead of host endianness.
24298 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
24301 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
24304 * function.c (instantiate_decls): Process the saved static chain.
24305 (expand_function_start): If not optimizing, save the static chain
24307 * tree-nested.c (convert_all_function_calls): Always create the static
24308 chain for nested functions if not optimizing.
24310 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
24312 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
24314 2014-06-06 Richard Biener <rguenther@suse.de>
24316 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
24317 (construct_init_block): Likewise.
24318 (construct_exit_block): Likewise.
24319 (pass_expand::execute): Likewise.
24320 * graphite.c (graphite_transforms): Replace check for current_loops
24321 with a check for > 1 loops.
24322 (pass_graphite_transforms::execute): Adjust.
24323 * ipa-split.c (split_function): Remove check for current_loops.
24324 * omp-low.c (expand_parallel_call): Likewise.
24325 (expand_omp_for_init_counts): Likewise.
24326 (extract_omp_for_update_vars): Likewise.
24327 (expand_omp_for_generic): Likewise.
24328 (expand_omp_sections): Likewise.
24329 (expand_omp_target): Likewise.
24330 * tracer.c (tail_duplicate): Likewise.
24331 (pass_tracer::execute): Likewise.
24332 * trans-mem.c (expand_transaction): Likewise.
24333 * tree-complex.c (expand_complex_div_wide): Likewise.
24334 * tree-eh.c (lower_resx): Likewise.
24335 (cleanup_empty_eh_merge_phis): Likewise.
24336 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
24337 current_loops with a check for > 1 loops.
24338 (pass_predcom::execute): Adjust.
24339 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
24340 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
24341 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
24342 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
24343 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
24344 * tree-switch-conversion.c (process_switch): Likewise.
24345 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
24346 * tree-vrp.c (vrp_visit_phi_node): Likewise.
24347 (execute_vrp): Likewise.
24348 * ubsan.c (ubsan_expand_null_ifn): Likewise.
24350 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
24352 * rtl.h (insn_location): Declare.
24353 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
24354 with UNKNOWN_LOCATION.
24355 * emit-rtl.c (insn_location): New function.
24356 * final.c (notice_source_line): Check that the instruction has a
24357 location before retrieving it and use insn_location.
24358 * modulo-sched.c (loop_single_full_bb_p): Likewise.
24359 * print-rtl.c (print_rtx): Likewise.
24361 2014-06-06 Richard Biener <rguenther@suse.de>
24363 * passes.def: Move 2nd VRP pass before phi-only-cprop.
24365 2014-06-06 Christian Bruel <christian.bruel@st.com>
24367 PR tree-optimization/43934
24368 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
24371 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
24373 * ira-lives.c (single_reg_class): Add missing break. Explicitly
24374 return NO_REGS for extra address and memory constraints. Handle
24375 operands that match (or are equivalent to something that matches)
24376 extra constant constraints. Ignore other non-register operands.
24378 2014-06-06 Alan Modra <amodra@gmail.com>
24381 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
24382 * doc/tm.texi: Regenerate.
24383 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
24384 Use throughout in place of REG_PARM_STACK_SPACE.
24385 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
24386 "incoming" param. Pass to rs6000_function_parms_need_stack.
24387 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
24388 prototype_p when incoming. Use function decl when incoming
24389 to handle K&R style functions.
24390 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
24391 (INCOMING_REG_PARM_STACK_SPACE): Define.
24393 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
24396 * cfgexpand.c (expand_debug_expr): Use address space of nested
24397 TREE_TYPE for ADDR_EXPR and MEM_REF.
24399 2014-06-05 Jeff Law <law@redhat.com>
24401 PR tree-optimization/61289
24402 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
24403 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
24404 looking for those which match LHS. All callers changed.
24405 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
24406 parameters and code which manipulated them. All callers changed.
24407 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
24408 and DST_MAP parameters. Simplify invalidation code by just calling
24409 invalidate_equivalences. All callers changed.
24410 (thread_across_edge): Simplify now that we don't need to maintain
24411 the map of equivalences to invalidate.
24413 2014-06-05 Kai Tietz <ktietz@redhat.com>
24414 Richard Henderson <rth@redhat.com>
24417 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
24418 checking for !TARGET_X32.
24419 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
24420 (sibcall_intern): New define_insn, plus required peepholes.
24421 (sibcall_pop_intern): Likewise.
24422 (sibcall_value_intern): Likewise.
24423 (sibcall_value_pop_intern): Likewise.
24425 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
24427 * tree-inline.c (tree_function_versioning): Check DF info existence
24428 before accessing it.
24430 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
24432 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
24434 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
24435 aarch64_frame hard_fp_offset and frame_size.
24436 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
24437 frame_size; remove original_frame_size.
24438 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
24439 (aarch64_initial_elimination_offset): Remove frame_size and
24440 offset. Use aarch64_frame frame_size.
24442 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
24443 Jiong Wang <jiong.wang@arm.com>
24444 Renlin <renlin.li@arm.com>
24446 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
24447 initialization of R30 offset. Update offset. Iterate core
24448 regisers upto X30. Remove X29, X30 specific code.
24450 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
24451 Jiong Wang <jiong.wang@arm.com>
24453 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
24454 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
24455 (aarch64_register_saved_on_entry): Adjust test.
24457 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
24459 * config/aarch64/aarch64.h (machine_function): Move
24460 saved_varargs_size from here...
24461 (aarch64_frame): ... to here.
24463 * config/aarch64/aarch64.c (aarch64_expand_prologue)
24464 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
24465 (aarch64_initial_elimination_offset)
24466 (aarch64_setup_incoming_varargs): Adjust location of
24467 saved_varargs_size.
24469 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
24471 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
24474 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
24475 Prachi Godbole <Prachi.Godbole@imgtec.com>
24477 * config/mips/mips-cpus.def: Add definition for p5600. Updated
24478 mips32r5 entry to use PROCESSOR_P5600.
24479 * config/mips/mips-tables.opt: Regenerate.
24480 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
24481 * config/mips/mips.c (mips_fmadd_bypass): New function.
24482 (mips_rtx_cost_data): Add costs for p5600.
24483 (mips_issue_rate): Add support for p5600.
24484 (mips_multipass_dfa_lookahead): Likewise.
24485 * config/mips/mips.h (TUNE_P5600): New define.
24486 (TUNE_MACC_CHAINS): Add TUNE_P5600.
24487 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
24488 * config/mips/mips.md: Include p5600.md.
24489 (processor): Add p5600.
24490 * config/mips/p5600.md: New file.
24492 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
24494 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
24495 * config/i386/predicates.md (palignr_operand): New.
24496 Indicates if permutation is suitable for palignr instruction.
24498 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
24500 PR tree-optimization/61319
24501 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
24502 stmt belongs to loop.
24504 2014-06-05 Richard Biener <rguenther@suse.de>
24506 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
24507 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
24508 (lookup_tmp_var): Adjust.
24509 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
24511 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24513 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
24515 2014-06-05 Marek Polacek <polacek@redhat.com>
24518 * doc/invoke.texi: Document -Wlogical-not-parentheses.
24520 2014-06-04 Tom de Vries <tom@codesourcery.com>
24522 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
24525 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
24527 PR tree-optimization/61385
24528 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
24530 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
24532 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
24533 changed to use fatal_error.
24534 (main): Ensure lto_wrapper_cleanup is run atexit.
24536 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
24538 * lra-constraints.c (valid_address_p): Move earlier in file.
24539 (address_eliminator): New structure.
24540 (satisfies_memory_constraint_p): New function.
24541 (satisfies_address_constraint_p): Likewise.
24542 (process_alt_operands, process_address, curr_insn_transform): Use them.
24544 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
24546 * lra-int.h (lra_static_insn_data): Make operand_alternative a
24548 (target_lra_int, default_target_lra_int, this_target_lra_int)
24549 (op_alt_data): Delete.
24550 * lra.h (lra_init): Delete.
24551 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
24552 (init_insn_code_data_once): Remove op_alt_data handling.
24553 (finish_insn_code_data_once): Likewise.
24554 (init_op_alt_data): Delete.
24555 (get_static_insn_data): Initialize operand_alternative to null.
24556 (free_insn_recog_data): Cast operand_alternative before freeing it.
24557 (setup_operand_alternative): Take the operand_alternative as
24558 parameter and assume it isn't already cached in the static
24560 (lra_set_insn_recog_data): Update accordingly.
24561 (lra_init): Delete.
24562 * ira.c (ira_init): Don't call lra_init.
24563 * target-globals.h (this_target_lra_int): Declare.
24564 (target_globals): Remove lra_int.
24565 (restore_target_globals): Update accordingly.
24566 * target-globals.c: Don't include lra-int.h.
24567 (default_target_globals, save_target_globals): Remove lra_int.
24569 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
24571 * recog.h (operand_alternative): Convert reg_class, reject,
24572 matched and matches into bitfields.
24573 (preprocess_constraints): New overload.
24574 (preprocess_insn_constraints): New function.
24575 (preprocess_constraints): Take the insn as parameter.
24576 (recog_op_alt): Change into a pointer.
24577 (target_recog): Add x_op_alt.
24578 * recog.c (asm_op_alt): New variable.
24579 (recog_op_alt): Change into a pointer.
24580 (preprocess_constraints): New overload, replacing the old function
24581 definition with one that doesn't use global state.
24582 (preprocess_insn_constraints): New function.
24583 (preprocess_constraints): Use them. Take the insn as parameter.
24584 Use asm_op_alt for asms.
24585 (recog_init): Free existing x_op_alt entries.
24586 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
24588 (make_early_clobber_and_input_conflicts): Likewise.
24589 (process_bb_node_lives): Pass the insn to process_constraints.
24590 * reg-stack.c (check_asm_stack_operands): Likewise.
24591 (subst_asm_stack_regs): Likewise.
24592 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
24593 * regrename.c (build_def_use): Likewise.
24594 * sched-deps.c (sched_analyze_insn): Likewise.
24595 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
24596 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
24597 (note_invalid_constants): Likewise.
24598 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
24599 (ix86_legitimate_combined_insn): Make operand_alternative pointer
24602 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
24604 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
24605 * ira-lives.c (check_and_make_def_conflict): Check for disabled
24607 (make_early_clobber_and_input_conflicts): Likewise.
24608 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
24610 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
24612 * recog.h (alternative_class): New function.
24613 (which_op_alt): Return a const recog_op_alt.
24614 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
24615 (subst_asm_stack_regs): Likewise.
24616 * config/arm/arm.c (note_invalid_constants): Likewise.
24617 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
24618 the operand_alternative; use alternative class instead.
24619 * sel-sched.c (get_reg_class): Likewise.
24620 * regrename.c (build_def_use): Likewise.
24621 (hide_operands, restore_operands, record_out_operands): Update type
24624 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
24626 * recog.h (recog_op_alt): Convert to a flat array.
24627 (which_op_alt): New function.
24628 * recog.c (recog_op_alt): Convert to a flat array.
24629 (preprocess_constraints): Update accordingly, grouping all
24630 operands of the same alternative together, rather than the
24632 * ira-lives.c (check_and_make_def_conflict): Likewise.
24633 (make_early_clobber_and_input_conflicts): Likewise.
24634 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
24635 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
24636 (subst_asm_stack_regs): Likewise.
24637 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
24638 * regrename.c (hide_operands, record_out_operands): Likewise.
24639 (build_def_use): Likewise.
24640 * sel-sched.c (get_reg_class): Likewise.
24641 * config/arm/arm.c (note_invalid_constants): Likewise.
24643 2014-06-04 Jason Merrill <jason@redhat.com>
24647 * gimplify.c (gimplify_arg): Non-static.
24648 * gimplify.h: Declare it.
24650 2014-06-04 Richard Biener <rguenther@suse.de>
24652 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
24653 TREE_PUBLIC and DECL_EXTERNAL decls.
24655 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
24657 * regcprop.c (copyprop_hardreg_forward_1): Account for
24658 HARD_REGNO_CALL_PART_CLOBBERED.
24660 2014-06-04 Richard Biener <rguenther@suse.de>
24662 * configure.ac: Check whether the underlying type of int64_t
24663 is long or long long.
24664 * configure: Regenerate.
24665 * config.in: Likewise.
24666 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
24667 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
24669 2014-06-04 Richard Biener <rguenther@suse.de>
24671 PR tree-optimization/60098
24672 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
24674 (dse_optimize_stmt): Simplify, now that we found a kill
24677 2014-06-04 Richard Biener <rguenther@suse.de>
24679 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
24680 of accesses with non-invariant address.
24682 2014-06-04 Martin Liska <mliska@suse.cz>
24684 * cgraph.h (cgraph_make_wrapper): New function introduced.
24685 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
24686 * ipa-inline.h (inline_analyze_function): The function is global.
24687 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
24689 2014-06-04 Martin Liska <mliska@suse.cz>
24691 * tree.h (private_lookup_attribute_starting): New function.
24692 (lookup_attribute_starting): Likewise.
24693 * tree.c (private_lookup_attribute_starting): Likewise.
24695 2014-06-04 Martin Liska <mliska@suse.cz>
24697 * cgraph.h (expand_thunk): New argument added.
24698 (address_taken_from_non_vtable_p): New global function.
24699 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
24700 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
24701 * cgraphunit.c (analyze_function): Likewise.
24702 (assemble_thunks_and_aliases): Argument added to call.
24703 (expand_thunk): New argument forces to produce GIMPLE thunk.
24705 2014-06-04 Martin Liska <mliska@suse.cz>
24707 * coverage.h (coverage_compute_cfg_checksum): Argument added.
24708 * coverage.c (coverage_compute_cfg_checksum): Likewise.
24709 * profile.c (branch_prob): Likewise.
24711 2014-06-04 Martin Jambor <mjambor@suse.cz>
24714 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
24715 handler for switch on an ipa_ref_use enum.
24716 * ipa-reference.c (analyze_function): Likewise.
24718 2014-06-04 Kai Tietz <ktietz@redhat.com>
24720 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
24721 from old call-instruction.
24723 2014-06-04 Bin Cheng <bin.cheng@arm.com>
24725 * config/aarch64/aarch64.c (aarch64_classify_address)
24726 (aarch64_legitimize_reload_address): Support full addressing modes
24728 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
24729 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
24731 2014-06-03 Andrew Pinski <apinski@cavium.com>
24733 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
24736 2014-06-03 Andrew Pinski <apinski@cavium.com>
24738 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
24739 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
24741 2014-06-03 Kai Tietz <ktietz@redhat.com>
24743 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
24746 2014-06-03 Dehao Chen <dehao@google.com>
24748 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
24751 2014-06-03 Marek Polacek <polacek@redhat.com>
24754 * doc/invoke.texi: Document -Wswitch-bool.
24755 * function.c (stack_protect_epilogue): Cast controlling expression of
24757 * gengtype.c (walk_type): Generate switch expression with its
24758 controlling expression cast to int.
24760 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
24762 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
24764 * config/avr/avr-tables.opt: Regenerate.
24765 * config/avr/t-multilib: Regenerate.
24766 * doc/avr-mmcu.texi: Regenerate.
24768 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
24769 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
24771 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
24772 (ata6617c, ata664251): Add new avr35 devices.
24773 (ata6612c): Add new avr4 device.
24774 (ata6613c, ata6614q): Add new avr5 devices.
24775 * config/avr/avr-tables.opt: Regenerate.
24776 * config/avr/t-multilib: Regenerate.
24777 * doc/avr-mmcu.texi: Regenerate.
24779 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
24781 * gcc/config/aarch64/aarch64-builtins.c
24782 (aarch64_types_binop_ssu_qualifiers): New static data.
24783 (TYPES_BINOP_SSU): Define.
24784 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
24785 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
24786 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
24787 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
24788 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
24789 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
24790 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
24791 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
24792 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
24793 suffix to builtin function name, remove cast.
24794 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
24795 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
24796 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
24798 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
24800 * gcc/config/aarch64/aarch64-builtins.c
24801 (aarch64_types_binop_uus_qualifiers,
24802 aarch64_types_shift_to_unsigned_qualifiers,
24803 aarch64_types_unsigned_shiftacc_qualifiers): Define.
24804 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
24805 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
24806 sqshlu_n, uqshl_n): Update qualifiers.
24807 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
24808 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
24809 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
24810 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
24811 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
24812 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
24813 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
24814 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
24815 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
24816 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
24817 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
24818 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
24819 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
24820 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
24821 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
24822 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
24823 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
24824 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
24825 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
24826 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
24827 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
24828 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
24829 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
24830 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
24831 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
24832 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
24833 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
24835 2014-06-03 Teresa Johnson <tejohnson@google.com>
24837 * tree-sra.c (modify_function): Record caller nodes after rebuild.
24839 2014-06-02 Jason Merrill <jason@redhat.com>
24842 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
24844 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
24846 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
24849 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
24851 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
24853 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
24854 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
24855 * config/aarch64/iterators.md (REVERSE): New iterator.
24856 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
24857 (rev_op): New int_attribute.
24858 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
24859 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
24860 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
24861 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
24862 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
24863 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
24864 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
24865 Replace temporary __asm__ with __builtin_shuffle.
24867 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
24869 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
24871 * config/mips/mips-tables.opt: Regenerate.
24872 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
24873 to use mips_isa_rev rather than ISA_MIPS32R2.
24874 * config/mips/mips.h (ISA_MIPS32R3): New define.
24875 (ISA_MIPS32R5): New define.
24876 (ISA_MIPS64R3): New define.
24877 (ISA_MIPS64R5): New define.
24878 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
24879 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
24880 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
24882 (MIPS_ISA_SYNCI_SPEC): Likewise.
24883 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
24884 (LINK_SPEC): Added mips32r3 and mips32r5.
24885 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
24886 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
24887 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
24888 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
24889 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
24890 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
24891 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
24893 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
24895 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
24897 * config/mips/mips.opt (mxpa): New option.
24898 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
24901 2014-06-03 Martin Jambor <mjambor@suse.cz>
24904 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
24907 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
24909 PR tree-optimization/61328
24910 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
24911 initialization from find_bswap_or_nop_1.
24912 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
24913 in source_expr2 before using the size value the function sets. Also
24914 make use of init_symbolic_number () in both the old place and
24915 find_bswap_or_nop_load () to avoid reading uninitialized memory when
24916 doing recursion in the GIMPLE_BINARY_RHS case.
24918 2014-06-03 Richard Biener <rguenther@suse.de>
24920 PR tree-optimization/61383
24921 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
24924 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
24926 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
24927 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
24928 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
24929 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
24931 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
24932 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
24933 * system.h: ...here and make it unconditional.
24934 * target.def (conditional_register_usage): Mention
24935 define_register_constraint instead of old-style constraint macros.
24936 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
24937 * doc/tm.texi: Regenerate.
24938 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
24939 protected by !USE_MD_CONSTRAINTS.
24940 * config/frv/frv.md: Remove quote from old version of documentation.
24941 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
24942 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
24943 CONST_DOUBLE_OK_FOR_LETTER.
24944 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
24946 2014-06-02 Andrew Pinski <apinski@cavium.com>
24948 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
24949 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
24950 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
24951 file whose name depends on -mabi= and -mbig-endian.
24952 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
24953 Handle LP64 better and handle ilp32 too.
24954 (MULTILIB_OPTIONS): Delete.
24955 (MULTILIB_DIRNAMES): Delete.
24957 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
24959 * expr.h: Remove prototypes of functions defined in builtins.c.
24960 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
24961 Remove prototypes of functions defined in builtins.c.
24962 * builtins.h: Update prototype list to include all exported functions.
24963 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
24964 no_c99_libc_has_function): Move to targhooks.c
24965 (build_string_literal, build_call_expr_loc_array,
24966 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
24968 (expand_builtin_object_size, fold_builtin_object_size): Make static.
24969 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
24970 no_c99_libc_has_function): Relocate from builtins.c.
24971 * tree.c: Include builtins.h.
24972 (build_call_expr_loc_array, build_call_expr_loc_vec,
24973 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
24975 * fold-const.h (fold_fma): Move prototype to builtins.h.
24976 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
24977 * asan.c: Include builtins.h.
24978 * cfgexpand.c: Likewise.
24979 * convert.c: Likewise.
24980 * emit-rtl.c: Likewise.
24981 * except.c: Likewise.
24982 * expr.c: Likewise.
24983 * fold-const.c: Likewise.
24984 * gimple-fold.c: Likewise.
24985 * gimple-ssa-strength-reduction.c: Likewise.
24986 * gimplify.c: Likewise.
24987 * ipa-inline.c: Likewise.
24988 * ipa-prop.c: Likewise.
24989 * lto-streamer-out.c: Likewise.
24990 * stmt.c: Likewise.
24991 * tree-inline.c: Likewise.
24992 * tree-object-size.c: Likewise.
24993 * tree-sra.c: Likewise.
24994 * tree-ssa-ccp.c: Likewise.
24995 * tree-ssa-forwprop.c: Likewise.
24996 * tree-ssa-loop-ivcanon.c: Likewise.
24997 * tree-ssa-loop-ivopts.c: Likewise.
24998 * tree-ssa-math-opts.c: Likewise.
24999 * tree-ssa-reassoc.c: Likewise.
25000 * tree-ssa-threadedge.c: Likewise.
25001 * tree-streamer-in.c: Likewise.
25002 * tree-vect-data-refs.c: Likewise.
25003 * tree-vect-patterns.c: Likewise.
25004 * tree-vect-stmts.c: Likewise.
25005 * config/aarch64/aarch64.c: Likewise.
25006 * config/alpha/alpha.c: Likewise.
25007 * config/arc/arc.c: Likewise.
25008 * config/arm/arm.c: Likewise.
25009 * config/avr/avr.c: Likewise.
25010 * config/bfin/bfin.c: Likewise.
25011 * config/c6x/c6x.c: Likewise.
25012 * config/cr16/cr16.c: Likewise.
25013 * config/cris/cris.c: Likewise.
25014 * config/epiphany/epiphany.c: Likewise.
25015 * config/fr30/fr30.c: Likewise.
25016 * config/frv/frv.c: Likewise.
25017 * config/h8300/h8300.c: Likewise.
25018 * config/i386/i386.c: Likewise.
25019 * config/i386/winnt.c: Likewise.
25020 * config/ia64/ia64.c: Likewise.
25021 * config/iq2000/iq2000.c: Likewise.
25022 * config/lm32/lm32.c: Likewise.
25023 * config/m32c/m32c.c: Likewise.
25024 * config/m32r/m32r.c: Likewise.
25025 * config/m68k/m68k.c: Likewise.
25026 * config/mcore/mcore.c: Likewise.
25027 * config/mep/mep.c: Likewise.
25028 * config/microblaze/microblaze.c: Likewise.
25029 * config/mips/mips.c: Likewise.
25030 * config/mmix/mmix.c: Likewise.
25031 * config/mn10300/mn10300.c: Likewise.
25032 * config/moxie/moxie.c: Likewise.
25033 * config/msp430/msp430.c: Likewise.
25034 * config/nds32/nds32.c: Likewise.
25035 * config/pa/pa.c: Likewise.
25036 * config/pdp11/pdp11.c: Likewise.
25037 * config/picochip/picochip.c: Likewise.
25038 * config/rl78/rl78.c: Likewise.
25039 * config/rs6000/rs6000.c: Likewise.
25040 * config/rx/rx.c: Likewise.
25041 * config/s390/s390.c: Likewise.
25042 * config/score/score.c: Likewise.
25043 * config/sh/sh.c: Likewise.
25044 * config/sparc/sparc.c: Likewise.
25045 * config/spu/spu.c: Likewise.
25046 * config/stormy16/stormy16.c: Likewise.
25047 * config/tilegx/tilegx.c: Likewise.
25048 * config/tilepro/tilepro.c: Likewise.
25049 * config/v850/v850.c: Likewise.
25050 * config/vax/vax.c: Likewise.
25051 * config/xtensa/xtensa.c: Likewise.
25053 2014-06-02 Jeff Law <law@redhat.com>
25055 PR rtl-optimization/61094
25056 * ree.c (combine_reaching_defs): Do not reextend an insn if it
25057 was marked as do_no_reextend. If a copy is needed to eliminate
25058 an extension, then mark it as do_not_reextend.
25060 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
25062 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
25064 2014-06-02 Richard Henderson <rth@redhat.com>
25067 * config/alpha/alpha.c (print_operand_address): Allow symbolic
25068 addresses inside asms. Use output_operand_lossage instead of
25071 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
25074 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
25075 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
25077 2014-06-02 Tom de Vries <tom@codesourcery.com>
25079 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
25080 case that x has VOIDmode.
25082 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
25084 * varasm.c (copy_constant): Delete function.
25085 (build_constant_desc): Don't call it.
25087 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25090 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
25091 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
25092 with immediate_operand.
25094 2014-06-02 Andreas Schwab <schwab@suse.de>
25096 * config/ia64/ia64.c
25097 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
25098 pending_data_specs first.
25100 2014-06-02 Richard Biener <rguenther@suse.de>
25102 PR tree-optimization/61378
25103 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
25104 valueized_anything.
25106 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
25108 * config/i386/constraints.md (Bw): Rename from 'w'.
25109 (Bz): Rename from 'z'.
25110 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
25112 2014-06-01 Kai Tietz <ktietz@redhat.com>
25115 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
25116 * config/i386/i386.md (sibcall_insn_operand): Use Bs
25117 instead of m constraint.
25119 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
25121 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
25122 a separate alternative where the scratch operand 2 is marked as
25125 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
25127 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
25128 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
25129 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
25130 and __builtins_arm_get_fpscr.
25131 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
25132 __builtins_arm_get_fpscr.
25133 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
25134 __builtins_arm_ldfpscr.
25135 (arm_atomic_assign_expand_fenv): New function.
25136 * config/arm/vfp.md (set_fpscr): New pattern.
25137 (get_fpscr) : Likewise.
25138 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
25140 * doc/extend.texi (AARCH64 Built-in Functions) : Document
25141 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
25143 2014-05-30 Jakub Jelinek <jakub@redhat.com>
25145 * asan.c (report_error_func): Add SLOW_P argument, use
25146 BUILT_IN_ASAN_*_N if set.
25147 (build_check_stmt): Likewise.
25148 (instrument_derefs): If T has insufficient alignment,
25149 force same handling as for odd sizes.
25151 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
25152 BUILT_IN_ASAN_REPORT_STORE_N): New.
25153 * asan.c (struct asan_mem_ref): Change access_size type to
25155 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
25156 update_mem_ref_hash_table): Likewise.
25157 (asan_mem_ref_hasher::hash): Hash in a HWI.
25158 (report_error_func): Change size_in_bytes argument to HWI.
25159 Use *_N builtins if size_in_bytes is larger than 16 or not power of
25161 (build_shadow_mem_access): New function.
25162 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
25163 Handle size_in_bytes not power of two or larger than 16.
25164 (instrument_derefs): Don't give up if size_in_bytes is not
25165 power of two or is larger than 16.
25167 2014-05-30 Kai Tietz <ktietz@redhat.com>
25170 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
25171 for sibling-tail-calls.
25172 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
25174 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
25175 (sibcall_insn_operand): Add check for sibcall_memory_operand.
25177 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25179 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
25180 * config/avr/avr-tables.opt: Regenerate.
25181 * config/avr/t-multilib: Regenerate.
25182 * doc/avr-mmcu.texi: Regenerate.
25184 2014-05-30 Ian Lance Taylor <iant@google.com>
25186 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
25189 2014-05-30 Tom de Vries <tom@codesourcery.com>
25191 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
25194 2014-05-30 Tom de Vries <tom@codesourcery.com>
25196 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
25197 * lra.c (initialize_lra_reg_info_element): Add init of
25198 actual_call_used_reg_set field.
25199 (lra): Call lra_create_live_ranges before lra_inheritance for
25201 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
25203 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
25204 instead of call_used_reg_set for -fuse-caller-save.
25205 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
25207 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25209 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
25211 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
25213 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
25215 * ira.c (ira_get_dup_out_num): Check for output operands at
25216 the start of the loop. Handle cases where an included alternative
25217 follows an excluded one.
25219 2014-05-29 Mike Stump <mikestump@comcast.net>
25222 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
25223 post ld passes when lto is used.
25225 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
25227 PR rtl-optimization/61325
25228 * lra-constraints.c (process_address): Rename to process_address_1.
25229 (process_address): New function.
25231 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
25233 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
25234 TYPES_BINOPV): New static data.
25235 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
25237 * config/aarch64/aarch64-simd.md (aarch64_ext,
25238 aarch64_im_lane_boundsi): New patterns.
25239 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
25241 (aarch64_evpc_ext): New function.
25243 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
25245 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
25246 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
25247 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
25248 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
25249 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
25251 2014-05-29 Tom de Vries <tom@codesourcery.com>
25253 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
25255 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
25256 Richard Sandiford <rdsandiford@googlemail.com>
25258 * arm/iterators.md (shiftable_ops): New code iterator.
25259 (t2_binop0, arith_shift_insn): New code attributes.
25260 * arm/predicates.md (shift_nomul_operator): New predicate.
25261 * arm/arm.md (insn_enabled): Delete.
25262 (enabled): Remove insn_enabled test.
25263 (*arith_shiftsi): Delete. Replace with ...
25264 (*<arith_shift_insn>_multsi): ... new pattern.
25265 (*<arith_shift_insn>_shiftsi): ... new pattern.
25266 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
25268 2014-05-29 Radovan Obradovic <robradovic@mips.com>
25269 Tom de Vries <tom@codesourcery.com>
25271 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
25272 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
25274 (mips_split_call): Use POST_CALL_TMP_REG.
25275 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
25277 2014-05-29 Tom de Vries <tom@codesourcery.com>
25279 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
25280 with #ifdef STACK_REGS.
25282 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
25284 * varasm.c (get_variable_section): Walk aliases.
25285 (place_block_symbol): Walk aliases.
25287 2014-05-28 Tom de Vries <tom@codesourcery.com>
25290 2014-05-28 Tom de Vries <tom@codesourcery.com>
25292 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
25293 * lra.c (initialize_lra_reg_info_element): Add init of
25294 actual_call_used_reg_set field.
25295 (lra): Call lra_create_live_ranges before lra_inheritance for
25297 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
25299 * lra-constraints.c (need_for_call_save_p): Use
25300 actual_call_used_reg_set instead of call_used_reg_set for
25302 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
25304 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
25306 * doc/md.texi: Document that the % constraint character must
25307 be at the beginning of the string.
25308 * genoutput.c (validate_insn_alternatives): Check that '=',
25309 '+' and '%' only appear at the beginning of a constraint.
25310 * ira.c (commutative_constraint_p): Delete.
25311 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
25312 at the start of the string.
25313 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
25315 * config/arm/neon.md (bicdi3_neon): Likewise.
25316 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
25317 (slt_si, sltu_si): Likewise.
25318 * config/vax/vax.md (sbcdi3): Likewise.
25319 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
25320 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
25321 (mul64): Move '%' to beginning of constraint.
25322 * config/arm/arm.md (*xordi3_insn): Likewise.
25323 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
25324 (xorsi3): Likewise.
25326 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
25328 * doc/md.texi: Document the restrictions on the "enabled" attribute.
25330 2014-05-28 Jason Merrill <jason@redhat.com>
25333 * cgraph.h (symtab_node::get_comdat_group_id): New.
25334 * cgraphunit.c (analyze_functions): Call it.
25335 * symtab.c (dump_symtab_node): Likewise.
25336 * tree.c (decl_comdat_group_id): New.
25337 * tree.h: Declare it.
25338 * lto-streamer-out.c (write_symbol): Use it.
25339 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
25341 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
25343 PR bootstrap/PR61146
25344 * wide-int.cc: Do not include longlong.h when compiling with clang.
25346 2014-05-28 Richard Biener <rguenther@suse.de>
25348 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
25349 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
25350 (vrp_visit_assignment_or_call): Print less vertical space.
25351 (vrp_visit_stmt): Likewise.
25352 (vrp_visit_phi_node): Likewise. For a PHI argument with
25353 VR_VARYING range consider recording it as copy.
25355 2014-05-28 Richard Biener <rguenther@suse.de>
25358 2014-05-28 Richard Biener <rguenther@suse.de>
25360 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
25362 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
25364 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
25365 sufficiently aligned and an offset is used at the same time.
25366 (expand_expr_real_1): Likewise.
25368 2014-05-28 Richard Biener <rguenther@suse.de>
25370 PR middle-end/61045
25371 * fold-const.c (fold_comparison): When folding
25372 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
25373 the sign of the remaining constant operand stays the same.
25375 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
25377 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
25378 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
25379 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
25381 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
25382 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
25383 (m32bit-doubles) Likewise.
25384 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
25385 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
25388 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25390 * configure.ac ($gcc_cv_ld_clearcap): New test.
25391 * configure: Regenerate.
25392 * config.in: Regenerate.
25393 * config/sol2.opt (mclear-hwcap): New option.
25394 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
25395 * config/sol2-clearcap.map: Moved here from
25396 testsuite/gcc.target/i386/clearcap.map.
25397 * config/sol2-clearcapv2.map: Move here from
25398 gcc.target/i386/clearcapv2.map.
25399 * config/t-sol2 (install): Depend on install-clearcap-map.
25400 (install-clearcap-map): New target.
25401 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
25404 2014-05-28 Richard Biener <rguenther@suse.de>
25406 * hwint.h (*_HALF_WIDE_INT*): Move to ...
25407 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
25408 ... here and remove the rest.
25409 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
25411 2014-05-28 Richard Biener <rguenther@suse.de>
25413 PR tree-optimization/61335
25414 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
25415 new range fails, drop to varying.
25417 2014-05-28 Olivier Hainque <hainque@adacore.com>
25419 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
25420 (CPP_SPEC): Add entry for -mcpu=8548.
25421 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
25422 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
25424 2014-05-28 Tom de Vries <tom@codesourcery.com>
25426 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
25427 * lra.c (initialize_lra_reg_info_element): Add init of
25428 actual_call_used_reg_set field.
25429 (lra): Call lra_create_live_ranges before lra_inheritance for
25431 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
25433 * lra-constraints.c (need_for_call_save_p): Use
25434 actual_call_used_reg_set instead of call_used_reg_set for
25436 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
25438 2014-05-28 Radovan Obradovic <robradovic@mips.com>
25439 Tom de Vries <tom@codesourcery.com>
25441 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
25443 (@item -fuse-caller-save): New item.
25445 2014-05-28 Radovan Obradovic <robradovic@mips.com>
25446 Tom de Vries <tom@codesourcery.com>
25448 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
25449 OPT_fuse_caller_save.
25451 2014-05-28 Radovan Obradovic <robradovic@mips.com>
25452 Tom de Vries <tom@codesourcery.com>
25454 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
25455 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
25456 get_call_reg_set_usage.
25457 * resource.c (mark_set_resources, mark_target_live_regs): Use
25458 get_call_reg_set_usage.
25459 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
25461 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
25462 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
25463 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
25464 * ira-build.c (ira_create_allocno): Init
25465 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
25466 (create_cap_allocno, propagate_allocno_info)
25467 (propagate_some_info_from_allocno)
25468 (copy_info_to_removed_store_destinations): Handle
25469 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
25470 * ira-costs.c (ira_tune_allocno_costs): Use
25471 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
25473 2014-05-28 Radovan Obradovic <robradovic@mips.com>
25474 Tom de Vries <tom@codesourcery.com>
25476 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
25477 and function_used_regs_valid fields.
25478 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
25479 find_all_hard_reg_sets.
25480 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
25481 (get_call_reg_set_usage): New function.
25482 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
25483 * regs.h (get_call_reg_set_usage): Declare.
25485 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
25488 * config/dbx.h (License): Add Runtime Library Exception.
25489 * config/newlib-stdint.h (License): Same.
25490 * config/rtems.h (License): Same
25491 * config/initfini-array.h (License): Same
25492 * config/v850/v850.h (License): Same.
25493 * config/v850/v850-opts.h (License): Same
25494 * config/v850/rtems.h (License): Same.
25496 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
25499 * doc/extend.texi (Local Labels): Note that label differences are
25500 not supported for AVR.
25502 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
25503 Olivier Hainque <hainque@adacore.com>
25505 * rtl.h (set_for_reg_notes): Declare.
25506 * emit-rtl.c (set_for_reg_notes): New function.
25507 (set_unique_reg_note): Use it.
25508 * optabs.c (add_equal_note): Likewise
25510 2014-05-27 Andrew Pinski <apinski@cavium.com>
25512 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
25513 Use <w> for the register in assembly template.
25514 (stack_protect_test): Use the mode of operands[0] for the result.
25515 (stack_protect_test_<mode>): Use <w> for the register
25516 in assembly template.
25518 2014-05-27 DJ Delorie <dj@redhat.com>
25520 * config/rx/rx.c (add_vector_labels): New.
25521 (rx_output_function_prologue): Call it.
25522 (rx_handle_func_attribute): Don't require empty arguments.
25523 (rx_handle_vector_attribute): New.
25524 (rx_attribute_table): Add "vector" attribute.
25525 * doc/extend.texi (interrupt, vector): Document new/changed
25526 RX-specific attributes.
25528 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
25530 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
25532 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
25533 predicate to detect a negative quotient.
25535 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
25537 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
25538 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
25539 Add X - Y CMP 0 to X CMP Y transformation.
25540 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
25542 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
25544 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
25547 2014-05-27 Steve Ellcey <sellcey@mips.com>
25549 * config/mips/mips.c: Add include of cgraph.h.
25551 2014-05-27 Richard Biener <rguenther@suse.de>
25553 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
25555 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
25558 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
25559 * config/arm/arm-cores.def (License): Same.
25560 * config/arm/arm-opts.h (License): Same.
25561 * config/arm/aout.h (License): Same.
25562 * config/arm/bpabi.h (License): Same.
25563 * config/arm/elf.h (License): Same.
25564 * config/arm/linux-elf.h (License): Same.
25565 * config/arm/linux-gas.h (License): Same.
25566 * config/arm/netbsd-elf.h (License): Same.
25567 * config/arm/uclinux-eabi.h (License): Same.
25568 * config/arm/uclinux-elf.h (License): Same.
25569 * config/arm/vxworks.h (License): Same.
25571 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25573 * config/arm/neon.md (neon_bswap<mode>): New pattern.
25574 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
25575 (arm_init_neon_builtins): Handle NEON_BSWAP.
25576 Define required type nodes.
25577 (arm_expand_neon_builtin): Handle NEON_BSWAP.
25578 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
25579 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
25580 * config/arm/iterators.md (VDQHSD): New mode iterator.
25582 2014-05-27 Richard Biener <rguenther@suse.de>
25584 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
25585 Try using literal operands when comparing value-ranges failed.
25587 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
25589 * ira.c (commutative_operand): Adjust for change to recog_data.
25590 [Missing from previous commit.]
25592 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
25594 * system.h (TEST_BIT): New macro.
25595 * recog.h (alternative_mask): New type.
25596 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
25597 (recog_data_d): Replace alternative_enabled_p array with
25598 enabled_alternatives.
25599 (target_recog): New structure.
25600 (default_target_recog, this_target_recog): Declare.
25601 (get_enabled_alternatives, recog_init): Likewise.
25602 * recog.c (default_target_recog, this_target_recog): New variables.
25603 (get_enabled_alternatives): New function.
25604 (extract_insn): Use it.
25605 (recog_init): New function.
25606 (preprocess_constraints, constrain_operands): Adjust for change to
25608 * postreload.c (reload_cse_simplify_operands): Likewise.
25609 * reload.c (find_reloads): Likewise.
25610 * ira-costs.c (record_reg_classes): Likewise.
25611 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
25612 all alternatives after a disabled one would be skipped.
25613 (ira_implicitly_set_insn_hard_regs): Likewise.
25614 * ira.c (ira_setup_alts): Adjust for change to recog_data.
25615 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
25616 with enabled_alternatives.
25617 * lra.c (free_insn_recog_data): Update accordingly.
25618 (lra_update_insn_recog_data): Likewise.
25619 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
25620 * lra-constraints.c (process_alt_operands): Likewise. Handle
25621 only_alternative as part of the enabled mask.
25622 * target-globals.h (this_target_recog): Declare.
25623 (target_globals): Add a recog field.
25624 (restore_target_globals): Restore this_target_recog.
25625 * target-globals.c: Include recog.h.
25626 (default_target_globals): Initialize recog field.
25627 (save_target_globals): Likewise.
25628 * reginfo.c (reinit_regs): Call recog_init.
25629 * toplev.c (backend_init_target): Likewise.
25631 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
25633 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
25634 rather than any named insn's code.
25636 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
25639 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
25640 * config/arm/arm-cores.def (License): Same.
25642 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
25644 * tree.h (decl_comdat_group): Declare.
25645 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
25646 * tree.c (decl_comdat_group): Here.
25648 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
25650 PR rtl-optimization/61222
25651 * combine.c (simplify_shift_const_1): When moving a PLUS outside
25652 the shift, truncate the PLUS operand to the result mode.
25654 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
25657 * config/i386/i386.c (ix86_rtx_costs)
25658 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
25661 2014-05-26 Martin Jambor <mjambor@suse.cz>
25663 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
25666 2014-05-26 Richard Biener <rguenther@suse.de>
25668 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
25669 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
25670 Provide specializations.
25671 (wi::int_traits <HOST_WIDE_INT>,
25672 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
25674 2014-05-26 Alan Modra <amodra@gmail.com>
25677 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
25678 params and return a bool. Remove dead code. Update comment.
25679 Assert we have a const_int source. Remove bogus code from
25680 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
25681 handling of constants > 2G and reg_equal note, from..
25682 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
25683 return value. Update comment. If we can, use a new pseudo
25684 for intermediate calculations.
25685 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
25687 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
25688 call to rs6000_emit_set_const in splitter.
25689 (movdi_internal64+2, +3): Likewise.
25691 2014-05-26 Richard Biener <rguenther@suse.de>
25693 * system.h: Define __STDC_FORMAT_MACROS before
25694 including inttypes.h.
25695 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
25696 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
25697 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
25698 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
25699 HOST_WIDEST_INT_C): Remove.
25700 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
25701 if C99 inttypes.h is not available.
25702 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
25703 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
25704 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
25705 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
25706 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
25707 (struct output_info): Likewise.
25708 (print_statistics): Adjust.
25709 (dump_bitmap_statistics): Likewise.
25710 * bt-load.c (migrate_btr_defs): Print with PRId64.
25711 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
25712 (MAX_SAFE_MULTIPLIER): Adjust.
25713 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
25714 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
25715 dump_cgraph_node): Likewise.
25716 * final.c (dump_basic_block_info): Likewise.
25717 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
25718 * gcov.c (format_gcov): Likewise.
25719 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
25721 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
25722 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
25723 (inline_small_functions, dump_overall_stats, dump_inline_stats):
25724 Use PRId64 for dumping.
25725 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
25726 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
25727 (add_allocno_hard_regs): Adjust.
25728 * loop-doloop.c (doloop_modify): Print using PRId64.
25729 * loop-iv.c (inverse): Compute in uint64_t.
25730 (determine_max_iter, iv_number_of_iterations): Likewise.
25731 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
25732 Print using PRId64.
25733 * lto-streamer-out.c (write_symbol): Use uint64_t.
25734 * mcf.c (CAP_INFINITY): Use int64_t maximum.
25735 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
25736 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
25737 * modulo-sched.c (const_iteration_count): Use int64_t.
25738 (sms_schedule): Dump using PRId64.
25739 * predict.c (dump_prediction): Likewise.
25740 * pretty-print.h (pp_widest_integer): Remove.
25741 * profile.c (get_working_sets, is_edge_inconsistent,
25742 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
25743 * tree-pretty-print.c (pp_double_int): Remove case handling
25744 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
25745 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
25747 (pass_optimize_bswap::execute): Remove restriction on hosts.
25748 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
25749 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
25750 * tree.c (widest_int_cst_value): Remove.
25751 * tree.h (widest_int_cst_value): Likewise.
25752 * value-prof.c (dump_histogram_value): Print using PRId64.
25753 * gengtype.c (main): Also inject int64_t.
25754 * ggc-page.c (struct max_alignment): Use int64_t.
25755 * alloc-pool.c (struct allocation_object_def): Likewise.
25756 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
25758 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
25759 * doc/tm.texi: Regenerated.
25760 * gengtype-lex.l (IWORD): Handle [u]int64_t.
25761 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
25762 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
25763 mmix_output_register_setting): Use [u]int64_t in prototypes.
25764 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
25765 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
25766 mmix_output_octa, mmix_output_shifted_value): Adjust.
25767 (mmix_intval): Adjust. Remove unreachable case.
25768 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
25770 2014-05-26 Richard Biener <rguenther@suse.de>
25772 * configure.ac: Drop __int64 type check. Insist that we
25773 found uint64_t and int64_t.
25774 * hwint.h (HOST_BITS_PER___INT64): Remove.
25775 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
25776 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
25777 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
25778 (HOST_WIDEST_FAST_INT): Remove __int64 case.
25779 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
25780 for dst_q_src_df_rms_cdt.
25781 * configure: Regenerate.
25782 * config.in: Likewise.
25784 2014-05-26 Michael Tautschnig <mt@debian.org>
25787 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
25788 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
25790 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25792 PR rtl-optimization/61278
25793 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
25795 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
25797 PR rtl-optimization/61220
25798 Part of PR rtl-optimization/61225
25799 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
25800 insn; skip split_edge for a block with only one successor.
25802 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25804 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
25807 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25809 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
25810 (update_vtable_references): New function.
25811 (function_and_variable_visibility): Rewrite also vtable initializers.
25812 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
25814 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25816 * ggc.h (ggc_grow): New function.
25817 * ggc-none.c (ggc_grow): New function.
25818 * ggc-page.c (ggc_grow): Likewise.
25820 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25822 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
25823 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
25824 comdat_can_be_unshared_p, cgraph_externally_visible_p,
25825 varpool_externally_visible_p, can_replace_by_local_alias,
25826 update_visibility_by_resolution_info, function_and_variable_visibility,
25827 pass_data_ipa_function_and_variable_visibility,
25828 make_pass_ipa_function_and_variable_visibility,
25829 whole_program_function_and_variable_visibility,
25830 pass_data_ipa_whole_program_visibility,
25831 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
25832 * cgraph.h (cgraph_local_node_p): Declare.
25833 * ipa-visibility.c: New file.
25834 * Makefile.in (OBJS): Add ipa-visiblity.o
25836 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25838 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
25839 that var decl is available.
25841 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25843 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
25844 symtab_node pointer.
25845 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
25846 (find_decls_types_r): Do not walk COMDAT_GROUP.
25847 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
25848 * varasm.c (make_decl_one_only): Use set_comdat_group;
25849 create node if needed.
25850 * ipa-inline-transform.c (save_inline_function_body): Update
25851 way we decl->symtab mapping.
25852 * symtab.c (symtab_hash, hash_node, eq_node
25853 symtab_insert_node_to_hashtable): Remove.
25854 (symtab_register_node): Update.
25855 (symtab_unregister_node): Update.
25856 (symtab_get_node): Reimplement as inline function.
25857 (symtab_add_to_same_comdat_group): Update.
25858 (symtab_dissolve_same_comdat_group_list): Update.
25859 (dump_symtab_base): Update.
25860 (verify_symtab_base): Update.
25861 (symtab_make_decl_local): Update.
25862 (fixup_same_cpp_alias_visibility): Update.
25863 (symtab_nonoverwritable_alias): Update.
25864 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
25865 * ipa.c (update_visibility_by_resolution_info): UPdate.
25866 * bb-reorder.c: Include cgraph.h
25867 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
25868 with comdat groups.
25869 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
25870 * cgraph.c (cgraph_get_create_node): Update.
25871 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
25873 (symtab_get_node): Make inline.
25874 (symtab_insert_node_to_hashtable): Remove.
25875 (symtab_can_be_discarded): Update.
25876 (decl_comdat_group): New function.
25877 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
25879 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
25881 (read_comdat_group): New function.
25882 (input_node, input_varpool_node): Use it.
25883 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
25885 * mips.c (mips_start_unique_function): Likewise.
25886 (ix86_code_end): Likewise.
25887 (rs6000_code_end): Likweise.
25888 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
25890 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25892 * gengtype-state.c (fatal_reading_state): Bring offline.
25893 * optabs.c (widening_optab_handler): Bring offline.
25894 * optabs.h (widening_optab_handler): Likewise.
25895 * final.c (get_attr_length_1): Likewise.
25897 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
25899 * sched-int.h (sd_iterator_cond): Manually tail recurse.
25901 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
25903 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
25904 (ppc440-compare): Include shift with dot.
25905 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
25906 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
25908 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
25910 (e6500_sfx2): Include it.
25911 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
25912 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
25913 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
25914 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
25915 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
25916 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
25917 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
25918 *lshiftrt_internal1le, *lshiftrt_internal1be,
25919 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
25920 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
25921 *rotldi3_internal10le, *rotldi3_internal10be,
25922 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
25923 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
25924 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
25925 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
25926 define_insns): Use type "shift" in the appropriate alternatives.
25928 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
25930 * config/rs6000/rs6000.md (type): Add "logical". Delete
25932 (dot): Adjust comment.
25933 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
25934 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
25935 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
25936 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
25937 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
25938 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
25939 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
25940 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
25942 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
25943 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
25944 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
25945 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
25946 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
25947 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
25948 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
25949 * config/rs6000/8540.md (ppc8540_su): Adjust.
25950 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
25951 cell-cmp-microcoded): Adjust.
25952 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
25953 * config/rs6000/e500mc.md (e500mc_su): Adjust.
25954 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
25955 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
25956 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
25957 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
25958 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
25959 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
25960 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
25962 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
25963 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
25964 Adjust. Adjust comment.
25965 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
25966 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
25968 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
25970 * config/rs6000/rs6000.md (type): Add "add".
25971 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
25972 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
25973 define_insns): Use it.
25974 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
25976 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
25977 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
25978 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
25979 * config/rs6000/601.md (ppc601-integer): Adjust.
25980 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
25981 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
25982 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
25983 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
25984 * config/rs6000/8540.md (ppc8540_su): Adjust.
25985 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
25986 cell-cmp-microcoded): Adjust.
25987 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
25988 * config/rs6000/e500mc.md (e500mc_su): Adjust.
25989 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
25990 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
25991 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
25992 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
25993 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
25994 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
25995 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
25997 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
25998 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
25999 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
26000 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
26002 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
26004 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
26005 "delayed_compare", "var_delayed_compare".
26006 (var_shift): New attribute.
26007 (cell_micro): Adjust.
26008 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
26009 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
26010 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
26011 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
26012 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
26013 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
26014 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
26015 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
26016 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
26017 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
26018 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
26019 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
26020 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
26021 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
26022 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
26023 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
26024 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
26025 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
26026 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
26027 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
26028 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
26029 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
26030 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
26031 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
26032 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
26034 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
26035 * config/rs6000/440.md (ppc440-integer): Adjust.
26036 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
26037 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
26038 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
26039 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
26040 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
26041 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
26042 * config/rs6000/8540.md (ppc8540_su): Adjust.
26043 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
26044 cell-cmp-microcoded): Adjust.
26045 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
26046 * config/rs6000/e500mc.md (e500mc_su): Adjust.
26047 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
26048 e500mc64_delayed): Adjust.
26049 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
26050 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
26051 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
26052 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
26053 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
26054 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
26055 power6-delayed-compare, power6-var-delayed-compare): Adjust.
26056 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
26057 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
26059 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
26060 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
26062 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
26064 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
26065 (bits): New mode_attr.
26066 (idiv_ldiv): Delete mode_attr.
26067 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
26068 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
26069 rs6000_adjust_priority, is_nonpipeline_insn,
26070 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
26072 * config/rs6000/40x.md (ppc403-idiv): Adjust.
26073 * config/rs6000/440.md (ppc440-idiv): Adjust.
26074 * config/rs6000/476.md (ppc476-idiv): Adjust.
26075 * config/rs6000/601.md (ppc601-idiv): Adjust.
26076 * config/rs6000/603.md (ppc603-idiv): Adjust.
26077 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
26078 ppc620-ldiv): Adjust.
26079 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
26080 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
26081 * config/rs6000/8540.md (ppc8540_divide): Adjust.
26082 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
26083 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
26084 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
26085 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
26086 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
26087 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
26088 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
26089 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
26090 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
26091 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
26092 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
26093 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
26094 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
26095 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
26096 * config/rs6000/titan.md (titan_fxu_div): Adjust.
26098 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
26100 * config/rs6000/rs6000.md (type): Delete "insert_word",
26101 "insert_dword". Add "insert".
26102 (size): Update comment.
26103 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
26104 insn_must_be_first_in_group): Adjust.
26105 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
26106 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
26107 *insvsi_internal6, insvdi_internal): Adjust.
26109 * config/rs6000/40x.md (ppc403-integer): Adjust.
26110 * config/rs6000/440.md (ppc440-integer): Adjust.
26111 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
26112 * config/rs6000/601.md (ppc601-integer): Adjust.
26113 * config/rs6000/603.md (ppc603-integer): Adjust.
26114 * config/rs6000/6xx.md (ppc604-integer): Adjust.
26115 * config/rs6000/7450.md (ppc7450-integer): Adjust.
26116 * config/rs6000/7xx.md (ppc750-integer): Adjust.
26117 * config/rs6000/8540.md (ppc8540_su): Adjust.
26118 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
26119 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
26120 * config/rs6000/e500mc.md (e500mc_su): Adjust.
26121 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
26122 * config/rs6000/e5500.md (e5500_sfx): Adjust.
26123 * config/rs6000/e6500.md (e6500_sfx): Adjust.
26124 * config/rs6000/mpc.md (mpccore-integer): Adjust.
26125 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
26126 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
26127 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
26128 * config/rs6000/power7.md (power7-integer): Adjust.
26129 * config/rs6000/power8.md (power8-1cyc): Adjust.
26130 * config/rs6000/rs64.md (rs64a-integer): Adjust.
26131 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
26133 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
26135 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
26136 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
26137 (size): New attribute.
26138 (dot): New attribute.
26139 (cell_micro): Adjust.
26140 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
26141 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
26142 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
26143 umuldi3_highpart): Adjust.
26144 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
26145 rs6000_adjust_priority, is_nonpipeline_insn,
26146 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
26148 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
26149 ppc405-imul3): Adjust.
26150 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
26151 * config/rs6000/476.md (ppc476-imul): Adjust.
26152 * config/rs6000/601.md (ppc601-imul): Adjust.
26153 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
26154 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
26155 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
26156 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
26157 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
26159 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
26160 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
26161 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
26162 cell-imul): Adjust.
26163 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
26164 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
26165 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
26166 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
26167 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
26168 * config/rs6000/mpc.md (mpccore-imul): Adjust.
26169 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
26170 power4-lmul, power4-imul, power4-imul3): Adjust.
26171 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
26172 power5-lmul, power5-imul, power5-imul3): Adjust.
26173 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
26174 power6-lmul, power6-imul, power6-imul3): Adjust.
26175 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
26176 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
26178 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
26179 rs64a-lmul): Adjust.
26180 * config/rs6000/titan.md (titan_imul): Adjust.
26182 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
26184 * config/rs6000/rs6000.md (type): Add new value "halfmul".
26185 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
26186 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
26187 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
26188 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
26189 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
26190 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
26191 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
26192 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
26193 * config/rs6000/titan.md: Delete nonsensical comment.
26194 (titan_imul): Add type imul3.
26195 (titan_mulhw): Remove type imul3; add type halfmul.
26197 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
26199 * config/rs6000/rs6000.md (type): Reorder, reformat.
26201 2014-05-23 Martin Jambor <mjambor@suse.cz>
26203 PR tree-optimization/53787
26204 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
26205 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
26206 analysis_done, update all uses.
26207 * ipa-prop.c: Include domwalk.h
26208 (param_analysis_info): Removed.
26209 (param_aa_status): New type.
26210 (ipa_bb_info): Likewise.
26211 (func_body_info): Likewise.
26212 (ipa_get_bb_info): New function.
26213 (aa_overwalked): Likewise.
26214 (find_dominating_aa_status): Likewise.
26215 (parm_bb_aa_status_for_bb): Likewise.
26216 (parm_preserved_before_stmt_p): Changed to use new param AA info.
26217 (load_from_unmodified_param): Accept func_body_info as a parameter
26218 instead of parms_ainfo.
26219 (parm_ref_data_preserved_p): Changed to use new param AA info.
26220 (parm_ref_data_pass_through_p): Likewise.
26221 (ipa_load_from_parm_agg_1): Likewise. Update callers.
26222 (compute_complex_assign_jump_func): Changed to use new param AA info.
26223 (compute_complex_ancestor_jump_func): Likewise.
26224 (ipa_compute_jump_functions_for_edge): Likewise.
26225 (ipa_compute_jump_functions): Removed.
26226 (ipa_compute_jump_functions_for_bb): New function.
26227 (ipa_analyze_indirect_call_uses): Likewise, moved variable
26229 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
26230 and info, moved variable declarations down.
26231 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
26233 (ipa_analyze_stmt_uses): Likewise.
26234 (ipa_analyze_params_uses): Removed.
26235 (ipa_analyze_params_uses_in_bb): New function.
26236 (ipa_analyze_controlled_uses): Likewise.
26237 (free_ipa_bb_info): Likewise.
26238 (analysis_dom_walker): New class.
26239 (ipa_analyze_node): Handle node-specific forbidden analysis,
26240 initialize and free func_body_info, use dominator walker.
26241 (ipcp_modif_dom_walker): New class.
26242 (ipcp_transform_function): Create and free func_body_info, use
26243 ipcp_modif_dom_walker, moved a lot of functionality there.
26245 2014-05-23 Marek Polacek <polacek@redhat.com>
26246 Jakub Jelinek <jakub@redhat.com>
26248 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
26249 * gcc.c (sanitize_spec_function): Likewise.
26250 * convert.c (convert_to_integer): Include "ubsan.h". Add
26251 floating-point to integer instrumentation.
26252 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
26253 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
26254 SANITIZE_NONDEFAULT.
26255 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
26256 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
26257 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
26258 * ubsan.c: Include "realmpfr.h" and "dfp.h".
26259 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
26260 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
26261 float/double/long double.
26262 (ubsan_instrument_float_cast): New function.
26263 * ubsan.h (ubsan_instrument_float_cast): Declare.
26265 2014-05-23 Jiong Wang <jiong.wang@arm.com>
26267 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
26269 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
26270 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
26271 Adjust for tailcalling through registers.
26272 * config/aarch64/aarch64.h (enum reg_class): New caller save
26274 (REG_CLASS_NAMES): Likewise.
26275 (REG_CLASS_CONTENTS): Likewise.
26276 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
26277 Allow tailcalling without decls.
26279 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
26281 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
26282 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
26284 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
26285 gsi, and variables v_* to v*.
26287 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
26289 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
26291 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
26293 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
26294 * omp-low.c: Update accordingly.
26296 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
26297 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
26298 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
26299 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
26300 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
26301 GF_OMP_TARGET_KIND_UPDATE.
26303 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
26304 Explicitly enumerate the expected region types.
26306 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
26309 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
26310 documentation; the old documentation didn't clearly state the
26311 constraints on the contents of the pointed-to storage.
26313 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
26315 Fix bootstrap error on ia64
26316 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
26317 Return default value.
26319 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
26321 PR tree-optimization/54733
26322 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
26324 (find_bswap_or_nop_load): New.
26325 (find_bswap_1): Renamed to ...
26326 (find_bswap_or_nop_1): This. Also add support for memory source.
26327 (find_bswap): Renamed to ...
26328 (find_bswap_or_nop): This. Also add support for memory source and
26329 detection of bitwise operations equivalent to load in target
26331 (execute_optimize_bswap): Likewise. Also move its leading comment back
26332 in place and split statement transformation into ...
26333 (bswap_replace): This.
26335 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
26337 PR rtl-optimization/61215
26338 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
26339 simplify_gen_subreg until final substitution.
26341 2014-05-23 Alan Modra <amodra@gmail.com>
26344 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
26345 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
26346 Use "Y" constraint rather than "m".
26348 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
26350 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
26352 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
26353 New function declaration.
26354 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
26355 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
26356 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
26357 (aarch64_init_builtins) : Initialize builtins
26358 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
26359 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
26360 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
26361 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
26362 and __builtins_aarch64_set_fpsr.
26363 (aarch64_atomic_assign_expand_fenv): New function.
26364 * config/aarch64/aarch64.md (set_fpcr): New pattern.
26365 (get_fpcr) : Likewise.
26366 (set_fpsr) : Likewise.
26367 (get_fpsr) : Likewise.
26368 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
26369 and UNSPECV_SET_FPSR.
26370 * doc/extend.texi (AARCH64 Built-in Functions) : Document
26371 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
26372 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
26374 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
26376 PR rtl-optimization/60969
26377 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
26378 constraints. Set up mem cost for NO_REGS case.
26380 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
26382 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
26384 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
26386 * config/darwin.c: Include "lto-section-names.h".
26387 (LTO_SEGMENT_NAME): Don't define.
26388 * config/i386/winnt.c: Include "lto-section-names.h".
26389 * lto-streamer.c: Include "lto-section-names.h".
26390 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
26391 * lto-wrapper.c: Include "lto-section-names.h".
26392 (LTO_SECTION_NAME_PREFIX): Don't define.
26393 * lto-section-names.h: New file.
26394 * cgraphunit.c: Include "lto-section-names.h".
26396 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
26398 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
26400 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
26403 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
26405 2014-05-22 Nick Clifton <nickc@redhat.com>
26407 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
26409 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
26411 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
26412 -> (T)A transformation to integer types.
26414 2014-05-22 Teresa Johnson <tejohnson@google.com>
26416 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
26417 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
26418 (gcov_rewrite): Use gcov_nonruntime_assert.
26419 (gcov_open): Ditto.
26420 (gcov_write_words): Ditto.
26421 (gcov_write_length): Ditto.
26422 (gcov_read_words): Use gcov_nonruntime_assert, and remove
26423 gcc_assert from IN_LIBGCOV code.
26424 (gcov_read_summary): Use gcov_error to flag profile corruption.
26425 (gcov_sync): Use gcov_nonruntime_assert.
26426 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
26427 (gcov_histo_index): Use gcov_nonruntime_assert.
26428 (static void gcov_histogram_merge): Ditto.
26429 (compute_working_sets): Ditto.
26430 * gcov-io.h (gcov_nonruntime_assert): Define.
26431 (gcov_error): Define for !IN_LIBGCOV
26433 2014-05-22 Richard Biener <rguenther@suse.de>
26435 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
26436 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
26437 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
26438 and deallocation site.
26439 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26440 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
26441 passing through the incoming points-to set.
26442 (handle_lhs_call): Use flags argument instead of recomputing it.
26443 (find_func_aliases_for_call): Call handle_lhs_call with proper
26446 2014-05-22 Jakub Jelinek <jakub@redhat.com>
26448 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
26449 all padding bits in REAL_VALUE_TYPE are cleared.
26451 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
26453 Cleanup and improve multipass_dfa_lookahead_guard
26454 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
26455 (core2i7_first_cycle_multipass_begin,)
26456 (core2i7_first_cycle_multipass_issue,)
26457 (core2i7_first_cycle_multipass_backtrack): Update signature.
26458 * config/ia64/ia64.c
26459 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
26460 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
26461 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
26463 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
26464 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
26466 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
26468 * doc/tm.texi: Regenerate.
26470 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
26471 * haifa-sched.c (ready_try): Make signed to allow negative values.
26472 (rebug_ready_list_1): Update.
26473 (choose_ready): Simplify.
26474 (sched_extend_ready_list): Update.
26476 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
26478 Remove IA64 speculation tweaking flags
26479 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
26480 speculation tuning flags.
26481 (msched-prefer-non-data-spec-insns,)
26482 (msched-prefer-non-control-spec-insns): Obsolete options.
26483 * haifa-sched.c (choose_ready): Remove handling of
26484 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
26485 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
26486 and PREFER_NON_DATA_SPEC.
26487 * sel-sched.c (process_spec_exprs): Remove handling of
26488 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
26490 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
26492 Improve scheduling debug output
26493 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
26494 (advance_one_cycle): Update.
26495 (schedule_insn, queue_to_ready): Add debug printouts.
26496 (debug_ready_list_1): New static function.
26497 (debug_ready_list): Update.
26498 (max_issue): Add debug printouts.
26499 (dump_insn_stream): New static function.
26500 (schedule_block): Use it. Also better indent printouts.
26502 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
26504 Fix sched_insn debug counter
26505 * haifa-sched.c (schedule_insn): Update.
26506 (struct haifa_saved_data): Add nonscheduled_insns_begin.
26507 (save_backtrack_point, restore_backtrack_point): Update.
26508 (first_nonscheduled_insn): New static function.
26509 (queue_to_ready, choose_ready): Use it.
26510 (schedule_block): Init nonscheduled_insns_begin.
26511 (sched_emit_insn): Update.
26514 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
26516 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
26518 (aarch64_secondary_reload) : LikeWise.
26519 (aarch64_class_max_nregs) : Remove CORE_REGS.
26520 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
26521 (REG_CLASS_NAMES) : Likewise.
26522 (REG_CLASS_CONTENTS) : LikeWise.
26523 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
26525 2014-05-21 Guozhi Wei <carrot@google.com>
26528 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
26530 (vqdmulhq_n_s16): Likewise.
26532 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
26534 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
26536 2014-05-21 Marek Polacek <polacek@redhat.com>
26539 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
26541 2014-05-21 Martin Jambor <mjambor@suse.cz>
26543 * doc/invoke.texi (Optimize Options): Document parameters
26544 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
26545 ipa-cp-array-index-hint-bonus.
26547 2014-05-21 Mark Wielaard <mjw@redhat.com>
26550 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
26551 version >= 3 or not strict DWARF.
26552 * langhooks.h (struct lang_hooks_for_types): Add
26553 enum_underlying_base_type.
26554 * langhooks.c (lhd_enum_underlying_base_type): New function.
26555 * gcc/langhooks.h (struct lang_hooks_for_types): Add
26556 enum_underlying_base_type.
26557 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
26558 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
26559 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
26561 2014-05-21 Richard Biener <rguenther@suse.de>
26563 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
26565 2014-05-21 John Marino <gnugcc@marino.st>
26567 * config.gcc (*-*-dragonfly*): New target.
26568 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
26569 * configure: Regenerate.
26570 * config/dragonfly-stdint.h: New.
26571 * config/dragonfly.h: New.
26572 * config/dragonfly.opt: New.
26573 * config/i386/dragonfly.h: New.
26574 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
26576 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
26578 * tree.def (VOID_CST): New.
26579 * tree-core.h (TI_VOID): New.
26580 * tree.h (void_node): New.
26581 * tree.c (tree_node_structure_for_code, tree_code_size)
26582 (iterative_hash_expr): Handle VOID_CST.
26583 (build_common_tree_nodes): Initialize void_node.
26585 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
26587 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
26589 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
26591 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
26594 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
26595 flag_reorder_blocks_and_partition.
26596 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
26598 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
26601 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
26603 (*addc_r_t): Add new insn_and_split.
26605 2014-05-21 Jakub Jelinek <jakub@redhat.com>
26607 PR middle-end/61252
26608 * omp-low.c (handle_simd_reference): New function.
26609 (lower_rec_input_clauses): Use it. Defer adding reference
26610 initialization even for reduction without placeholder if in simd,
26611 handle it properly later on.
26613 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
26615 PR tree-optimization/60899
26616 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
26617 assume all static symbols will have definition wile parsing and
26618 check the do have definition later in compilation; check that
26619 variable referring symbol will be output before concluding that
26620 reference is safe; be conservative for referring local statics;
26621 be more precise about when comdat is output in other partition.
26623 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
26626 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
26628 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
26629 (ipa_inline): Loop inline_to_all_callers until no more aliases
26632 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
26634 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
26635 set writeonly flag only for vars actually written to.
26637 2014-05-20 Dehao Chen <dehao@google.com>
26639 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
26640 and callee count to get clone count.
26641 * tree-inline.c (expand_call_inline): Use callee count instead of bb
26642 count in copy_body.
26644 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
26646 PR rtl-optimization/61243
26647 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
26649 2014-05-20 Xinliang David Li <davidxl@google.com>
26651 * cgraphunit.c (walk_polymorphic_call_targets): Add
26652 dbgcnt and fopt-info support.
26653 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
26654 * ipa-devirt.c (ipa_devirt): Ditto.
26655 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
26656 * ipa.c (walk_polymorphic_call_targets): Ditto.
26657 * gimple-fold.c (fold_gimple_assign): Ditto.
26658 (gimple_fold_call): Ditto.
26659 * dbgcnt.def: New counter.
26661 2014-05-20 DJ Delorie <dj@redhat.com>
26663 * config/msp430/msp430.md (split): Don't allow subregs when
26664 splitting SImode adds.
26665 (andneghi): Fix subtraction logic.
26666 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
26668 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
26670 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
26672 * except.c (switch_to_exception_section, resolve_unique_section,
26673 get_named_text_section, default_function_rodata_section,
26674 align_variable, get_block_for_decl, default_section_type_flags):
26675 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
26676 * symtab.c (symtab_add_to_same_comdat_group,
26677 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
26678 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
26680 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
26681 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
26682 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
26683 (c6x_function_in_section_p): Likewise.
26684 * config/darwin.c (machopic_select_section): Likewise.
26685 * config/arm/arm.c (arm_function_in_section_p): Likewise.
26686 * config/mips/mips.c (mips_function_rodata_section): Likewise.
26687 * config/mep/mep.c (mep_select_section): LIkewise.
26688 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
26690 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
26692 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
26693 EH region of calls to pure functions that can throw an exception.
26694 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
26695 (copy_reference_ops_from_call): Also copy the EH region of the call if
26696 it can throw an exception.
26698 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26700 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
26701 nested VEC_SELECTs that are inverses of each other.
26703 2014-05-20 Richard Biener <rguenther@suse.de>
26705 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
26706 (extract_and_process_scc_for_name): not here.
26707 (cond_dom_walker::before_dom_children): Only process
26708 stmts that end the BB in interesting ways.
26709 (run_scc_vn): Mark param uses as visited.
26711 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26713 * config/arm/arm.md (arith_shiftsi): Do not predicate for
26716 2014-05-20 Nick Clifton <nickc@redhat.com>
26718 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
26719 (msp430_gimplify_va_arg_expr): New function.
26720 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
26722 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
26723 operand 0 in order to prevent confusion about the number of
26724 registers involved.
26726 2014-05-20 Richard Biener <rguenther@suse.de>
26728 PR tree-optimization/61221
26729 * tree-ssa-pre.c (el_to_update): Remove.
26730 (eliminate_dom_walker::before_dom_children): Handle released
26731 VDEFs by value-numbering them to the associated VUSE. Update
26732 stmt immediately for substituted call address.
26733 (eliminate): Remove delayed stmt updating code.
26734 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
26735 possibly late re-numbered vuses.
26736 (vn_reference_lookup_2): Adjust.
26737 (vn_reference_lookup_pieces): Likewise.
26738 (vn_reference_lookup): Likewise.
26740 2014-05-20 Richard Biener <rguenther@suse.de>
26742 * config.gcc: Remove need_64bit_hwint.
26743 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
26744 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
26746 * config.in: Regenerate.
26747 * configure: Likewise.
26749 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
26751 * doc/extend.texi: Create Label Attributes section,
26752 move all label attributes into it and reference it.
26754 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
26756 * arm.c (thumb1_reorg): When scanning backwards skip anything
26757 that's not a proper insn.
26759 2014-05-19 Richard Biener <rguenther@suse.de>
26761 PR tree-optimization/61221
26762 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
26763 Do nothing for unreachable blocks.
26764 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
26765 Improve unreachability detection.
26767 2014-05-19 Richard Biener <rguenther@suse.de>
26769 PR tree-optimization/61209
26770 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
26772 2014-05-19 Nick Clifton <nickc@redhat.com>
26774 * except.c (init_eh): Fix computation of builtin setjmp buffer
26775 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
26777 2014-05-19 Richard Biener <rguenther@suse.de>
26779 PR tree-optimization/61184
26780 * tree-vrp.c (is_negative_overflow_infinity): Use
26781 TREE_OVERFLOW_P and do that check first.
26782 (is_positive_overflow_infinity): Likewise.
26783 (is_overflow_infinity): Likewise.
26784 (vrp_operand_equal_p): Properly treat operands with
26785 differing overflow as not equal.
26787 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
26789 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
26790 shift simplification where it was intended.
26792 2014-05-19 Christian Bruel <christian.bruel@st.com>
26795 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
26797 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
26800 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
26803 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
26805 * reg-notes.def (CROSSING_JUMP): Likewise.
26806 * rtl.h (rtx_def): Update comment for jump flag.
26807 (CROSSING_JUMP_P): Define.
26808 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
26809 of a REG_CROSSING_JUMP note.
26810 * cfghooks.c (tidy_fallthru_edges): Likewise.
26811 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
26812 * emit-rtl.c (try_split): Likewise.
26813 * haifa-sched.c (sched_create_recovery_edges): Likewise.
26814 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
26815 * jump.c (redirect_jump_2): Likewise.
26816 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
26817 (relax_delay_slots): Likewise.
26818 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
26819 (bbit_di): Likewise.
26820 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
26821 * config/sh/sh.md (jump_compact): Likewise.
26822 * bb-reorder.c (rotate_loop): Likewise.
26823 (pass_duplicate_computed_gotos::execute): Likewise.
26824 (add_reg_crossing_jump_notes): Rename to...
26825 (update_crossing_jump_flags): ...this.
26826 (pass_partition_blocks::execute): Update accordingly.
26828 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
26830 * tree.h: Remove extraneous template <>.
26832 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
26834 * ipa.c (symtab_remove_unreachable_nodes): Remove
26835 symbol from comdat group if its body was eliminated.
26836 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
26837 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
26838 (symtab_unregister_node): ... this one.
26839 (verify_symtab_base): More strict checking of comdats.
26840 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
26842 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
26844 * tree-pass.h (make_pass_ipa_comdats): New pass.
26845 * timevar.def (TV_IPA_COMDATS): New timevar.
26846 * passes.def (pass_ipa_comdats): Add.
26847 * Makefile.in (OBJS): Add ipa-comdats.o
26848 * ipa-comdats.c: New file.
26850 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
26852 * ipa.c (update_visibility_by_resolution_info): New function.
26853 (function_and_variable_visibility): Use it.
26855 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
26857 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
26859 (FOR_EACH_DEFINED_SYMBOL): New macro.
26860 (varpool_first_static_initializer, varpool_next_static_initializer,
26861 varpool_first_defined_variable, varpool_next_defined_variable):
26863 (symtab_in_same_comdat_p): Correctly deal with inline functions.
26865 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
26867 * ggc-page.c (ggc_handle_finalizers): Add comment.
26869 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
26871 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
26872 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
26873 (ggc_internal_cleared_alloc): Likewise.
26874 * ggc-page.c (finalizer): New class.
26875 (vec_finalizer): Likewise.
26876 (globals::finalizers): New member.
26877 (globals::vec_finalizers): Likewise.
26878 (ggc_internal_alloc): Record the finalizer if any for the block being
26880 (ggc_handle_finalizers): New function.
26881 (ggc_collect): Call ggc_handle_finalizers.
26882 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
26884 (ggc_internal_cleared_alloc): Likewise.
26885 (finalize): New function.
26886 (need_finalization_p): Likewise.
26887 (ggc_alloc): Install the type's destructor as the finalizer if it
26888 might do something.
26889 (ggc_cleared_alloc): Likewise.
26890 (ggc_vec_alloc): Likewise.
26891 (ggc_cleared_vec_alloc): Likewise.
26893 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
26895 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
26897 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
26899 * alias.c (record_alias_subset): Adjust.
26900 * bitmap.c (bitmap_element_allocate): Likewise.
26901 (bitmap_gc_alloc_stat): Likewise.
26902 * cfg.c (init_flow): Likewise.
26903 (alloc_block): Likewise.
26904 (unchecked_make_edge): Likewise.
26905 * cfgloop.c (alloc_loop): Likewise.
26906 (flow_loops_find): Likewise.
26907 (rescan_loop_exit): Likewise.
26908 * cfgrtl.c (init_rtl_bb_info): Likewise.
26909 * cgraph.c (insert_new_cgraph_node_version): Likewise.
26910 (cgraph_allocate_node): Likewise.
26911 (cgraph_create_edge_1): Likewise.
26912 (cgraph_allocate_init_indirect_info): Likewise.
26913 * cgraphclones.c (cgraph_clone_edge): Likewise.
26914 * cgraphunit.c (add_asm_node): Likewise.
26915 (init_lowered_empty_function): Likewise.
26916 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
26917 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
26918 (alpha_use_linkage): Likewise.
26919 * config/arc/arc.c (arc_init_machine_status): Likewise.
26920 * config/arm/arm.c (arm_init_machine_status): Likewise.
26921 * config/avr/avr.c (avr_init_machine_status): Likewise.
26922 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
26923 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
26924 * config/cris/cris.c (cris_init_machine_status): Likewise.
26925 * config/darwin.c (machopic_indirection_name): Likewise.
26926 (darwin_build_constant_cfstring): Likewise.
26927 (darwin_enter_string_into_cfstring_table): Likewise.
26928 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
26929 * config/frv/frv.c (frv_init_machine_status): Likewise.
26930 * config/i386/i386.c (get_dllimport_decl): Likewise.
26931 (ix86_init_machine_status): Likewise.
26932 (assign_386_stack_local): Likewise.
26933 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
26934 (i386_pe_maybe_record_exported_symbol): Likewise.
26935 (i386_pe_record_stub): Likewise.
26936 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
26937 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
26938 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
26939 (m32c_note_pragma_address): Likewise.
26940 * config/mep/mep.c (mep_init_machine_status): Likewise.
26941 (mep_note_pragma_flag): Likewise.
26942 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
26943 (mips16_local_alias): Likewise.
26944 (mips_init_machine_status): Likewise.
26945 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
26946 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
26947 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
26948 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
26949 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
26950 * config/pa/pa.c (pa_init_machine_status): Likewise.
26951 (pa_get_deferred_plabel): Likewise.
26952 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
26953 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
26954 (rs6000_init_machine_status): Likewise.
26955 (output_toc): Likewise.
26956 * config/s390/s390.c (s390_init_machine_status): Likewise.
26957 * config/score/score.c (score_output_external): Likewise.
26958 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
26959 * config/spu/spu.c (spu_init_machine_status): Likewise.
26960 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
26961 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
26962 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
26963 * coverage.c (coverage_end_function): Likewise.
26964 * dbxout.c (dbxout_init): Likewise.
26965 * doc/gty.texi: Don't mention variable_size attribute.
26966 * dwarf2cfi.c (new_cfi): Adjust.
26967 (new_cfi_row): Likewise.
26968 (copy_cfi_row): Likewise.
26969 (create_cie_data): Likewise.
26970 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
26971 (new_loc_descr): Likewise.
26972 (find_AT_string_in_table): Likewise.
26973 (add_addr_table_entry): Likewise.
26974 (new_die): Likewise.
26975 (add_var_loc_to_decl): Likewise.
26976 (clone_die): Likewise.
26977 (clone_as_declaration): Likewise.
26978 (break_out_comdat_types): Likewise.
26979 (new_loc_list): Likewise.
26980 (add_loc_descr_to_each): Likewise.
26981 (add_location_or_const_value_attribute): Likewise.
26982 (add_linkage_name): Likewise.
26983 (lookup_filename): Likewise.
26984 (dwarf2out_var_location): Likewise.
26985 (new_line_info_table): Likewise.
26986 (dwarf2out_init): Likewise.
26987 (mem_loc_descriptor): Likewise.
26988 (loc_descriptor): Likewise.
26989 (add_const_value_attribute): Likewise.
26990 (tree_add_const_value_attribute): Likewise.
26991 (comp_dir_string): Likewise.
26992 (dwarf2out_vms_debug_main_pointer): Likewise.
26993 (string_cst_pool_decl): Likewise.
26994 * emit-rtl.c (set_mem_attrs): Likewise.
26995 (get_reg_attrs): Likewise.
26996 (start_sequence): Likewise.
26997 (init_emit): Likewise.
26998 (init_emit_regs): Likewise.
26999 * except.c (init_eh_for_function): Likewise.
27000 (gen_eh_region): Likewise.
27001 (gen_eh_region_catch): Likewise.
27002 (gen_eh_landing_pad): Likewise.
27003 (add_call_site): Likewise.
27004 * function.c (add_frame_space): Likewise.
27005 (insert_temp_slot_address): Likewise.
27006 (assign_stack_temp_for_type): Likewise.
27007 (get_hard_reg_initial_val): Likewise.
27008 (allocate_struct_function): Likewise.
27009 (prepare_function_start): Likewise.
27010 (types_used_by_var_decl_insert): Likewise.
27011 * gengtype.c (variable_size_p): Remove function.
27012 (enum alloc_quantity): Remove enum.
27013 (write_typed_alloc_def): Remove function.
27014 (write_typed_struct_alloc_def): Likewise.
27015 (write_typed_typedef_alloc_def): Likewise.
27016 (write_typed_alloc_defns): Likewise.
27018 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
27019 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
27020 * ggc.h (ggc_alloc): new function.
27021 (ggc_cleared_alloc): Likewise.
27022 (ggc_vec_alloc): Template on type of vector element, and remove
27023 element size argument.
27024 (ggc_cleared_vec_alloc): Likewise.
27025 * gimple.c (gimple_build_omp_for): Adjust.
27026 (gimple_copy): Likewise.
27027 * ipa-cp.c (get_replacement_map): Likewise.
27028 (find_aggregate_values_for_callers_subset): Likewise.
27029 (known_aggs_to_agg_replacement_list): Likewise.
27030 * ipa-devirt.c (get_odr_type): Likewise.
27031 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
27032 (read_agg_replacement_chain): Likewise.
27033 * loop-iv.c (get_simple_loop_desc): Likewise.
27034 * lto-cgraph.c (input_node_opt_summary): Likewise.
27035 * lto-section-in.c (lto_new_in_decl_state): Likewise.
27036 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
27037 (input_eh_region): Likewise.
27038 (input_eh_lp): Likewise.
27039 (input_cfg): Likewise.
27040 * optabs.c (set_optab_libfunc): Likewise.
27041 (init_tree_optimization_optabs): Likewise.
27042 (set_conv_libfunc): Likewise.
27043 * passes.c (do_per_function_toporder): Likewise.
27044 * rtl.h: Don't use variable_size gty attribute.
27045 * sese.c (if_region_set_false_region): Adjust.
27046 * stringpool.c (gt_pch_save_stringpool): Likewise.
27047 * target-globals.c (save_target_globals): Likewise.
27048 * toplev.c (general_init): Likewise.
27049 * trans-mem.c (record_tm_replacement): Likewise.
27050 (split_bb_make_tm_edge): Likewise.
27051 * tree-cfg.c (move_sese_region_to_fn): Likewise.
27052 * tree-data-ref.h (lambda_vector_new): Likewise.
27053 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
27054 * tree-iterator.c (tsi_link_before): Likewise.
27055 (tsi_link_after): Likewise.
27056 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
27057 * tree-ssa-loop-niter.c (record_estimate): Likewise.
27058 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
27059 * tree-ssa-operands.h: Don't use variable_size gty attribute.
27060 * tree-ssa.c (init_tree_ssa): Adjust.
27061 * tree-ssanames.c (set_range_info): Likewise.
27062 (get_ptr_info): Likewise.
27063 (duplicate_ssa_name_ptr_info): Likewise.
27064 (duplicate_ssa_name_range_info): Likewise.
27065 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
27066 (unpack_ts_fixed_cst_value_fields): Likewise.
27067 * tree.c (build_fixed): Likewise.
27068 (build_real): Likewise.
27069 (build_string): Likewise.
27070 (decl_priority_info): Likewise.
27071 (decl_debug_expr_insert): Likewise.
27072 (decl_value_expr_insert): Likewise.
27073 (decl_debug_args_insert): Likewise.
27074 (type_hash_add): Likewise.
27075 (build_omp_clause): Likewise.
27076 * ubsan.c (decl_for_type_insert): Likewise.
27077 * varasm.c (get_unnamed_section): Likewise.
27078 (get_noswitch_section): Likewise.
27079 (get_section): Likewise.
27080 (get_block_for_section): Likewise.
27081 (create_block_symbol): Likewise.
27082 (build_constant_desc): Likewise.
27083 (create_constant_pool): Likewise.
27084 (force_const_mem): Likewise.
27085 (record_tm_clone_pair): Likewise.
27086 * varpool.c (varpool_create_empty_node): Likewise.
27088 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
27090 * dwarf2out.c (tree_add_const_value_attribute): Call
27091 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
27092 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
27093 instead of ggc_internal_<x>alloc_stat.
27094 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
27095 (ggc_realloc): Likewise.
27096 * ggc-none.c (ggc_internal_alloc): Likewise.
27097 (ggc_internal_cleared_alloc): Likewise.
27098 * ggc-page.c: Likewise.
27099 * ggc.h (ggc_internal_alloc_stat): Likewise.
27100 (ggc_internal_alloc): Remove macro.
27101 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
27102 (ggc_internal_cleared_alloc): Remove macro.
27103 (GGC_RESIZEVEC): Adjust.
27104 (ggc_resizevar): Remove macro.
27105 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
27106 (ggc_internal_cleared_vec_alloc_stat): Likewise.
27107 (ggc_internal_vec_cleared_alloc): Remove macro.
27108 (ggc_alloc_atomic_stat): Drop _stat suffix.
27109 (ggc_alloc_atomic): Remove macro.
27110 (ggc_alloc_cleared_atomic): Remove macro.
27111 (ggc_alloc_string_stat): Drop _stat suffix.
27112 (ggc_alloc_string): Remove macro.
27113 (ggc_alloc_rtx_def_stat): Adjust.
27114 (ggc_alloc_tree_node_stat): Likewise.
27115 (ggc_alloc_cleared_tree_node_stat): Likewise.
27116 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
27117 (ggc_alloc_cleared_simd_clone_stat): Likewise.
27118 * gimple.c (gimple_build_omp_for): Likewise.
27119 (gimple_copy): Likewise.
27120 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
27121 * toplev.c (realloc_for_line_map): Adjust.
27122 * tree-data-ref.h (lambda_vector_new): Likewise.
27123 * tree-phinodes.c (allocate_phi_node): Likewise.
27124 * tree.c (grow_tree_vec_stat): Likewise.
27125 * vec.h (va_gc::reserve): Adjust.
27127 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
27129 * config/microblaze/microblaze.c (break_handler): New Declaration.
27130 (microblaze_break_function_p,microblaze_is_break_handler): New.
27131 (compute_frame_size): Use microblaze_break_function_p.
27132 Add the test of break_handler.
27133 (microblaze_function_prologue) : Add the test of variable
27134 break_handler. Check the fnname by BREAK_HANDLER_NAME.
27135 (microblaze_function_epilogue) : Add the test of break_handler.
27136 (microblaze_globalize_label) : Add the test of break_handler.
27137 Check the name by BREAK_HANDLER_NAME.
27139 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
27141 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
27142 microblaze_is_break_handler test.
27143 (call_internal1,call_value_intern): Use microblaze_break_function_p.
27144 Use SYMBOL_REF_DECL.
27146 * config/microblaze/microblaze-protos.h
27147 (microblaze_break_function_p,microblaze_is_break_handler):
27150 * doc/extend.texi (MicroBlaze break_handler Functions): Document
27151 new MicroBlaze break_handler functions.
27153 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
27155 * doc/extend.texi (Size of an asm): Move node text according
27156 to its @menu entry position.
27158 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
27160 PR tree-optimization/61140
27161 PR tree-optimization/61150
27162 PR tree-optimization/61197
27163 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
27165 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
27167 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
27169 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
27171 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
27172 __SIZEOF_INT128__ is defined.
27174 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
27176 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
27177 (rs6000_delegitimize_address): Use it.
27179 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
27181 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
27182 inplace argument. Store the new address in the original MEM when true.
27183 * emit-rtl.c (change_address_1): Likewise.
27184 (adjust_address_1, adjust_automodify_address_1, offset_address):
27185 Update accordingly.
27186 * rtl.h (plus_constant): Add an inplace argument.
27187 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
27188 when true. Avoid generating (plus X (const_int 0)).
27189 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
27190 in-place. Pass true to plus_constant.
27191 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
27193 2014-05-16 Dehao Chen <dehao@google.com>
27195 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
27197 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
27200 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
27202 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
27204 2014-05-16 Dehao Chen <dehao@google.com>
27206 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
27207 optimize_function_for_size_p.
27208 * regs.h (REG_FREQ_FROM_BB): Likewise.
27210 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
27213 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
27214 negt_reg_operand cases.
27215 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
27217 * config/sh/predicates.md (cbranch_treg_value): Simplify.
27219 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
27221 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
27224 2014-05-16 David Malcolm <dmalcolm@redhat.com>
27227 2014-04-29 David Malcolm <dmalcolm@redhat.com>
27229 * tree-cfg.c (dump_function_to_file): Dump the return type of
27230 functions, in a line to itself before the function body, mimicking
27231 the layout of a C function.
27233 2014-05-16 Dehao Chen <dehao@google.com>
27235 * cfghooks.c (make_forwarder_block): Use direct computation to
27236 get fall-through edge's count and frequency.
27238 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
27240 * config/arc/arc.c (arc_init): Fix typo in error message.
27241 * config/i386/i386.c (ix86_expand_builtin): Likewise.
27242 (split_stack_prologue_scratch_regno): Likewise.
27243 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
27244 word from error message.
27246 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
27248 * ira-costs.c: Fix typo in comment.
27250 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
27252 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
27254 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
27256 * varpool.c (dump_varpool_node): Dump write-only flag.
27257 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
27259 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
27260 write-only variables.
27261 * ipa.c (process_references): New function.
27262 (set_readonly_bit): New function.
27263 (set_writeonly_bit): New function.
27264 (clear_addressable_bit): New function.
27265 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
27266 fix handling of aliases.
27267 * cgraph.h (struct varpool_node): Add writeonly flag.
27269 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
27271 PR rtl-optimization/60969
27272 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
27273 Calculate costs for this case.
27275 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
27277 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
27278 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
27280 2014-05-16 Richard Biener <rguenther@suse.de>
27282 PR tree-optimization/61194
27283 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
27284 bool patterns ending in a COND_EXPR.
27286 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27288 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
27290 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27292 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
27293 where we were unable to cost an RTX.
27295 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27297 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
27300 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27301 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27303 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
27305 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27306 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27308 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
27309 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
27311 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27312 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27314 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
27317 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27318 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27320 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
27323 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27324 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27326 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
27327 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
27329 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27330 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27332 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
27333 rotates and shifts.
27335 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27336 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27338 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
27339 ZERO_EXTEND and SIGN_EXTEND better.
27341 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27342 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27344 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
27345 logical operations.
27347 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27348 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27350 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
27351 costs when costing loads and stores to memory.
27353 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27354 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
27356 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
27359 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27361 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
27363 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27364 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27366 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
27368 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
27370 (aarch64_rtx_mult_cost): New.
27371 (aarch64_rtx_costs): Use it, refactor as appropriate.
27373 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27374 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
27376 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
27377 emit instructions, return number of instructions which would
27379 (aarch64_add_constant): Update call to aarch64_build_constant.
27380 (aarch64_output_mi_thunk): Likewise.
27381 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
27384 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27386 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
27387 (TARGET_RTX_COSTS): Call it.
27389 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27391 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
27392 (cortexa57_vector_cost): Likewise.
27393 (cortexa57_tunings): Use them.
27395 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27397 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
27398 (cpu_addrcost_table): Use it.
27399 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
27400 (aarch64_address_cost): Rewrite using aarch64_classify_address,
27403 2014-05-16 Richard Biener <rguenther@suse.de>
27405 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
27406 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
27407 (visit_phi): Ignore edges marked as not executable.
27408 (class cond_dom_walker): New.
27409 (cond_dom_walker::before_dom_children): Value-number
27410 control statements and mark successor edges as not
27411 executable if possible.
27412 (run_scc_vn): First walk all control statements in
27413 dominator order, marking edges as not executable.
27414 * tree-inline.c (copy_edges_for_bb): Be not confused
27415 about random edge flags.
27417 2014-05-16 Richard Biener <rguenther@suse.de>
27419 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
27421 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
27424 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
27425 (__TM_simple_begin): Use it.
27426 (__TM_begin): Likewise.
27428 2014-05-15 Martin Jambor <mjambor@suse.cz>
27431 * ipa-prop.c (update_indirect_edges_after_inlining): Check
27432 type_preserved flag when the indirect edge is polymorphic.
27434 2014-05-15 Martin Jambor <mjambor@suse.cz>
27436 PR tree-optimization/61090
27437 * tree-sra.c (sra_modify_expr): Pass the current gsi to
27438 build_ref_for_model.
27440 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27442 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
27443 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
27445 2014-05-15 Jakub Jelinek <jakub@redhat.com>
27447 PR tree-optimization/61158
27448 * fold-const.c (fold_binary_loc): If X is zero-extended and
27449 shiftc >= prec, make sure zerobits is all ones instead of
27450 invoking undefined behavior.
27452 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27454 * regcprop.h: New file.
27455 * regcprop.c (skip_debug_insn_p): New decl.
27456 (replace_oldest_value_reg): Check skip_debug_insn_p.
27457 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
27458 * shrink-wrap.c: Include regcprop.h.
27459 (prepare_shrink_wrap): Call
27460 copyprop_hardreg_forward_bb_without_debug_insn.
27462 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27464 * shrink-wrap.h: Update comment.
27465 * shrink-wrap.c: Update comment.
27466 (next_block_for_reg): Rename to live_edge_for_reg.
27467 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
27468 (move_insn_for_shrink_wrap): Split live_edge.
27469 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
27471 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
27473 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
27475 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
27476 * config/sparc/sparc.md (fptype_ut699): New attribute.
27477 (in_branch_delay): Return false if -mfix-ut699 is specified and
27478 fptype_ut699 is set to single.
27479 (truncdfsf2): Add fptype_ut699 attribute.
27480 (fix_truncdfsi2): Likewise.
27481 (floatsisf2): Change fptype attribute.
27482 (fix_truncsfsi2): Likewise.
27483 (negtf2_notv9): Delete.
27484 (negtf2_v9): Likewise.
27485 (negtf2_hq): New instruction.
27486 (negtf2): New instruction and splitter.
27487 (negdf2_notv9): Rewrite.
27488 (abstf2_notv9): Delete.
27489 (abstf2_hq_v9): Likewise.
27490 (abstf2_v9): Likewise.
27491 (abstf2_hq): New instruction.
27492 (abstf2): New instruction and splitter.
27493 (absdf2_notv9): Rewrite.
27495 2014-05-14 Cary Coutant <ccoutant@google.com>
27498 * opts.c (common_handle_option): Don't special-case "-g".
27499 (set_debug_level): Default to at least level 2 with "-g".
27501 2014-05-14 DJ Delorie <dj@redhat.com>
27503 * config/msp430/msp430.c (msp430_builtin): Add
27504 MSP430_BUILTIN_DELAY_CYCLES.
27505 (msp430_init_builtins): Register void __delay_cycles(long long).
27506 (msp430_builtin_decl): Add it.
27507 (cg_magic_constant): New.
27508 (msp430_expand_delay_cycles): New.
27509 (msp430_expand_builtin): Call it.
27510 (msp430_print_operand_raw): Change integer printing from "int" to
27512 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
27513 (delay_cycles_start): New.
27514 (delay_cycles_end): New.
27515 (delay_cycles_32): New.
27516 (delay_cycles_32x): New.
27517 (delay_cycles_16): New.
27518 (delay_cycles_16x): New.
27519 (delay_cycles_2): New.
27520 (delay_cycles_1): New.
27521 * doc/extend.texi: Document __delay_cycles().
27523 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
27525 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
27526 length attribute computation.
27528 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
27531 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
27533 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
27536 * config/sparc/sparc.md: Fix types of low and high in DI constant
27537 splitter. Use gen_int_mode in some other splitters.
27539 2014-05-14 Martin Jambor <mjambor@suse.cz>
27542 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
27544 2014-05-14 James Norris <jnorris@codesourcery.com>
27546 * omp-low.c (expand_parallel_call): Remove shadow variable.
27547 (expand_omp_taskreg): Likewise.
27549 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
27551 * common/config/i386/i386-common.c
27552 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
27553 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
27554 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
27555 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
27556 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
27557 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
27558 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
27559 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
27560 xsavecintrin.h, xsavesintrin.h.
27561 (x86_64-*-*): Ditto.
27562 * config/i386/clflushoptintrin.h: New.
27563 * config/i386/xsavecintrin.h: Ditto.
27564 * config/i386/xsavesintrin.h: Ditto.
27565 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
27566 (bit_XSAVES): Ditto.
27567 (bit_XSAVES): Ditto.
27568 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
27569 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
27571 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27572 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
27573 OPTION_MASK_ISA_XSAVES.
27574 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
27575 -mxsavec, -mxsaves.
27576 (PTA_CLFLUSHOPT) Define.
27577 (PTA_XSAVEC): Ditto.
27578 (PTA_XSAVES): Ditto.
27579 (ix86_option_override_internal): Handle new options.
27580 (ix86_valid_target_attribute_inner_p): Ditto.
27581 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
27582 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
27583 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
27584 (bdesc_special_args): Add __builtin_ia32_xsaves,
27585 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
27586 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
27587 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
27588 (ix86_expand_builtin): Handle new builtins.
27589 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
27590 (TARGET_CLFLUSHOPT_P): Ditto.
27591 (TARGET_XSAVEC): Ditto.
27592 (TARGET_XSAVEC_P): Ditto.
27593 (TARGET_XSAVES): Ditto.
27594 (TARGET_XSAVES_P): Ditto.
27595 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
27596 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
27597 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
27599 (ANY_XRSTOR64): Ditto.
27601 (xrstor): Change into <xrstor>.
27602 (xrstor_rex64): Change into <xrstor>_rex64.
27603 (xrstor64): Change into <xrstor>64
27605 * config/i386/i386.opt (mclflushopt): New.
27608 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
27610 * doc/invoke.texi: Document new options.
27612 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
27614 PR rtl-optimization/60866
27615 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
27616 Default it to -1. Pass it down to init_simplejump_data.
27617 (init_simplejump_data): New parameter old_seqno. Pass it down
27618 to get_seqno_for_a_jump.
27619 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
27620 initializing new jump seqno as a last resort. Add comment.
27621 (sel_redirect_edge_and_branch): Save old seqno of the conditional
27622 jump and pass it down to sel_init_new_insn.
27623 (sel_redirect_edge_and_branch_force): Likewise.
27625 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
27627 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
27628 shifted values to avoid build warning.
27630 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
27632 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
27633 * cfgrtl.c (rtl_merge_blocks): Fix comment.
27634 (cfg_layout_merge_blocks): Likewise.
27635 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
27637 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
27639 PR rtl-optimization/60901
27640 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
27641 bb predecessor belongs to the same scheduling region. Adjust comment.
27643 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
27645 * doc/sourcebuild.texi: (dfp_hw): Document.
27646 (p8vector_hw): Likewise.
27647 (powerpc_eabi_ok): Likewise.
27648 (powerpc_elfv2): Likewise.
27649 (powerpc_htm_ok): Likewise.
27650 (ppc_recip_hw): Likewise.
27651 (vsx_hw): Likewise.
27653 2014-05-13 Cary Coutant <ccoutant@google.com>
27655 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
27657 2014-05-13 David Malcolm <dmalcolm@redhat.com>
27659 * gengtype-parse.c (require3): Eliminate in favor of...
27661 (require_template_declaration): Update to support optional single *
27664 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
27665 (create_user_defined_type): Handle a single level of explicit
27666 pointerness within template arguments.
27667 (struct write_types_data): Add field "kind".
27668 (filter_type_name): Handle "*" character.
27669 (write_user_func_for_structure_ptr): Require a write_types_data
27670 rather than just a prefix string, so that we can look up the kind
27671 of the wtd and use it as an index into wrote_user_func_for_ptr,
27672 ensuring that such functions are written at most once. Support
27673 subclasses by invoking the marking function of the ultimate base class.
27674 (write_user_func_for_structure_body): Require a write_types_data
27675 rather than just a prefix string, so that we can pass this to
27676 write_user_func_for_structure_ptr.
27677 (write_func_for_structure): Likewise.
27678 (ggc_wtd): Add initializer of new "kind" field.
27679 (pch_wtd): Likewise.
27681 * gengtype.h (enum write_types_kinds): New.
27682 (struct type): Add field wrote_user_func_for_ptr to the "s"
27685 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
27687 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
27688 instead of const_binop.
27689 (fold_binary_loc): Likewise.
27691 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
27693 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
27694 calculation to match get_ref_base_and_extent.
27696 2014-05-13 Catherine Moore <clm@codesourcery.com>
27697 Sandra Loosemore <sandra@codesourcery.com>
27699 * configure.ac: Fix assembly for explicit JALR relocation check.
27700 * configure: Regenerate.
27702 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27704 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
27705 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
27706 Remove associated type declarations and initialisations.
27707 (arm_expand_neon_builtin): Likewise.
27708 (neon_emit_pair_result_insn): Delete.
27709 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
27710 * config/arm/neon.md (neon_vtrn<mode>): Delete.
27711 (neon_vzip<mode>): Likewise.
27712 (neon_vuzp<mode>): Likewise.
27714 2014-05-13 Richard Biener <rguenther@suse.de>
27717 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
27718 it needs revisiting whether the call still may be tail-called.
27720 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27722 * rtl.def (SYMBOL_REF): Remove middle "0" field.
27723 * rtl.h (block_symbol): Reduce number of fields to 2.
27724 (rtx_def): Add u2.symbol_ref_flags.
27725 (SYMBOL_REF_FLAGS): Use it.
27726 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
27727 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
27728 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
27729 Lower index of SYMBOL_REF_DATA.
27730 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
27731 Print SYMBOL_REF_FLAGS at the same time.
27732 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
27734 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27736 * rtl.def (VAR_LOCATION): Remove "i" field.
27737 * rtl.h (rtx_def): Add u2.var_location_status.
27738 (PAT_VAR_LOCATION_STATUS): Use it.
27739 (gen_rtx_VAR_LOCATION): Declare.
27740 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
27741 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
27742 * var-tracking.c (emit_note_insn_var_location): Remove casts.
27744 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27746 * rtl.def (scratch): Fix outdated comment and remove "0" field.
27747 * gengtype.c (adjust_field_rtx_def): Update accordingly.
27749 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27751 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
27752 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
27753 * rtl.h (rtx_def): Add insn_uid to u2 field.
27754 (RTX_FLAG_CHECK8): Delete in favor of...
27755 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
27756 (INSN_DELETED_P): Update accordingly.
27757 (INSN_UID): Use u2.insn_uid.
27758 (INSN_CHAIN_CODE_P): Define.
27759 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
27760 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
27761 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
27762 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
27763 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
27764 indices accordingly.
27765 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
27766 Update indices for insn-chain rtxes.
27767 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
27768 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
27769 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
27770 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
27771 * combine.c (try_combine): Likewise.
27772 * ira.c (setup_prohibited_mode_move_regs): Likewise.
27774 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27776 * rtl.def (REG): Remove middle field.
27777 * rtl.h (rtx_def): Add orignal_regno to u2.
27778 (ORIGINAL_REGNO): Use it instead of field 1.
27779 (REG_ATTRS): Lower field index accordingly.
27780 * gengtype.c (adjust_field_rtx_def): Remove handling of
27781 ORIGINAL_REGNO. Move REG_ATTRS index down.
27782 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
27783 code that prints the REGNO.
27785 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27787 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
27790 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
27792 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
27794 2014-05-13 Bin Cheng <bin.cheng@arm.com>
27796 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
27797 (alloc_iv): Lower base expressions containing ADDR_EXPR.
27799 2014-05-13 Ian Bolton <ian.bolton@arm.com>
27801 * config/aarch64/aarch64-protos.h
27802 (aarch64_hard_regno_caller_save_mode): New prototype.
27803 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
27805 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
27807 2014-05-13 Christian Bruel <christian.bruel@st.com>
27809 * target.def (mode_switching): New hook vector.
27810 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
27811 (mode_exit, modepriority_to_mode): Likewise.
27812 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
27813 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
27814 * target.h: Include tm.h and hard-reg-set.h.
27815 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
27816 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
27817 * doc/tm.texi Regenerate.
27818 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
27819 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
27820 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
27821 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
27822 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
27823 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
27824 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
27825 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
27826 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
27827 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
27828 (ix86_emit_mode_set): Hookify.
27829 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
27831 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
27832 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
27833 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
27834 (epiphany_mode_priority_to_mode): Remove declaration.
27835 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
27836 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
27837 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
27839 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
27840 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
27841 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
27843 2014-05-13 Jakub Jelinek <jakub@redhat.com>
27846 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
27847 is const0_rtx, return immediately. Don't test count == 0 when
27850 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
27852 * Makefile.in: add shrink-wrap.o.
27853 * config/i386/i386.c: include "shrink-wrap.h"
27854 * function.c: Likewise.
27855 (requires_stack_frame_p, next_block_for_reg,
27856 move_insn_for_shrink_wrap, prepare_shrink_wrap,
27857 dup_block_and_redirect): Move to shrink-wrap.c
27858 (thread_prologue_and_epilogue_insns): Extract three code segments
27859 as functions in shrink-wrap.c
27860 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
27862 * shrink-wrap.c: New file.
27863 * shrink-wrap.h: New file.
27865 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
27867 * doc/extend.texi: Reflect current numbers of pragmas. Remove
27868 reference to Solaris.
27870 2014-05-12 Mike Stump <mikestump@comcast.net>
27873 * genattrtab.c (filename): Add.
27874 (convert_set_attr_alternative): Improve error message.
27875 (check_defs): Restore read_md_filename for error messages.
27876 (gen_insn): Save filename.
27878 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
27880 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
27881 -fno-local-ivars and -fivar-visibility.
27882 * c-family/c.opt: Make -Wshadow also implicitly enable
27885 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
27887 * doc/tm.texi: Remove reference to deleted macro.
27888 * doc/tm.texi.in: Likewise.
27890 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
27893 * config/avr/avr.c (avr_out_store_psi): Use correct constant
27896 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
27899 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
27900 * config/arm/aout.h (License): Same.
27901 * config/arm/bpabi.h (License): Same.
27902 * config/arm/elf.h (License): Same.
27903 * config/arm/linux-elf.h (License): Same.
27904 * config/arm/linux-gas.h (License): Same.
27905 * config/arm/netbsd-elf.h (License): Same.
27906 * config/arm/uclinux-eabi.h (License): Same.
27907 * config/arm/uclinux-elf.h (License): Same.
27908 * config/arm/vxworks.h (License): Same.
27910 2014-05-11 Jakub Jelinek <jakub@redhat.com>
27912 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
27913 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
27914 number of operands to 3.
27915 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
27916 * tree-nested.c (convert_nonlocal_omp_clauses,
27917 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
27918 * gimplify.c (gimplify_scan_omp_clauses): Handle
27919 OMP_CLAUSE_LINEAR_STMT.
27920 * omp-low.c (lower_rec_input_clauses): Fix typo.
27921 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
27922 cast between Fortran boolean_type_node and C _Bool if
27925 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
27927 PR tree-optimization/61136
27928 * wide-int.h (multiple_of_p): Define a version that doesn't return
27930 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
27931 integer_zerop/const_binop pair.
27932 (multiple_of_p): Likewise, converting both operands to widest_int
27935 2014-05-09 Teresa Johnson <tejohnson@google.com>
27937 * cgraphunit.c (analyze_functions): Use correct dump file.
27939 2014-05-09 Florian Weimer <fweimer@redhat.com>
27941 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
27943 (stack_protect_return_slot_p): New function.
27944 (expand_used_vars): Call stack_protect_decl_p and
27945 stack_protect_return_slot_p for -fstack-protector-strong.
27947 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
27948 Andrew Haley <aph@redhat.com>
27949 Richard Sandiford <rdsandiford@googlemail.com>
27951 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
27954 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
27956 PR middle-end/61111
27957 * fold-const.c (fold_binary_loc): Changed width of mask.
27959 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
27961 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
27962 unsigned int initializers for regno_in, regno_out.
27964 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
27967 * config/avr/avr.md (cc): Add new attribute set_vzn.
27968 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
27969 Set cc insn attribute to set_vzn instead of set_zn for alternatives
27970 with INC, DEC or NEG.
27971 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
27972 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
27973 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
27975 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27978 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27980 * wide-int.cc (UTItype): Define.
27981 (UDWtype): Define for appropriate W_TYPE_SIZE.
27983 2014-05-09 Richard Biener <rguenther@suse.de>
27985 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
27986 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
27987 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
27988 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
27989 ssa_propagate): Adjust.
27991 2014-05-08 Jeff Law <law@redhat.com>
27993 PR tree-optimization/61009
27994 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
27995 tri-state rather than a boolean. When a block is too big to
27996 thread through, inform caller via negative return value.
27997 (thread_across_edge): If a block was too big for normal threading,
27998 then it's too big for a joiner too, so remove temporary equivalences
27999 and return immediately.
28001 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
28002 Matthias Klose <doko@ubuntu.com>
28005 * optc-gen.awk: Fix option handling for -Wunused-parameter.
28007 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
28010 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
28012 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
28015 * config/alpha/alpha.c: Include gimple-iterator.h.
28016 (alpha_gimple_fold_builtin): New function. Move
28017 ALPHA_BUILTIN_UMULH folding from ...
28018 (alpha_fold_builtin): ... here.
28019 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
28021 2014-05-08 Wei Mi <wmi@google.com>
28024 * config/i386/i386.c (ix86_compute_frame_layout): Update
28025 preferred_stack_boundary for call, expanded from tls descriptor.
28026 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
28027 to depend on SP register.
28028 (*tls_local_dynamic_base_32_gnu): Ditto.
28029 (*tls_local_dynamic_32_once): Ditto.
28030 (tls_global_dynamic_64_<mode>): Set
28031 ix86_tls_descriptor_calls_expanded_in_cfun.
28032 (tls_local_dynamic_base_64_<mode>): Ditto.
28033 (tls_global_dynamic_32): Set
28034 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
28035 to depend on SP register.
28036 (tls_local_dynamic_base_32): Ditto.
28038 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28040 * config/arm/arm_neon.h: Update comment.
28041 * config/arm/neon-docgen.ml: Delete.
28042 * config/arm/neon-gen.ml: Delete.
28043 * doc/arm-neon-intrinsics.texi: Update comment.
28045 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28047 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
28049 (vand, vorr, veor, vorn, vbic): Remove.
28050 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
28052 (neon_vsub_unspec): Likewise.
28053 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
28055 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28057 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
28058 (vadd_s16): Likewise.
28059 (vadd_s32): Likewise.
28060 (vadd_f32): Likewise.
28061 (vadd_u8): Likewise.
28062 (vadd_u16): Likewise.
28063 (vadd_u32): Likewise.
28064 (vadd_s64): Likewise.
28065 (vadd_u64): Likewise.
28066 (vaddq_s8): Likewise.
28067 (vaddq_s16): Likewise.
28068 (vaddq_s32): Likewise.
28069 (vaddq_s64): Likewise.
28070 (vaddq_f32): Likewise.
28071 (vaddq_u8): Likewise.
28072 (vaddq_u16): Likewise.
28073 (vaddq_u32): Likewise.
28074 (vaddq_u64): Likewise.
28075 (vmul_s8): Likewise.
28076 (vmul_s16): Likewise.
28077 (vmul_s32): Likewise.
28078 (vmul_f32): Likewise.
28079 (vmul_u8): Likewise.
28080 (vmul_u16): Likewise.
28081 (vmul_u32): Likewise.
28082 (vmul_p8): Likewise.
28083 (vmulq_s8): Likewise.
28084 (vmulq_s16): Likewise.
28085 (vmulq_s32): Likewise.
28086 (vmulq_f32): Likewise.
28087 (vmulq_u8): Likewise.
28088 (vmulq_u16): Likewise.
28089 (vmulq_u32): Likewise.
28090 (vsub_s8): Likewise.
28091 (vsub_s16): Likewise.
28092 (vsub_s32): Likewise.
28093 (vsub_f32): Likewise.
28094 (vsub_u8): Likewise.
28095 (vsub_u16): Likewise.
28096 (vsub_u32): Likewise.
28097 (vsub_s64): Likewise.
28098 (vsub_u64): Likewise.
28099 (vsubq_s8): Likewise.
28100 (vsubq_s16): Likewise.
28101 (vsubq_s32): Likewise.
28102 (vsubq_s64): Likewise.
28103 (vsubq_f32): Likewise.
28104 (vsubq_u8): Likewise.
28105 (vsubq_u16): Likewise.
28106 (vsubq_u32): Likewise.
28107 (vsubq_u64): Likewise.
28108 (vand_s8): Likewise.
28109 (vand_s16): Likewise.
28110 (vand_s32): Likewise.
28111 (vand_u8): Likewise.
28112 (vand_u16): Likewise.
28113 (vand_u32): Likewise.
28114 (vand_s64): Likewise.
28115 (vand_u64): Likewise.
28116 (vandq_s8): Likewise.
28117 (vandq_s16): Likewise.
28118 (vandq_s32): Likewise.
28119 (vandq_s64): Likewise.
28120 (vandq_u8): Likewise.
28121 (vandq_u16): Likewise.
28122 (vandq_u32): Likewise.
28123 (vandq_u64): Likewise.
28124 (vorr_s8): Likewise.
28125 (vorr_s16): Likewise.
28126 (vorr_s32): Likewise.
28127 (vorr_u8): Likewise.
28128 (vorr_u16): Likewise.
28129 (vorr_u32): Likewise.
28130 (vorr_s64): Likewise.
28131 (vorr_u64): Likewise.
28132 (vorrq_s8): Likewise.
28133 (vorrq_s16): Likewise.
28134 (vorrq_s32): Likewise.
28135 (vorrq_s64): Likewise.
28136 (vorrq_u8): Likewise.
28137 (vorrq_u16): Likewise.
28138 (vorrq_u32): Likewise.
28139 (vorrq_u64): Likewise.
28140 (veor_s8): Likewise.
28141 (veor_s16): Likewise.
28142 (veor_s32): Likewise.
28143 (veor_u8): Likewise.
28144 (veor_u16): Likewise.
28145 (veor_u32): Likewise.
28146 (veor_s64): Likewise.
28147 (veor_u64): Likewise.
28148 (veorq_s8): Likewise.
28149 (veorq_s16): Likewise.
28150 (veorq_s32): Likewise.
28151 (veorq_s64): Likewise.
28152 (veorq_u8): Likewise.
28153 (veorq_u16): Likewise.
28154 (veorq_u32): Likewise.
28155 (veorq_u64): Likewise.
28156 (vbic_s8): Likewise.
28157 (vbic_s16): Likewise.
28158 (vbic_s32): Likewise.
28159 (vbic_u8): Likewise.
28160 (vbic_u16): Likewise.
28161 (vbic_u32): Likewise.
28162 (vbic_s64): Likewise.
28163 (vbic_u64): Likewise.
28164 (vbicq_s8): Likewise.
28165 (vbicq_s16): Likewise.
28166 (vbicq_s32): Likewise.
28167 (vbicq_s64): Likewise.
28168 (vbicq_u8): Likewise.
28169 (vbicq_u16): Likewise.
28170 (vbicq_u32): Likewise.
28171 (vbicq_u64): Likewise.
28172 (vorn_s8): Likewise.
28173 (vorn_s16): Likewise.
28174 (vorn_s32): Likewise.
28175 (vorn_u8): Likewise.
28176 (vorn_u16): Likewise.
28177 (vorn_u32): Likewise.
28178 (vorn_s64): Likewise.
28179 (vorn_u64): Likewise.
28180 (vornq_s8): Likewise.
28181 (vornq_s16): Likewise.
28182 (vornq_s32): Likewise.
28183 (vornq_s64): Likewise.
28184 (vornq_u8): Likewise.
28185 (vornq_u16): Likewise.
28186 (vornq_u32): Likewise.
28187 (vornq_u64): Likewise.
28189 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28191 * wide-int.cc (UTItype): Define.
28192 (UDWtype): Define for appropriate W_TYPE_SIZE.
28194 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
28196 PR tree-optimization/59100
28197 * tree-ssa-phiopt.c: Include tree-inline.h.
28198 (neutral_element_p, absorbing_element_p): New functions.
28199 (value_replacement): Handle conditional binary operations with a
28200 neutral or absorbing element.
28202 2014-05-08 Richard Biener <rguenther@suse.de>
28204 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
28205 folding the expression.
28206 (valueize_expr): Remove.
28207 (visit_reference_op_load): Do not valueize the result of
28209 (simplify_binary_expression): Likewise.
28210 (simplify_unary_expression): Likewise.
28212 2014-05-08 Richard Biener <rguenther@suse.de>
28214 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
28215 looking at TYPE_ARG_TYPES.
28217 2014-05-08 Richard Biener <rguenther@suse.de>
28219 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
28220 pointer propagation special-case.
28222 2014-05-08 Bin Cheng <bin.cheng@arm.com>
28224 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
28225 core part of address expressions.
28227 2014-05-08 Alan Modra <amodra@gmail.com>
28230 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
28231 loads and stores when -mno-strict-align at any alignment.
28232 (expand_block_clear): Similarly. Also correct calculation of
28235 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
28237 PR middle-end/39246
28238 * tree-complex.c (expand_complex_move): Keep line info when expanding
28240 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
28241 of complex expression. Use new argument to display correct location
28242 for values coming from phi statement.
28243 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
28244 (warn_uninitialized_phi): Pass location of phi argument to
28246 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
28247 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
28249 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
28251 * config/rs6000/predicates.md (indexed_address_mem): New.
28252 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
28253 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
28254 fpstore_ux, fpstore_u.
28255 (sign_extend, indexed, update): New.
28256 (cell_micro): Adjust.
28257 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
28258 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
28259 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
28260 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
28261 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
28262 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
28263 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
28264 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
28265 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
28266 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
28267 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
28268 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
28269 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
28270 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
28271 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
28273 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
28274 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
28275 *vsx_extract_<mode>_store): Adjust.
28276 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
28277 is_cracked_insn, insn_must_be_first_in_group,
28278 insn_must_be_last_in_group): Adjust.
28280 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
28282 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
28283 ppc440-fpstore): Adjust.
28284 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
28285 ppc476-fpstore): Adjust.
28286 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
28287 ppc601-fpstore): Adjust.
28288 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
28290 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
28292 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
28293 ppc7450-fpstore): Adjust.
28294 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
28295 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
28296 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
28298 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
28299 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
28300 cell-fpstore, cell-fpstore-update): Adjust.
28301 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
28302 ppce300c3_store, ppce300c3_fpstore): Adjust.
28303 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
28304 e500mc_fpstore): Adjust.
28305 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
28306 e500mc64_store, e500mc64_fpstore): Adjust.
28307 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
28308 e5500_fpstore): Adjust.
28309 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
28310 e6500_fpstore): Adjust.
28311 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
28313 * config/rs6000/power4.md (power4-load, power4-load-ext,
28314 power4-load-ext-update, power4-load-ext-update-indexed,
28315 power4-load-update-indexed, power4-load-update, power4-fpload,
28316 power4-fpload-update, power4-store, power4-store-update,
28317 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
28319 * config/rs6000/power5.md (power5-load, power5-load-ext,
28320 power5-load-ext-update, power5-load-ext-update-indexed,
28321 power5-load-update-indexed, power5-load-update, power5-fpload,
28322 power5-fpload-update, power5-store, power5-store-update,
28323 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
28325 * config/rs6000/power6.md (power6-load, power6-load-ext,
28326 power6-load-update, power6-load-update-indexed,
28327 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
28328 power6-fpload-update, power6-store, power6-store-update,
28329 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
28331 * config/rs6000/power7.md (power7-load, power7-load-ext,
28332 power7-load-update, power7-load-update-indexed,
28333 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
28334 power7-fpload-update, power7-store, power7-store-update,
28335 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
28337 * config/rs6000/power8.md (power8-load, power8-load-update,
28338 power8-load-ext, power8-load-ext-update, power8-fpload,
28339 power8-fpload-update, power8-store, power8-store-update-indexed,
28340 power8-fpstore, power8-fpstore-update): Adjust.
28341 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
28343 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
28344 titan_lsu_store, titan_lsu_fpstore): Adjust.
28345 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
28347 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
28350 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
28351 unrolled byte insns. Emit address increments after move insns.
28353 2014-05-07 David Malcolm <dmalcolm@redhat.com>
28355 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
28356 const_gimple, rather than a gimple.
28357 (gimple_call_builtin_p): Likewise, for the three variants.
28359 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
28360 (gimple_call_builtin_p): Likewise, for the three variants.
28362 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
28364 PR tree-optimization/61095
28365 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
28367 2014-05-07 Richard Biener <rguenther@suse.de>
28369 PR tree-optimization/61034
28370 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
28371 (maybe_skip_until): Use translate to take into account
28372 lattices when trying to do disambiguations.
28373 (get_continuation_for_phi_1): Likewise.
28374 (get_continuation_for_phi): Adjust for added translate arguments.
28375 (walk_non_aliased_vuses): Likewise.
28376 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
28377 (walk_non_aliased_vuses): Likewise.
28378 (call_may_clobber_ref_p_1): Declare.
28379 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
28380 calls. Stop early if we are only supposed to disambiguate.
28381 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
28383 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
28385 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
28386 Emit an error when the function has arguments.
28388 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
28390 * cfgloop.h (unswitch_loops): Remove.
28391 * doc/passes.texi: Remove references to loop-unswitch.c
28392 * timevar.def (TV_LOOP_UNSWITCH): Remove.
28394 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
28396 * tree-vect-data-refs.c (vect_grouped_load_supported): New
28397 check for loads group of length 3.
28398 (vect_permute_load_chain): New permutations for loads group of
28400 * tree-vect-stmts.c (vect_model_load_cost): Change cost
28401 of vec_perm_shuffle for the new permutations.
28403 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
28405 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
28406 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
28407 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
28408 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
28409 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
28410 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
28411 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
28412 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
28414 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
28416 * loop-unswitch.c: Delete.
28418 2014-05-07 Richard Biener <rguenther@suse.de>
28420 * config.gcc: Always set need_64bit_hwint to yes.
28422 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
28424 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
28425 of using optimize_size.
28427 2014-05-06 Mike Stump <mikestump@comcast.net>
28429 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
28431 2014-05-06 Joseph Myers <joseph@codesourcery.com>
28433 * config/i386/sse.md (*mov<mode>_internal)
28434 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
28435 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
28436 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
28437 (*<code><mode>3, *andnot<mode>3<mask_name>)
28438 (<mask_codefor><code><mode>3<mask_name>): Only consider
28439 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
28441 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
28444 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
28446 * lra-constraints.c (valid_address_p): Move earlier in file.
28447 Add a constraint argument to the address_info version.
28448 (satisfies_memory_constraint_p): New function.
28449 (satisfies_address_constraint_p): Likewise.
28450 (process_alt_operands, curr_insn_transform): Use them.
28451 (process_address): Pass the constraint to valid_address_p when
28452 checking address operands.
28454 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
28456 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
28457 to their respective blocks. Fix inadvertent use of "node".
28459 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
28461 * emit-rtl.c (init_derived_machine_modes): New functionm, split
28463 (init_emit_once): ...here.
28464 * rtl.h (init_derived_machine_modes): Declare.
28465 * toplev.c (do_compile): Call it even if no_backend.
28467 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
28468 Mike Stump <mikestump@comcast.net>
28469 Richard Sandiford <rdsandiford@googlemail.com>
28470 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28472 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
28473 (rtx_equal_for_memref_p): Update comment.
28474 (adjust_offset_for_component_ref): Use wide-int interfaces.
28475 * builtins.c (get_object_alignment_2): Likewise.
28476 (c_readstr): Likewise.
28477 (target_char_cast): Add comment.
28478 (determine_block_size): Use wide-int interfaces.
28479 (expand_builtin_signbit): Likewise.
28480 (fold_builtin_int_roundingfn): Likewise.
28481 (fold_builtin_bitop): Likewise.
28482 (fold_builtin_bswap): Likewise.
28483 (fold_builtin_logarithm): Use signop.
28484 (fold_builtin_pow): Likewise.
28485 (fold_builtin_memory_op): Use wide-int interfaces.
28486 (fold_builtin_object_size): Likewise.
28487 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
28488 nb_iterations_estimate.
28489 (record_niter_bound): Use wide-int interfaces.
28490 (get_estimated_loop_iterations_int): Likewise.
28491 (get_estimated_loop_iterations): Likewise.
28492 (get_max_loop_iterations): Likewise.
28493 * cfgloop.h: Include wide-int.h.
28494 (struct nb_iter_bound): Change bound to widest_int.
28495 (struct loop): Change nb_iterations_upper_bound and
28496 nb_iterations_estimate to widest_int.
28497 (record_niter_bound): Switch to use widest_int.
28498 (get_estimated_loop_iterations): Likewise.
28499 (get_max_loop_iterations): Likewise.
28500 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
28501 update for wide-int.
28502 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
28503 * combine.c (try_combine): Likewise.
28504 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
28505 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
28507 (aarch64_float_const_representable_p): Likewise.
28508 * config/arc/arc.c: Include wide-int.h.
28509 (arc_can_use_doloop_p): Use wide-int interfaces.
28510 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
28511 (vfp3_const_double_index): Likewise.
28512 * config/avr/avr.c (avr_out_round): Likewise.
28513 (avr_fold_builtin): Likewise.
28514 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
28515 (bfin_can_use_doloop_p): Likewise.
28516 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
28517 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
28518 * config/i386/i386.c: Include wide-int.h.
28519 (ix86_data_alignment): Use wide-int interfaces.
28520 (ix86_local_alignment): Likewise.
28521 (ix86_emit_swsqrtsf): Update real_from_integer.
28522 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
28523 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
28524 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
28525 (zero_constant): Likewise.
28526 (input_operand): Likewise.
28527 (splat_input_operand): Likewise.
28528 (non_logical_cint_operand): Change const_double to const_wide_int.
28529 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
28530 (easy_altivec_constant): Remove comment.
28531 (paired_expand_vector_init): Use CONSTANT_P.
28532 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
28533 (rs6000_emit_move): Update checks.
28534 (rs6000_aggregate_candidate): Use wide-int interfaces.
28535 (rs6000_expand_ternop_builtin): Likewise.
28536 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
28537 (rs6000_assemble_integer): Likewise.
28538 (rs6000_hash_constant): Likewise.
28539 (output_toc): Likewise.
28540 (rs6000_rtx_costs): Likewise.
28541 (rs6000_emit_swrsqrt); Update call to real_from_integer.
28542 * config/rs6000/rs6000-c.c: Include wide-int.h.
28543 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
28544 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
28545 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
28546 Handle CONST_WIDE_INT.
28547 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
28548 Use tree_fits_uhwi_p.
28549 * config/sparc/sparc.c: Include wide-int.h.
28550 (sparc_fold_builtin): Use wide-int interfaces.
28551 * config/vax/vax.c: Include wide-int.h.
28552 (vax_float_literal): Use real_from_integer.
28553 * coretypes.h (struct hwivec_def): New.
28555 (const_hwivec): New.
28556 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
28557 (equiv_constant): Handle CONST_WIDE_INT.
28558 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
28559 (cselib_hash_rtx): Handle CONST_WIDE_INT.
28560 * dbxout.c (stabstr_U): Use wide-int interfaces.
28561 (dbxout_type): Update to use cst_fits_shwi_p.
28562 * defaults.h (LOG2_BITS_PER_UNIT): Define.
28563 (TARGET_SUPPORTS_WIDE_INT): Add default.
28564 * dfp.c: Include wide-int.h.
28565 (decimal_real_to_integer2): Use wide-int interfaces and rename to
28566 decimal_real_to_integer.
28567 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
28568 decimal_real_to_integer.
28569 * doc/generic.texi (Constant expressions): Update for wide_int.
28570 * doc/rtl.texi (const_double): Likewise.
28571 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
28572 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
28573 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
28574 (REAL_VALUE_FROM_INT): Remove.
28575 (TARGET_SUPPORTS_WIDE_INT): New.
28576 * doc/tm.texi: Regenerate.
28577 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
28578 * double-int.h: Include wide-int.h.
28579 (struct wi::int_traits): New.
28580 * dwarf2out.c (get_full_len): New.
28581 (dw_val_equal_p): Add case dw_val_class_wide_int.
28582 (size_of_loc_descr): Likewise.
28583 (output_loc_operands): Likewise.
28584 (insert_double): Remove.
28585 (insert_wide_int): New.
28586 (add_AT_wide): New.
28587 (print_die): Add case dw_val_class_wide_int.
28588 (attr_checksum): Likewise.
28589 (attr_checksum_ordered): Likewise.
28590 (same_dw_val_p): Likewise.
28591 (size_of_die): Likewise.
28592 (value_format): Likewise.
28593 (output_die): Likewise.
28594 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
28596 (clz_loc_descriptor): Use wide-int interfaces.
28597 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
28598 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
28599 (round_up_to_align): Use wide-int interfaces.
28600 (field_byte_offset): Likewise.
28601 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
28602 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
28603 CONST_DOUBLE handling. Use wide-int interfaces.
28604 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
28605 (gen_enumeration_type_die): Use add_AT_wide.
28606 (hash_loc_operands): Add case dw_val_class_wide_int.
28607 (compare_loc_operands): Likewise.
28608 * dwarf2out.h: Include wide-int.h.
28609 (wide_int_ptr): New.
28610 (enum dw_val_class): Add dw_val_class_wide_int.
28611 (struct dw_val_struct): Add val_wide.
28612 * emit-rtl.c (const_wide_int_htab): New.
28613 (const_wide_int_htab_hash): New.
28614 (const_wide_int_htab_eq): New.
28615 (lookup_const_wide_int): New.
28616 (const_double_htab_hash): Use wide-int interfaces.
28617 (const_double_htab_eq): Likewise.
28618 (rtx_to_double_int): Conditionally compile for wide-int.
28619 (immed_double_int_const): Rename to immed_wide_int_const and
28620 update for wide-int.
28621 (immed_double_const): Conditionally compile for wide-int.
28622 (init_emit_once): Use wide-int interfaces.
28623 * explow.c (plus_constant): Likewise.
28624 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
28625 (lshift_value): Use wide-int interfaces.
28626 (expand_mult): Likewise.
28627 (choose_multiplier): Likewise.
28628 (expand_smod_pow2): Likewise.
28629 (make_tree): Likewise.
28630 * expr.c (convert_modes): Consolidate handling of constants.
28631 Use wide-int interfaces.
28632 (emit_group_load_1): Add note.
28633 (store_expr): Update comment.
28634 (get_inner_reference): Use wide-int interfaces.
28635 (expand_constructor): Update comment.
28636 (expand_expr_real_2): Use wide-int interfaces.
28637 (expand_expr_real_1): Likewise.
28638 (reduce_to_bit_field_precision): Likewise.
28639 (const_vector_from_tree): Likewise.
28640 * final.c: Include wide-int-print.h.
28641 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
28642 * fixed-value.c: Include wide-int.h.
28643 (fixed_from_string): Use wide-int interfaces.
28644 (fixed_to_decimal): Likewise.
28645 (fixed_convert_from_real): Likewise.
28646 (real_convert_from_fixed): Likewise.
28647 * fold-const.h (mem_ref_offset): Return an offset_int.
28648 (div_if_zero_remainder): Remove code parameter.
28649 * fold-const.c (div_if_zero_remainder): Remove code parameter.
28650 Use wide-int interfaces.
28651 (may_negate_without_overflow_p): Use wide-int interfaces.
28652 (negate_expr_p): Likewise.
28653 (fold_negate_expr): Likewise.
28654 (int_const_binop_1): Likewise.
28655 (const_binop): Likewise.
28656 (fold_convert_const_int_from_int): Likewise.
28657 (fold_convert_const_int_from_real): Likewise.
28658 (fold_convert_const_int_from_fixed): Likewise.
28659 (fold_convert_const_fixed_from_int): Likewise.
28660 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
28661 (sign_bit_p): Use wide-int interfaces.
28662 (make_range_step): Likewise.
28663 (build_range_check): Likewise. Pass an integer of the correct type
28664 instead of using integer_one_node.
28665 (range_predecessor): Pass an integer of the correct type instead
28666 of using integer_one_node.
28667 (range_successor): Likewise.
28668 (merge_ranges): Likewise.
28669 (unextend): Use wide-int interfaces.
28670 (extract_muldiv_1): Likewise.
28671 (fold_div_compare): Likewise.
28672 (fold_single_bit_test): Likewise.
28673 (fold_sign_changed_comparison): Likewise.
28674 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
28675 (fold_plusminus_mult_expr): Use wide-int interfaces.
28676 (native_encode_int): Likewise.
28677 (native_interpret_int): Likewise.
28678 (fold_unary_loc): Likewise.
28679 (pointer_may_wrap_p): Likewise.
28680 (size_low_cst): Likewise.
28681 (mask_with_tz): Likewise.
28682 (fold_binary_loc): Likewise.
28683 (fold_ternary_loc): Likewise.
28684 (multiple_of_p): Likewise.
28685 (tree_call_nonnegative_warnv_p): Update calls to
28686 tree_int_cst_min_precision and real_from_integer.
28687 (fold_negate_const): Use wide-int interfaces.
28688 (fold_abs_const): Likewise.
28689 (fold_relational_const): Use tree_int_cst_lt.
28690 (round_up_loc): Use wide-int interfaces.
28691 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
28692 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
28693 * gengtype.c: Remove include of double-int.h.
28694 (do_typedef): Use wide-int interfaces.
28695 (open_base_files): Add wide-int.h.
28696 (main): Add offset_int and widest_int typedefs.
28697 * gengtype-lex.l: Handle "^".
28698 (CXX_KEYWORD): Add "static".
28699 * gengtype-parse.c (require3): New.
28700 (require_template_declaration): Handle constant template arguments
28701 and nested templates.
28702 * gengtype-state.c: Don't include "double-int.h".
28703 * genpreds.c (write_one_predicate_function): Update comment.
28704 (write_tm_constrs_h): Add check for hval and lval use in
28706 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
28707 (add_to_sequence): Likewise.
28708 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
28709 and const_double_operand.
28710 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
28712 * gimple-fold.c (get_base_constructor): Likewise.
28713 (fold_array_ctor_reference): Likewise.
28714 (fold_nonarray_ctor_reference): Likewise.
28715 (fold_const_aggregate_ref_1): Likewise.
28716 (gimple_val_nonnegative_real_p): Likewise.
28717 (gimple_fold_indirect_ref): Likewise.
28718 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
28719 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
28720 (struct slsr_cand_d): Change index to be widest_int.
28721 (struct incr_info_d): Change incr to be widest_int.
28722 (alloc_cand_and_find_basis): Use wide-int interfaces.
28723 (slsr_process_phi): Likewise.
28724 (backtrace_base_for_ref): Likewise. Return a widest_int.
28725 (restructure_reference): Take a widest_int instead of a double_int.
28726 (slsr_process_ref): Use wide-int interfaces.
28727 (create_mul_ssa_cand): Likewise.
28728 (create_mul_imm_cand): Likewise.
28729 (create_add_ssa_cand): Likewise.
28730 (create_add_imm_cand): Take a widest_int instead of a double_int.
28731 (slsr_process_add): Use wide-int interfaces.
28732 (slsr_process_cast): Likewise.
28733 (slsr_process_copy): Likewise.
28734 (dump_candidate): Likewise.
28735 (dump_incr_vec): Likewise.
28736 (replace_ref): Likewise.
28737 (cand_increment): Likewise. Return a widest_int.
28738 (cand_abs_increment): Likewise.
28739 (replace_mult_candidate): Take a widest_int instead of a double_int.
28740 (replace_unconditional_candidate): Use wide-int interfaces.
28741 (incr_vec_index): Take a widest_int instead of a double_int.
28742 (create_add_on_incoming_edge): Likewise.
28743 (create_phi_basis): Use wide-int interfaces.
28744 (replace_conditional_candidate): Likewise.
28745 (record_increment): Take a widest_int instead of a double_int.
28746 (record_phi_increments): Use wide-int interfaces.
28747 (phi_incr_cost): Take a widest_int instead of a double_int.
28748 (lowest_cost_path): Likewise.
28749 (total_savings): Likewise.
28750 (analyze_increments): Use wide-int interfaces.
28751 (ncd_with_phi): Take a widest_int instead of a double_int.
28752 (ncd_of_cand_and_phis): Likewise.
28753 (nearest_common_dominator_for_cands): Likewise.
28754 (insert_initializers): Use wide-int interfaces.
28755 (all_phi_incrs_profitable): Likewise.
28756 (replace_one_candidate): Likewise.
28757 (replace_profitable_candidates): Likewise.
28758 * godump.c: Include wide-int-print.h.
28759 (go_output_typedef): Use wide-int interfaces.
28760 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
28761 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
28762 (build_loop_iteration_domains): Likewise.
28763 * hooks.h: Include wide-int.h rather than double-int.h.
28764 (hook_bool_dint_dint_uint_bool_true): Delete.
28765 (hook_bool_wint_wint_uint_bool_true): Declare.
28766 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
28767 (hook_bool_wint_wint_uint_bool_true): New.
28768 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
28770 (ubsan_expand_si_overflow_mul_check): Likewise.
28771 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
28772 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
28773 (get_ancestor_addr_info): Likewise.
28774 (ipa_modify_call_arguments): Likewise.
28775 * loop-doloop.c (doloop_modify): Likewise.
28776 (doloop_optimize): Likewise.
28777 * loop-iv.c (iv_number_of_iterations): Likewise.
28778 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
28779 (unroll_loop_constant_iterations): Likewise.
28780 (decide_unroll_runtime_iterations): Likewise.
28781 (unroll_loop_runtime_iterations): Likewise.
28782 (decide_peel_simple): Likewise.
28783 (decide_unroll_stupid): Likewise.
28784 * lto-streamer-in.c (streamer_read_wi): Add.
28785 (input_cfg): Use wide-int interfaces.
28786 (lto_input_tree_1): Likewise.
28787 * lto-streamer-out.c (streamer_write_wi): Add.
28788 (hash_tree): Use wide-int interfaces.
28789 (output_cfg): Likewise.
28790 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
28791 (GTFILES): Add wide-int.h and signop.h.
28792 (TAGS): Look for .cc files too.
28793 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
28794 * optabs.c (expand_subword_shift): Likewise.
28795 (expand_doubleword_shift): Likewise.
28796 (expand_absneg_bit): Likewise.
28797 (expand_copysign_absneg): Likewise.
28798 (expand_copysign_bit): Likewise.
28799 * postreload.c (reload_cse_simplify_set): Likewise.
28800 * predict.c (predict_iv_comparison): Likewise.
28801 * pretty-print.h: Include wide-int-print.h.
28803 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
28804 * print-tree.c: Include wide-int-print.h.
28805 (print_node_brief): Use wide-int interfaces.
28806 (print_node): Likewise.
28807 * read-rtl.c (validate_const_wide_int): New.
28808 (read_rtx_code): Add CONST_WIDE_INT case.
28809 * real.c: Include wide-int.h.
28810 (real_to_integer2): Delete.
28811 (real_to_integer): New function, returning a wide_int.
28812 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
28813 (ten_to_ptwo): Update call to real_from_integer.
28814 (real_digit): Likewise.
28815 * real.h: Include signop.h, wide-int.h and insn-modes.h.
28816 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
28817 (REAL_VALUE_TO_INT): Delete.
28818 (real_to_integer): Declare a wide-int form.
28819 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
28820 * recog.c (const_int_operand): Improve comment.
28821 (const_scalar_int_operand): New.
28822 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
28823 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
28824 (split_double): Likewise.
28825 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
28826 (rtx_size): Likewise.
28827 (rtx_alloc_stat_v): New.
28828 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
28829 (cwi_output_hex): New.
28830 (iterative_hash_rtx): Handle CONST_WIDE_INT.
28831 (cwi_check_failed_bounds): New.
28832 * rtl.def (CONST_WIDE_INT): New.
28833 * rtl.h: Include <utility> and wide-int.h.
28834 (struct hwivec_def): New.
28835 (CWI_GET_NUM_ELEM): New.
28836 (CWI_PUT_NUM_ELEM): New.
28837 (struct rtx_def): Add num_elem and hwiv.
28838 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
28839 (CASE_CONST_UNIQUE): Likewise.
28840 (CASE_CONST_ANY): Likewise.
28841 (CONST_SCALAR_INT_P): Likewise.
28842 (CONST_WIDE_INT_P): New.
28844 (HWIVEC_CHECK): New.
28845 (cwi_check_failed_bounds): New.
28847 (HWIVEC_CHECK): New.
28848 (CONST_WIDE_INT_VEC) New.
28849 (CONST_WIDE_INT_NUNITS) New.
28850 (CONST_WIDE_INT_ELT) New.
28851 (rtx_mode_t): New type.
28852 (wi::int_traits <rtx_mode_t>): New.
28854 (wi::min_value): New.
28855 (wi::max_value): New.
28857 (const_wide_int_alloc): New.
28858 (immed_wide_int_const): New.
28859 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
28860 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
28861 * signop.h: New file.
28862 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
28863 (simplify_const_unary_operation): Use wide-int interfaces.
28864 (simplify_binary_operation_1): Likewise.
28865 (simplify_const_binary_operation): Likewise.
28866 (simplify_const_relational_operation): Likewise.
28867 (simplify_immed_subreg): Likewise.
28868 * stmt.c (expand_case): Likewise.
28869 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
28870 signop rather than a bool.
28871 * stor-layout.c (layout_type): Use wide-int interfaces.
28872 (initialize_sizetypes): Update calls to
28873 set_min_and_max_values_for_integral_type.
28874 (set_min_and_max_values_for_integral_type): Take a signop rather
28875 than a bool. Use wide-int interfaces.
28876 (fixup_signed_type): Update accordingly. Remove
28877 HOST_BITS_PER_DOUBLE_INT limit.
28878 (fixup_unsigned_type): Likewise.
28879 * system.h (STATIC_CONSTANT_P): New.
28880 (STATIC_ASSERT): New.
28881 * target.def (can_use_doloop_p): Take widest_ints rather than
28883 * target.h: Include wide-int.h rather than double-int.h.
28884 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
28886 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
28887 rather than INT_CST_LT_UNSIGNED.
28888 (can_use_doloop_if_innermost): Take widest_ints rather than
28890 * tree-affine.c: Include wide-int-print.h.
28891 (double_int_ext_for_comb): Delete.
28892 (wide_int_ext_for_comb): New.
28893 (aff_combination_zero): Use wide-int interfaces.
28894 (aff_combination_const): Take a widest_int instead of a double_int.
28895 (aff_combination_elt): Use wide-int interfaces.
28896 (aff_combination_scale): Take a widest_int instead of a double_int.
28897 (aff_combination_add_elt): Likewise.
28898 (aff_combination_add_cst): Likewise.
28899 (aff_combination_add): Use wide-int interfaces.
28900 (aff_combination_convert): Likewise.
28901 (tree_to_aff_combination): Likewise.
28902 (add_elt_to_tree): Take a widest_int instead of a double_int.
28903 (aff_combination_to_tree): Use wide-int interfaces.
28904 (aff_combination_remove_elt): Likewise.
28905 (aff_combination_add_product): Take a widest_int instead of
28907 (aff_combination_mult): Use wide-int interfaces.
28908 (aff_combination_expand): Likewise.
28909 (double_int_constant_multiple_p): Delete.
28910 (wide_int_constant_multiple_p): New.
28911 (aff_combination_constant_multiple_p): Take a widest_int pointer
28912 instead of a double_int pointer.
28913 (print_aff): Use wide-int interfaces.
28914 (get_inner_reference_aff): Take a widest_int pointer
28915 instead of a double_int pointer.
28916 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
28917 * tree-affine.h: Include wide-int.h.
28918 (struct aff_comb_elt): Change type of coef to widest_int.
28919 (struct affine_tree_combination): Change type of offset to widest_int.
28920 (double_int_ext_for_comb): Delete.
28921 (wide_int_ext_for_comb): New.
28922 (aff_combination_const): Use widest_int instead of double_int.
28923 (aff_combination_scale): Likewise.
28924 (aff_combination_add_elt): Likewise.
28925 (aff_combination_constant_multiple_p): Likewise.
28926 (get_inner_reference_aff): Likewise.
28927 (aff_comb_cannot_overlap_p): Likewise.
28928 (aff_combination_zero_p): Use wide-int interfaces.
28929 * tree.c: Include tree.h.
28930 (init_ttree): Use make_int_cst.
28931 (tree_code_size): Removed code for INTEGER_CST case.
28932 (tree_size): Add INTEGER_CST case.
28933 (make_node_stat): Update comment.
28934 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
28935 (build_int_cst_type): Use wide-int interfaces.
28936 (double_int_to_tree): Likewise.
28937 (double_int_fits_to_tree_p): Delete.
28938 (force_fit_type_double): Delete.
28939 (force_fit_type): New.
28940 (int_cst_hash_hash): Use wide-int interfaces.
28941 (int_cst_hash_eq): Likewise.
28942 (build_int_cst_wide): Delete.
28943 (wide_int_to_tree): New.
28944 (cache_integer_cst): Use wide-int interfaces.
28945 (build_low_bits_mask): Likewise.
28946 (cst_and_fits_in_hwi): Likewise.
28947 (real_value_from_int_cst): Likewise.
28948 (make_int_cst_stat): New.
28949 (integer_zerop): Use wide_int interfaces.
28950 (integer_onep): Likewise.
28951 (integer_all_onesp): Likewise.
28952 (integer_pow2p): Likewise.
28953 (integer_nonzerop): Likewise.
28954 (tree_log2): Likewise.
28955 (tree_floor_log2): Likewise.
28956 (tree_ctz): Likewise.
28957 (int_size_in_bytes): Likewise.
28958 (mem_ref_offset): Return an offset_int rather than a double_int.
28959 (build_type_attribute_qual_variant): Use wide_int interfaces.
28960 (type_hash_eq): Likewise
28961 (tree_int_cst_equal): Likewise.
28962 (tree_int_cst_lt): Delete.
28963 (tree_int_cst_compare): Likewise.
28964 (tree_fits_shwi_p): Use wide_int interfaces.
28965 (tree_fits_uhwi_p): Likewise.
28966 (tree_int_cst_sign_bit): Likewise.
28967 (tree_int_cst_sgn): Likewise.
28968 (tree_int_cst_min_precision): Take a signop rather than a bool.
28969 (simple_cst_equal): Use wide_int interfaces.
28970 (compare_tree_int): Likewise.
28971 (iterative_hash_expr): Likewise.
28972 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
28974 (get_type_static_bounds): Use wide_int interfaces.
28975 (tree_int_cst_elt_check_failed): New.
28976 (build_common_tree_nodes): Reordered to set prec before filling in
28978 (int_cst_value): Check cst_and_fits_in_hwi.
28979 (widest_int_cst_value): Use wide_int interfaces.
28980 (upper_bound_in_type): Likewise.
28981 (lower_bound_in_type): Likewise.
28982 (num_ending_zeros): Likewise.
28983 (drop_tree_overflow): Likewise.
28984 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
28985 (gen_conditions_for_pow_cst_base): Likewise.
28986 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
28987 (group_case_labels_stmt): Use wide-int interfaces.
28988 (verify_gimple_assign_binary): Likewise.
28989 (print_loop): Likewise.
28990 * tree-chrec.c (tree_fold_binomial): Likewise.
28991 * tree-core.h (struct tree_base): Add int_length.
28992 (struct tree_int_cst): Change rep of value.
28993 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
28994 (dr_may_alias_p): Likewise.
28995 (max_stmt_executions_tree): Likewise.
28996 * tree.def (INTEGER_CST): Update comment.
28997 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
28998 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
28999 * tree-dump.c: Include wide-int.h and wide-int-print.h.
29000 (dequeue_and_dump): Use wide-int interfaces.
29001 * tree.h: Include wide-int.h.
29002 (NULL_TREE): Moved to earlier loc in file.
29003 (TREE_INT_CST_ELT_CHECK): New.
29004 (tree_int_cst_elt_check_failed): New.
29006 (TREE_INT_CST): Delete.
29007 (TREE_INT_CST_LOW): Use wide-int interfaces.
29008 (TREE_INT_CST_HIGH): Delete.
29009 (TREE_INT_CST_NUNITS): New.
29010 (TREE_INT_CST_EXT_NUNITS): Likewise.
29011 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
29012 (TREE_INT_CST_ELT): Likewise.
29013 (INT_CST_LT): Delete.
29014 (tree_int_cst_elt_check): New (two forms).
29015 (type_code_size): Update comment.
29016 (make_int_cst_stat, make_int_cst): New.
29017 (tree_to_double_int): Delete.
29018 (double_int_fits_to_tree_p): Delete.
29019 (force_fit_type_double): Delete.
29020 (build_int_cstu): Replace with out-of-line function.
29021 (build_int_cst_wide): Delete.
29022 (tree_int_cst_lt): Define inline.
29023 (tree_int_cst_le): New.
29024 (tree_int_cst_compare): Define inline.
29025 (tree_int_cst_min_precision): Take a signop rather than a bool.
29026 (wi::int_traits <const_tree>): New.
29027 (wi::int_traits <tree>): New.
29028 (wi::extended_tree): New.
29029 (wi::int_traits <wi::extended_tree>): New.
29030 (wi::to_widest): New.
29031 (wi::to_offset): New.
29032 (wi::fits_to_tree_p): New.
29033 (wi::min_value): New.
29034 (wi::max_value): New.
29035 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
29036 (copy_tree_body_r): Likewise.
29037 * tree-object-size.c (compute_object_offset): Likewise.
29038 (addr_object_size): Likewise.
29039 * tree-predcom.c: Include wide-int-print.h.
29040 (struct dref_d): Change type of offset to widest_int.
29041 (dump_dref): Call wide-int printer.
29042 (aff_combination_dr_offset): Use wide-int interfaces.
29043 (determine_offset): Take a widest_int pointer rather than a
29044 double_int pointer.
29045 (split_data_refs_to_components): Use wide-int interfaces.
29046 (suitable_component_p): Likewise.
29047 (order_drefs): Likewise.
29048 (add_ref_to_chain): Likewise.
29049 (valid_initializer_p): Likewise.
29050 (determine_roots_comp): Likewise.
29051 * tree-pretty-print.c: Include wide-int-print.h.
29052 (dump_generic_node): Use wide-int interfaces.
29053 * tree-sra.c (sra_ipa_modify_expr): Likewise.
29054 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
29055 (move_fixed_address_to_symbol): Likewise.
29056 (move_hint_to_base): Likewise.
29057 (move_pointer_to_base): Likewise.
29058 (move_variant_to_index): Likewise.
29059 (most_expensive_mult_to_index): Likewise.
29060 (addr_to_parts): Likewise.
29061 (copy_ref_info): Likewise.
29062 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
29063 (indirect_refs_may_alias_p): Likewise.
29064 (stmt_kills_ref_p_1): Likewise.
29065 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
29066 * tree-ssa-ccp.c: Update comment at top of file. Include
29068 (struct prop_value_d): Change type of mask to widest_int.
29069 (extend_mask): New function.
29070 (dump_lattice_value): Use wide-int interfaces.
29071 (get_default_value): Likewise.
29072 (set_constant_value): Likewise.
29073 (set_value_varying): Likewise.
29074 (valid_lattice_transition): Likewise.
29075 (set_lattice_value): Likewise.
29076 (value_to_double_int): Delete.
29077 (value_to_wide_int): New.
29078 (get_value_from_alignment): Use wide-int interfaces.
29079 (get_value_for_expr): Likewise.
29080 (do_dbg_cnt): Likewise.
29081 (ccp_finalize): Likewise.
29082 (ccp_lattice_meet): Likewise.
29083 (bit_value_unop_1): Use widest_ints rather than double_ints.
29084 (bit_value_binop_1): Likewise.
29085 (bit_value_unop): Use wide-int interfaces.
29086 (bit_value_binop): Likewise.
29087 (bit_value_assume_aligned): Likewise.
29088 (evaluate_stmt): Likewise.
29089 (ccp_fold_stmt): Likewise.
29090 (visit_cond_stmt): Likewise.
29091 (ccp_visit_stmt): Likewise.
29092 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
29093 (constant_pointer_difference): Likewise.
29094 (associate_pointerplus): Likewise.
29095 (combine_conversions): Likewise.
29096 * tree-ssa-loop.h: Include wide-int.h.
29097 (struct tree_niter_desc): Change type of max to widest_int.
29098 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
29099 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
29100 (remove_redundant_iv_tests): Likewise.
29101 (canonicalize_loop_induction_variables): Likewise.
29102 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
29103 (constant_multiple_of): Take a widest_int pointer instead of
29104 a double_int pointer.
29105 (get_computation_aff): Use wide-int interfaces.
29106 (ptr_difference_cost): Likewise.
29107 (difference_cost): Likewise.
29108 (get_loop_invariant_expr_id): Likewise.
29109 (get_computation_cost_at): Likewise.
29110 (iv_elimination_compare_lt): Likewise.
29111 (may_eliminate_iv): Likewise.
29112 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
29113 instead of double_int.
29114 (max_loop_iterations): Likewise.
29115 (max_stmt_executions): Likewise.
29116 (estimated_stmt_executions): Likewise.
29117 * tree-ssa-loop-niter.c: Include wide-int-print.h.
29118 (split_to_var_and_offset): Use wide-int interfaces.
29119 (determine_value_range): Likewise.
29120 (bound_difference_of_offsetted_base): Likewise.
29121 (bounds_add): Take a widest_int instead of a double_int.
29122 (number_of_iterations_ne_max): Use wide-int interfaces.
29123 (number_of_iterations_ne): Likewise.
29124 (number_of_iterations_lt_to_ne): Likewise.
29125 (assert_loop_rolls_lt): Likewise.
29126 (number_of_iterations_lt): Likewise.
29127 (number_of_iterations_le): Likewise.
29128 (number_of_iterations_cond): Likewise.
29129 (number_of_iterations_exit): Likewise.
29130 (finite_loop_p): Likewise.
29131 (derive_constant_upper_bound_assign): Likewise.
29132 (derive_constant_upper_bound): Return a widest_int.
29133 (derive_constant_upper_bound_ops): Likewise.
29134 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
29135 (record_estimate): Take a widest_int rather than a double_int.
29136 (record_nonwrapping_iv): Use wide-int interfaces.
29137 (double_int_cmp): Delete.
29138 (wide_int_cmp): New.
29139 (bound_index): Take a widest_int rather than a double_int.
29140 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
29141 (maybe_lower_iteration_bound): Likewise.
29142 (estimate_numbers_of_iterations_loop): Likewise.
29143 (estimated_loop_iterations): Take a widest_int pointer than than
29144 a double_int pointer.
29145 (estimated_loop_iterations_int): Use wide-int interfaces.
29146 (max_loop_iterations): Take a widest_int pointer than than
29147 a double_int pointer.
29148 (max_loop_iterations_int): Use wide-int interfaces.
29149 (max_stmt_executions): Take a widest_int pointer than than
29150 a double_int pointer.
29151 (estimated_stmt_executions): Likewise.
29152 (n_of_executions_at_most): Use wide-int interfaces.
29153 (scev_probably_wraps_p): Likewise.
29154 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
29155 to real_to_integer.
29156 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
29158 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
29159 double_ints. Adjust for trailing_wide_ints <3> representation.
29160 (set_nonzero_bits): Likewise.
29161 (get_range_info): Return wide_ints rather than double_ints.
29162 Adjust for trailing_wide_ints <3> representation.
29163 (get_nonzero_bits): Likewise.
29164 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
29166 * tree-ssanames.h (struct range_info_def): Replace min, max and
29167 nonzero_bits with a trailing_wide_ints <3>.
29168 (set_range_info): Use wide_int_refs rather than double_ints.
29169 (set_nonzero_bits): Likewise.
29170 (get_range_info): Return wide_ints rather than double_ints.
29171 (get_nonzero_bits): Likewise.
29172 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
29173 * tree-ssa-pre.c (phi_translate_1): Likewise.
29174 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
29175 (acceptable_pow_call): Likewise.
29176 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
29178 (vn_reference_fold_indirect): Likewise.
29179 (vn_reference_maybe_forwprop_address): Likewise.
29180 (valueize_refs_1): Likewise.
29181 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
29182 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
29183 tree_int_cst_lt and tree_int_cst_le.
29184 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
29186 (streamer_alloc_tree): Likewise.
29187 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
29188 (streamer_write_tree_header): Likewise.
29189 (streamer_write_integer_cst): Likewise.
29190 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
29191 (build_constructors): Likewise.
29192 (array_value_type): Likewise.
29193 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
29194 (vect_check_gather): Likewise.
29195 * tree-vect-generic.c (build_replicated_const): Likewise.
29196 (expand_vector_divmod): Likewise.
29197 * tree-vect-loop.c (vect_transform_loop): Likewise.
29198 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
29199 (vect_do_peeling_for_alignment): Likewise.
29200 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
29201 * tree-vrp.c: Include wide-int.h.
29202 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
29203 (extract_range_from_assert): Use wide-int interfaces.
29204 (vrp_int_const_binop): Likewise.
29205 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
29206 double_int pointers.
29207 (ranges_from_anti_range): Use wide-int interfaces.
29208 (quad_int_cmp): Delete.
29209 (quad_int_pair_sort): Likewise.
29210 (extract_range_from_binary_expr_1): Use wide-int interfaces.
29211 (extract_range_from_unary_expr_1): Likewise.
29212 (adjust_range_with_scev): Likewise.
29213 (masked_increment): Take and return wide_ints rather than double_ints.
29214 (register_edge_assert_for_2): Use wide-int interfaces.
29215 (check_array_ref): Likewise.
29216 (search_for_addr_array): Likewise.
29217 (maybe_set_nonzero_bits): Likewise.
29218 (union_ranges): Pass an integer of the correct type instead of
29219 using integer_one_node.
29220 (intersect_ranges): Likewise.
29221 (simplify_truth_ops_using_ranges): Likewise.
29222 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
29223 (range_fits_type_p): Likewise.
29224 (simplify_cond_using_ranges): Likewise. Take a signop rather than
29226 (simplify_conversion_using_ranges): Use wide-int interfaces.
29227 (simplify_float_conversion_using_ranges): Likewise.
29228 (vrp_finalize): Likewise.
29229 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
29230 (gimple_stringops_transform): Likewise.
29231 * varasm.c (decode_addr_const): Likewise.
29232 (const_hash_1): Likewise.
29233 (const_rtx_hash_1): Likewise
29234 (output_constant): Likewise.
29235 (array_size_for_constructor): Likewise.
29236 (output_constructor_regular_field): Likewise.
29237 (output_constructor_bitfield): Likewise.
29238 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
29239 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
29241 * gencheck.c: Define BITS_PER_UNIT.
29242 * wide-int.cc: New.
29244 * wide-int-print.cc: New.
29245 * wide-int-print.h: New.
29247 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29249 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
29251 2014-05-06 Richard Biener <rguenther@suse.de>
29253 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
29254 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
29255 (TODO_verify_all): Adjust.
29256 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
29257 TODO_verify_stmts and TODO_verify_rtl_sharing.
29258 * bb-reorder.c: Likewise.
29259 * cfgexpand.c: Likewise.
29260 * cprop.c: Likewise.
29262 * function.c: Likewise.
29263 * fwprop.c: Likewise.
29264 * gcse.c: Likewise.
29265 * gimple-ssa-isolate-paths.c: Likewise.
29266 * gimple-ssa-strength-reduction.c: Likewise.
29267 * ipa-split.c: Likewise.
29268 * loop-init.c: Likewise.
29269 * loop-unroll.c: Likewise.
29270 * lower-subreg.c: Likewise.
29271 * modulo-sched.c: Likewise.
29272 * postreload-gcse.c: Likewise.
29273 * predict.c: Likewise.
29274 * recog.c: Likewise.
29275 * sched-rgn.c: Likewise.
29276 * store-motion.c: Likewise.
29277 * tracer.c: Likewise.
29278 * trans-mem.c: Likewise.
29279 * tree-call-cdce.c: Likewise.
29280 * tree-cfg.c: Likewise.
29281 * tree-cfgcleanup.c: Likewise.
29282 * tree-complex.c: Likewise.
29283 * tree-eh.c: Likewise.
29284 * tree-emutls.c: Likewise.
29285 * tree-if-conv.c: Likewise.
29286 * tree-into-ssa.c: Likewise.
29287 * tree-loop-distribution.c: Likewise.
29288 * tree-object-size.c: Likewise.
29289 * tree-parloops.c: Likewise.
29290 * tree-pass.h: Likewise.
29291 * tree-sra.c: Likewise.
29292 * tree-ssa-ccp.c: Likewise.
29293 * tree-ssa-copy.c: Likewise.
29294 * tree-ssa-copyrename.c: Likewise.
29295 * tree-ssa-dce.c: Likewise.
29296 * tree-ssa-dom.c: Likewise.
29297 * tree-ssa-dse.c: Likewise.
29298 * tree-ssa-forwprop.c: Likewise.
29299 * tree-ssa-ifcombine.c: Likewise.
29300 * tree-ssa-loop-ch.c: Likewise.
29301 * tree-ssa-loop-ivcanon.c: Likewise.
29302 * tree-ssa-loop.c: Likewise.
29303 * tree-ssa-math-opts.c: Likewise.
29304 * tree-ssa-phiopt.c: Likewise.
29305 * tree-ssa-phiprop.c: Likewise.
29306 * tree-ssa-pre.c: Likewise.
29307 * tree-ssa-reassoc.c: Likewise.
29308 * tree-ssa-sink.c: Likewise.
29309 * tree-ssa-strlen.c: Likewise.
29310 * tree-ssa-tail-merge.c: Likewise.
29311 * tree-ssa-uncprop.c: Likewise.
29312 * tree-switch-conversion.c: Likewise.
29313 * tree-tailcall.c: Likewise.
29314 * tree-vect-generic.c: Likewise.
29315 * tree-vectorizer.c: Likewise.
29316 * tree-vrp.c: Likewise.
29317 * tsan.c: Likewise.
29318 * var-tracking.c: Likewise.
29319 * bt-load.c: Likewise.
29320 * cfgcleanup.c: Likewise.
29321 * combine-stack-adj.c: Likewise.
29322 * combine.c: Likewise.
29323 * compare-elim.c: Likewise.
29324 * config/epiphany/resolve-sw-modes.c: Likewise.
29325 * config/i386/i386.c: Likewise.
29326 * config/mips/mips.c: Likewise.
29327 * config/s390/s390.c: Likewise.
29328 * config/sh/sh_treg_combine.cc: Likewise.
29329 * config/sparc/sparc.c: Likewise.
29332 * final.c: Likewise.
29333 * ifcvt.c: Likewise.
29334 * mode-switching.c: Likewise.
29335 * passes.c: Likewise.
29336 * postreload.c: Likewise.
29338 * reg-stack.c: Likewise.
29339 * regcprop.c: Likewise.
29340 * regrename.c: Likewise.
29343 2014-05-06 Richard Biener <rguenther@suse.de>
29345 PR middle-end/61070
29346 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
29347 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
29349 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
29352 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
29354 2014-05-05 Radovan Obradovic <robradovic@mips.com>
29355 Tom de Vries <tom@codesourcery.com>
29357 * target.def (call_fusage_contains_non_callee_clobbers): New
29359 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
29361 (@node Miscellaneous Register Hooks): New node.
29362 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
29363 * doc/tm.texi: Regenerate.
29365 2014-05-05 Marek Polacek <polacek@redhat.com>
29368 * opts.c (common_handle_option): Call error_at instead of warning_at.
29370 2014-05-05 Richard Biener <rguenther@suse.de>
29372 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
29373 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
29374 under the TODO_verify_il umbrella.
29376 2014-05-05 Richard Biener <rguenther@suse.de>
29378 * passes.c (execute_function_todo): Move TODO_verify_flow under
29379 the TODO_verify_ul umbrella.
29381 2014-05-05 Richard Biener <rguenther@suse.de>
29383 PR middle-end/61010
29384 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
29385 X & CST away from a CST that is the mask of a mode.
29387 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29389 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
29390 int argument to enum machine_mode.
29391 (picochip_class_max_nregs): Ditto.
29392 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
29393 (picochip_class_max_nregs): Ditto.
29395 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29397 * target.def: Add new target hook.
29398 * doc/tm.texi: Regenerate.
29399 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
29400 * targhooks.c (default_keep_leaf_when_profiled): New function.
29402 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
29403 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
29405 2014-05-05 Bin Cheng <bin.cheng@arm.com>
29407 PR tree-optimization/60363
29408 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
29409 (copy_phi_args): New parameters. Call get_value_locus_in_path.
29410 (update_destination_phis): New parameter.
29411 (create_edge_and_update_destination_phis): Ditto.
29412 (ssa_fix_duplicate_block_edges): Pass new arguments.
29413 (thread_single_edge): Ditto.
29415 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
29417 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
29418 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
29419 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
29420 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
29421 Use RS6000_BTM_HARD_FLOAT.
29422 (BU_MISC_2): Likewise.
29423 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
29424 RS6000_BTM_HARD_FLOAT.
29425 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
29426 is explicitly used.
29427 (rs6000_invalid_builtin): Add hard floating builtin support.
29428 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
29429 hard float builtins.
29430 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
29432 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
29434 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
29435 Add missing function* argument.
29437 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
29439 * lra-constraints.c (valid_address_p): Move earlier in file.
29440 Add a constraint argument to the address_info version.
29441 (satisfies_memory_constraint_p): New function.
29442 (satisfies_address_constraint_p): Likewise.
29443 (process_alt_operands, curr_insn_transform): Use them.
29444 (process_address): Pass the constraint to valid_address_p when
29445 checking address operands.
29447 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
29449 * config/mips/mips.c (mips_isa_rev): New variable.
29450 (mips_set_architecture): Set it.
29451 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
29453 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
29454 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
29455 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
29456 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
29457 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
29458 conditions in terms of mips_isa_rev.
29459 (mips_isa_rev): Declare.
29461 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
29463 * config/sh/sh-mem.cc: Use tabs instead of spaces.
29464 (prob_unlikely, prob_likely): Make variables const.
29466 2014-05-03 Denis Chertykov <chertykov@gmail.com>
29468 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
29470 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
29472 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
29474 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
29476 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
29477 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
29478 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
29480 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
29481 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
29483 Replace usage of ROUND_REG with sh_round_reg.
29484 Use CEIL instead of ROUND_ADVANCE.
29486 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
29489 * config/sh/sh.c: Include stdlib headers before everything else.
29491 2014-05-02 Jakub Jelinek <jakub@redhat.com>
29493 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
29494 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
29495 (gimplify_adjust_omp_clauses): Simd region is never
29496 directly nested in combined parallel. Instead, for linear
29497 with copyin/copyout, if in combined for simd loop, make decl
29498 firstprivate/lastprivate on OMP_FOR.
29499 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
29500 expand_omp_for_static_chunk): When setting endvar, also set
29501 fd->loop.v to the same value.
29503 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
29505 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
29507 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
29509 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
29512 2014-05-02 Marek Polacek <polacek@redhat.com>
29514 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
29516 2014-05-02 Kito Cheng <kito@0xlab.org>
29518 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
29519 to a C expression marco.
29520 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
29521 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
29522 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
29523 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
29524 HONOR_REG_ALLOC_ORDER.
29525 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
29527 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29529 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
29531 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
29533 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
29535 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
29537 * tree-if-conv.c (is_cond_scalar_reduction): New function.
29538 (convert_scalar_cond_reduction): Likewise.
29539 (predicate_scalar_phi): Add recognition and transformation
29540 of simple conditioanl reduction to be vectorizable.
29542 2014-05-01 Marek Polacek <polacek@redhat.com>
29545 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
29547 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
29549 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
29550 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
29551 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
29552 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
29553 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
29554 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
29555 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
29556 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
29558 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
29560 * config/arc/arc.opt (mlra): Move comment above option name
29561 to avoid mis-parsing as language options.
29563 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29565 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
29566 * config/sol2.h: ... here.
29567 * config/sol2-10.h: Remove.
29569 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
29570 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
29571 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
29572 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
29573 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
29574 * config/sol2.h: ... here.
29575 (SECTION_NAME_FORMAT): Don't redefine.
29576 (STARTFILE_ARCH32_SPEC): Rename to ...
29577 (STARTFILE_ARCH_SPEC): ... this.
29578 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
29579 * config/sparc/sol2.h: ... here.
29580 (SECTION_NAME_FORMAT): Don't undef.
29581 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
29582 (SUBTARGET_EXTRA_SPECS): Remove.
29583 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
29585 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
29586 (MD_STARTFILE_PREFIX): Remove.
29587 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
29588 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
29589 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
29590 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
29591 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
29592 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
29593 * config/i386/sol2.h: ... here.
29594 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
29595 * config/i386/sol2-bi.h: Remove.
29596 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
29597 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
29599 * config/i386/t-sol2-64: Rename to ...
29600 * config/i386/t-sol2: ... this.
29601 * config/sparc/t-sol2-64: Rename to ...
29602 * config/sparc/t-sol2: ... this.
29604 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
29605 sol2_tm_file_head, sol2_tm_file_tail.
29606 Include ${cpu_type}/sol2.h before sol2.h.
29608 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
29609 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
29610 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
29611 Reflect i386/t-sol2-64 renaming.
29612 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
29613 Reflect sparc/t-sol2-64 renaming.
29615 2014-04-30 Richard Biener <rguenther@suse.de>
29617 * passes.c (execute_function_todo): Move TODO_verify_stmts
29618 and TODO_verify_ssa under the TODO_verify_il umbrella.
29619 * tree-ssa.h (verify_ssa): Adjust prototype.
29620 * tree-ssa.c (verify_ssa): Add parameter to tell whether
29621 we should verify SSA operands.
29622 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
29623 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
29624 whether we should verify whether not throwing stmts have EH info.
29625 * graphite-scop-detection.c (create_sese_edges): Adjust.
29626 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
29627 * tree-eh.c (lower_try_finally_switch): Do not add the
29628 default case label twice.
29630 2014-04-30 Marek Polacek <polacek@redhat.com>
29632 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
29633 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
29634 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
29635 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
29637 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
29639 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
29640 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
29641 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
29642 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
29643 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
29644 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
29645 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
29646 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
29648 2014-04-29 David Malcolm <dmalcolm@redhat.com>
29650 * tree-cfg.c (dump_function_to_file): Dump the return type of
29651 functions, in a line to itself before the function body, mimicking
29652 the layout of a C function.
29654 2014-04-29 Jakub Jelinek <jakub@redhat.com>
29656 PR tree-optimization/60971
29657 * tree-tailcall.c (process_assignment): Reject conversions which
29660 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
29662 * calls.c (initialize_argument_information): Always treat
29663 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
29664 (expand_call): Likewise.
29665 (emit_library_call_calue_1): Likewise.
29666 * expr.c (PUSH_ARGS_REVERSED): Do not define.
29667 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
29670 2014-04-29 Nick Clifton <nickc@redhat.com>
29672 * config/msp430/msp430.md (umulsidi): Fix typo.
29673 (mulhisi3): Enable even inside interrupt handlers.
29674 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
29675 bigger return address pushed in large mode.
29677 2014-04-29 Nick Clifton <nickc@redhat.com>
29679 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
29680 (arc_init_reg_tables): Use a machine_mode enum to iterate over
29682 * config/m32r/m32r.c (init_reg_tables): Likewise.
29683 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
29684 enum to hold the modes.
29686 2014-04-29 Richard Biener <rguenther@suse.de>
29688 * dominance.c (free_dominance_info): Add overload with
29689 function parameter.
29690 (dom_info_state): Likewise.
29691 (dom_info_available_p): Likewise.
29692 * basic-block.h (free_dominance_info, dom_info_state,
29693 dom_info_available_p): Declare overloads.
29694 * passes.c (execute_function_todo): Verify that verifiers
29695 don't change dominator info state. Drop dominator info
29696 for IPA pass invocations.
29697 * cgraph.c (release_function_body): Restore asserts that
29698 dominator information is released.
29700 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
29702 * doc/invoke.texi: Fix typo.
29703 * tree-vrp.c: Fix typos.
29704 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
29706 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
29708 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
29710 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
29712 * config/aarch64/aarch64-builtins.c
29713 (aarch64_types_storestruct_lane_qualifiers): New.
29714 (TYPES_STORESTRUCT_LANE): Likewise.
29715 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
29716 (st3_lane): Likewise.
29717 (st4_lane): Likewise.
29718 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
29719 (vec_store_lanesci_lane<mode>): Likewise.
29720 (vec_store_lanesxi_lane<mode>): Likewise.
29721 (aarch64_st2_lane<VQ:mode>): Likewise.
29722 (aarch64_st3_lane<VQ:mode>): Likewise.
29723 (aarch64_st4_lane<VQ:mode>): Likewise.
29724 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
29725 * config/aarch64/arm_neon.h
29726 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
29727 use new macro arguments.
29728 (__ST3_LANE_FUNC): Likewise.
29729 (__ST4_LANE_FUNC): Likewise.
29730 * config/aarch64/iterators.md (V_TWO_ELEM): New.
29731 (V_THREE_ELEM): Likewise.
29732 (V_FOUR_ELEM): Likewise.
29734 2014-04-28 David Malcolm <dmalcolm@redhat.com>
29736 * doc/gimple.texi: Replace the description of the now-defunct
29737 union gimple_statement_d with a diagram showing the
29738 gimple_statement_base class hierarchy and its relationships to
29739 the GSS_ and GIMPLE_ enums.
29741 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
29743 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
29744 * config/aarch64/aarch64.c
29745 (aarch64_cannot_change_mode_class): Weaken conditions.
29746 (aarch64_modes_tieable_p): New.
29747 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
29749 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
29751 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29752 (loadsync_<mode>): Change mode.
29753 (load_quadpti, store_quadpti): New.
29754 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29755 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29757 2014-04-28 Martin Jambor <mjambor@suse.cz>
29759 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
29760 same alias type as the original statement.
29761 (subreplacement_assignment_data): New type.
29762 (handle_unscalarized_data_in_subtree): New type of parameter,
29763 generate new memory accesses with same alias type as the original
29765 (load_assign_lhs_subreplacements): Likewise.
29766 (sra_modify_constructor_assign): Generate new memory accesses with
29767 same alias type as the original statement.
29769 2014-04-28 Richard Biener <rguenther@suse.de>
29771 * tree-pass.h (TODO_verify_il): Define.
29772 (TODO_verify_all): Complete properly.
29773 * passes.c (execute_function_todo): Move existing loop-closed
29774 SSA verification under TODO_verify_il.
29775 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
29776 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
29777 Fix tree sharing issue.
29779 2014-04-28 Richard Biener <rguenther@suse.de>
29781 PR middle-end/60092
29782 * builtins.def (DEF_C11_BUILTIN): Add.
29783 (BUILT_IN_ALIGNED_ALLOC): Likewise.
29784 * coretypes.h (enum function_class): Add function_c11_misc.
29785 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
29786 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
29787 (call_may_clobber_ref_p_1): Likewise.
29788 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29789 (mark_all_reaching_defs_necessary_1): Likewise.
29790 (propagate_necessity): Likewise.
29791 (eliminate_unnecessary_stmts): Likewise.
29792 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
29794 2014-04-28 Richard Biener <rguenther@suse.de>
29796 * tree-vrp.c (vrp_var_may_overflow): Remove.
29797 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
29798 with overflow immediately bump to one before that value and
29799 let iteration figure out overflow status.
29801 2014-04-28 Richard Biener <rguenther@suse.de>
29803 * configure.ac: Do valgrind header checks unconditionally.
29804 Add --enable-valgrind-annotations.
29805 * system.h: Guard valgrind header inclusion with
29806 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
29807 * alloc-pool.c (pool_alloc, pool_free): Use
29808 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
29809 to guard possibly dead code.
29810 * config.in: Regenerated.
29811 * configure: Likewise.
29813 2014-04-28 Jeff Law <law@redhat.com>
29815 PR tree-optimization/60902
29816 * tree-ssa-threadedge.c
29817 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
29818 over real defs when invalidating outputs from statements that do not
29819 produce useful outputs for threading.
29821 2014-04-28 Richard Biener <rguenther@suse.de>
29823 PR tree-optimization/60979
29824 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
29825 SCOPs that end in a block with a successor with abnormal
29828 2014-04-28 Richard Biener <rguenther@suse.de>
29830 * tree-pass.h (execute_pass_list): Adjust prototype.
29831 * passes.c (pass_manager::execute_early_local_passes): Adjust.
29832 (do_per_function): Change callback signature, push all actual
29833 work to the callbals.
29834 (do_per_function_toporder): Likewise.
29835 (execute_function_dump): Adjust.
29836 (execute_function_todo): Likewise.
29837 (clear_last_verified): Likewise.
29838 (verify_curr_properties): Likewise.
29839 (update_properties_after_pass): Likewise.
29840 (execute_pass_list_1): Split out from ...
29841 (execute_pass_list): ... here. Adjust.
29842 (execute_ipa_pass_list): Likewise.
29843 * cgraphunit.c (cgraph_add_new_function): Adjust.
29844 (analyze_function): Likewise.
29845 (expand_function): Likewise.
29846 * cgraph.c (release_function_body): Free dominance info
29847 here instead of asserting it was magically freed elsewhere.
29849 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
29851 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
29852 * configure: Regenerate.
29853 * config/sparc/sparc.opt (muser-mode): New option.
29854 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
29856 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
29857 * doc/invoke.texi (SPARC options): Document -muser-mode.
29859 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
29861 * cselib.c (find_slot_memmode): Delete.
29862 (cselib_hasher): Change compare_type to a struct.
29863 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
29865 (preserve_constants_and_equivs): Adjust for new compare_type.
29866 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
29867 (wrap_constant): Delete.
29868 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
29870 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
29872 * doc/install.texi (Building with profile feedback): Remove
29875 2014-04-26 Tom de Vries <tom@codesourcery.com>
29877 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
29880 2014-04-25 Cary Coutant <ccoutant@google.com>
29883 * dwarf2out.c (should_move_die_to_comdat): A type definition
29884 can contain a subprogram definition, but don't move it to a
29886 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
29887 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
29889 (clone_tree_hash): Rename to...
29890 (clone_tree_partial): ...this; change callers. Copy
29891 DW_TAG_subprogram DIEs as declarations.
29892 (copy_decls_walk): Don't copy children of a declaration into a
29895 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
29898 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
29901 2014-04-25 Jiong Wang <jiong.wang@arm.com>
29903 * config/arm/predicates.md (call_insn_operand): Add long_call check.
29904 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
29906 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
29909 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29911 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
29913 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29915 PR tree-optimization/60930
29916 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
29917 creating a multiply candidate by folding two constant
29918 multiplicands when the result overflows.
29920 2014-04-25 Jakub Jelinek <jakub@redhat.com>
29922 PR tree-optimization/60960
29923 * tree-vect-generic.c (expand_vector_operation): Only call
29924 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
29926 2014-04-25 Tom de Vries <tom@codesourcery.com>
29928 * expr.c (clobber_reg_mode): New function.
29929 * expr.h (clobber_reg): New function.
29931 2014-04-25 Tom de Vries <tom@codesourcery.com>
29933 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
29936 2014-04-25 Radovan Obradovic <robradovic@mips.com>
29937 Tom de Vries <tom@codesourcery.com>
29939 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
29941 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
29942 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
29943 new argument to find_all_hard_reg_sets call.
29945 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29947 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
29948 Use HOST_WIDE_INT_C for mask literal.
29949 (aarch_rev16_shleft_mask_imm_p): Likewise.
29951 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
29954 * config/sparc/sparc.md (ashlsi3_extend): Delete.
29956 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
29958 PR preprocessor/56540
29959 * config/i386/i386-c.c (ix86_target_macros): Define
29960 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
29962 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29964 * configure.ac (tga_func): Remove.
29965 (LIB_TLS_SPEC): Remove.
29966 * configure: Regenerate.
29967 * config.in: Regenerate.
29968 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
29970 2014-04-25 Richard Biener <rguenther@suse.de>
29973 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
29974 call stmt use/clobber sets during stmt walk instead of
29975 walking the possibly incomplete set of caller edges.
29977 2014-04-25 Richard Biener <rguenther@suse.de>
29980 * passes.c (apply_ipa_transforms): Inline into only caller ...
29981 (execute_one_pass): ... here. Properly bring in function
29982 bodies for nodes we want to apply IPA transforms to.
29984 2014-04-24 Cong Hou <congh@google.com>
29986 PR tree-optimization/60896
29987 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
29988 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
29989 (vect_mark_pattern_stmts): Set the def type of all statements in
29990 PATTERN_DEF_SEQ as vect_internal_def.
29992 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
29994 * doc/extend.texi (PowerPC Built-in Functions): Document new
29995 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
29996 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
29998 * config/rs6000/predicates.md (const_0_to_3_operand): New
29999 predicate to match 0..3 integer constants.
30001 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
30002 to support adding miscellaneous builtin functions.
30003 (BU_DFP_MISC_2): Likewise.
30004 (BU_P7_MISC_1): Likewise.
30005 (BU_P7_MISC_2): Likewise.
30006 (BU_P8V_MISC_3): Likewise.
30007 (BU_MISC_1): Likewise.
30008 (BU_MISC_2): Likewise.
30009 (DIVWE): Add extended divide builtin functions.
30010 (DIVWEO): Likewise.
30011 (DIVWEU): Likewise.
30012 (DIVWEUO): Likewise.
30014 (DIVDEO): Likewise.
30015 (DIVDEU): Likewise.
30016 (DIVDEUO): Likewise.
30017 (DXEX): Add decimal floating-point builtin functions.
30019 (DDEDPD): Likewise.
30020 (DDEDPDQ): Likewise.
30021 (DENBCD): Likewise.
30022 (DENBCDQ): Likewise.
30026 (DSCLIQ): Likewise.
30028 (DSCRIQ): Likewise.
30029 (CDTBCD): Add new BCD builtin functions.
30030 (CBCDTD): Likewise.
30031 (ADDG6S): Likewise.
30032 (BCDADD): Likewise.
30033 (BCDADD_LT): Likewise.
30034 (BCDADD_EQ): Likewise.
30035 (BCDADD_GT): Likewise.
30036 (BCDADD_OV): Likewise.
30037 (BCDSUB): Likewise.
30038 (BCDSUB_LT): Likewise.
30039 (BCDSUB_EQ): Likewise.
30040 (BCDSUB_GT): Likewise.
30041 (BCDSUB_OV): Likewise.
30042 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
30043 (UNPACK_TD): Likewise.
30044 (PACK_TF): Likewise.
30045 (UNPACK_TF): Likewise.
30046 (UNPACK_TF_0): Likewise.
30047 (UNPACK_TF_1): Likewise.
30048 (PACK_V1TI): Likewise.
30049 (UNPACK_V1TI): Likewise.
30051 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
30052 support for decimal floating point builtin functions.
30053 (rs6000_expand_ternop_builtin): Add checks for the new builtin
30054 functions that take constant arguments.
30055 (rs6000_invalid_builtin): Add decimal floating point builtin support.
30056 (rs6000_init_builtins): Setup long double, _Decimal64, and
30057 _Decimal128 types for new builtin functions.
30058 (builtin_function_type): Set the unsigned flags appropriately for
30059 the new builtin functions.
30060 (rs6000_opt_masks): Add support for decimal floating point builtin
30063 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
30064 floating point builtin functions.
30065 (RS6000_BTM_COMMON): Likewise.
30066 (RS6000_BTI_long_double): Likewise.
30067 (RS6000_BTI_dfloat64): Likewise.
30068 (RS6000_BTI_dfloat128): Likewise.
30069 (long_double_type_internal_node): Likewise.
30070 (dfloat64_type_internal_node): Likewise.
30071 (dfloat128_type_internal_node): Likewise.
30073 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
30074 2.07 bcd arithmetic instructions.
30075 (UNSPEC_BCDSUB): Likewise.
30076 (UNSPEC_BCD_OVERFLOW): Likewise.
30077 (UNSPEC_BCD_ADD_SUB): Likewise.
30078 (bcd_add_sub): Likewise.
30079 (BCD_TEST): Likewise.
30080 (bcd<bcd_add_sub>): Likewise.
30081 (bcd<bcd_add_sub>_test): Likewise.
30082 (bcd<bcd_add_sub>_test2): Likewise.
30083 (bcd<bcd_add_sub>_<code>): Likewise.
30084 (peephole2 for combined bcd ops): Likewise.
30086 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
30087 decimal floating point builtin functions.
30088 (UNSPEC_DENBCD): Likewise.
30089 (UNSPEC_DXEX): Likewise.
30090 (UNSPEC_DIEX): Likewise.
30091 (UNSPEC_DSCLI): Likewise.
30092 (UNSPEC_DSCRI): Likewise.
30093 (D64_D128): Likewise.
30094 (dfp_suffix): Likewise.
30095 (dfp_ddedpd_<mode>): Likewise.
30096 (dfp_denbcd_<mode>): Likewise.
30097 (dfp_dxex_<mode>): Likewise.
30098 (dfp_diex_<mode>): Likewise.
30099 (dfp_dscli_<mode>): Likewise.
30100 (dfp_dscri_<mode>): Likewise.
30102 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
30104 (UNSPEC_CDTBCD): Likewise.
30105 (UNSPEC_CBCDTD): Likewise.
30106 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
30107 (UNSPEC_DIVEO): Likewise.
30108 (UNSPEC_DIVEU): Likewise.
30109 (UNSPEC_DIVEUO): Likewise.
30110 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
30111 pack/unpack 128-bit types.
30112 (UNSPEC_PACK_128BIT): Likewise.
30113 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
30114 (udiv<mode>3): Use idiv_ldiv mode attribute.
30115 (div<mode>3): Likewise.
30116 (addg6s): Add new BCD builtin functions.
30117 (cdtbcd): Likewise.
30118 (cbcdtd): Likewise.
30119 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
30120 (div_extend): Likewise.
30121 (div<div_extend>_<mode>"): Likewise.
30122 (FP128_64): Add support for new builtin functions to pack/unpack
30124 (unpack<mode>): Likewise.
30125 (unpacktf_0): Likewise.
30126 (unpacktf_1): Likewise.
30127 (unpack<mode>_dm): Likewise.
30128 (unpack<mode>_nodm): Likewise.
30129 (pack<mode>): Likewise.
30130 (unpackv1ti): Likewise.
30131 (packv1ti): Likewise.
30133 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
30135 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
30138 2014-04-24 Jakub Jelinek <jakub@redhat.com>
30140 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
30141 * gimplify.c (omp_is_private): Change last argument's type to int.
30142 Only diagnose lastprivate if the simd argument is 1, only diagnose
30143 linear if the simd argument is 2.
30144 (gimplify_omp_for): Adjust omp_is_private callers. When adding
30145 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
30146 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
30147 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
30148 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
30149 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
30150 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
30151 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
30152 * tree-nested.c (convert_nonlocal_omp_clauses,
30153 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
30155 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
30158 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
30161 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
30163 * flag-types.h (enum ivar_visibility): Add.
30165 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
30167 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
30168 function * argument.
30170 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
30172 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
30174 2014-04-24 Radovan Obradovic <robradovic@mips.com>
30175 Tom de Vries <tom@codesourcery.com>
30177 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
30178 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
30180 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
30181 * emit-rtl.c (try_split): Same.
30183 2014-04-24 Radovan Obradovic <robradovic@mips.com>
30184 Tom de Vries <tom@codesourcery.com>
30186 * common.opt (fuse-caller-save): New option.
30188 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
30190 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
30191 elements for big-endian.
30193 2014-04-24 Richard Biener <rguenther@suse.de>
30195 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
30196 during TER and instead use the sepops interface for expanding
30197 non-GIMPLE_SINGLE_RHS.
30199 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30201 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
30202 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
30204 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30206 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
30207 assembler 64-bit option.
30208 * configure: Regenerate.
30210 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30212 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
30213 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
30214 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
30215 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
30216 (TARGET_CRYPTO): Take TARGET_SIMD into account.
30218 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30220 * config/aarch64/aarch64-builtins.c
30221 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
30222 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
30223 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
30224 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
30226 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
30227 (Vrevsuff): New mode attribute.
30229 2014-04-24 Terry Guo <terry.guo@arm.com>
30231 * config/arm/arm.h (machine_function): Define variable
30232 after_arm_reorg here.
30233 * config/arm/arm.c (after_arm_reorg): Remove the definition.
30234 (arm_split_constant): Update the way to access variable
30236 (arm_reorg): Ditto.
30237 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
30239 2014-04-23 Tom de Vries <tom@codesourcery.com>
30241 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
30243 2014-04-23 David Malcolm <dmalcolm@redhat.com>
30245 * is-a.h: Update comments to reflect the following changes to the
30246 "pointerness" of the API, making the template parameter match the
30247 return type, allowing use of is-a.h with typedefs of pointers.
30248 (is_a_helper::cast): Return a T rather then a pointer to a T, so
30249 that the return type matches the parameter to the is_a_helper.
30251 (dyn_cast): Likewise.
30253 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
30254 pointer from the is-a.h API.
30256 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
30257 (is_a_helper <cgraph_node *>::test): ...this, matching change to
30259 (is_a_helper <varpool_node>::test): Likewise, convert to...
30260 (is_a_helper <varpool_node *>::test): ...this.
30262 (varpool_first_variable): Update for removal of implicit pointer
30263 from the is-a.h API.
30264 (varpool_next_variable): Likewise.
30265 (varpool_first_static_initializer): Likewise.
30266 (varpool_next_static_initializer): Likewise.
30267 (varpool_first_defined_variable): Likewise.
30268 (varpool_next_defined_variable): Likewise.
30269 (cgraph_first_defined_function): Likewise.
30270 (cgraph_next_defined_function): Likewise.
30271 (cgraph_first_function): Likewise.
30272 (cgraph_next_function): Likewise.
30273 (cgraph_first_function_with_gimple_body): Likewise.
30274 (cgraph_next_function_with_gimple_body): Likewise.
30275 (cgraph_alias_target): Likewise.
30276 (varpool_alias_target): Likewise.
30277 (cgraph_function_or_thunk_node): Likewise.
30278 (varpool_variable_node): Likewise.
30279 (symtab_real_symbol_p): Likewise.
30280 * cgraphunit.c (referred_to_p): Likewise.
30281 (analyze_functions): Likewise.
30282 (handle_alias_pairs): Likewise.
30283 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
30284 * gimple-ssa.h (gimple_vuse_op): Likewise.
30285 (gimple_vdef_op): Likewise.
30286 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
30287 * gimple.c (gimple_build_asm_1): Likewise.
30288 (gimple_build_try): Likewise.
30289 (gimple_build_resx): Likewise.
30290 (gimple_build_eh_dispatch): Likewise.
30291 (gimple_build_omp_for): Likewise.
30292 (gimple_omp_for_set_clauses): Likewise.
30294 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
30295 (is_a_helper <gimple_statement_asm *>::test): ...this.
30296 (is_a_helper <gimple_statement_bind>::test): Convert to...
30297 (is_a_helper <gimple_statement_bind *>::test): ...this.
30298 (is_a_helper <gimple_statement_call>::test): Convert to...
30299 (is_a_helper <gimple_statement_call *>::test): ...this.
30300 (is_a_helper <gimple_statement_catch>::test): Convert to...
30301 (is_a_helper <gimple_statement_catch *>::test): ...this.
30302 (is_a_helper <gimple_statement_resx>::test): Convert to...
30303 (is_a_helper <gimple_statement_resx *>::test): ...this.
30304 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
30305 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
30306 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
30307 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
30308 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
30309 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
30310 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
30311 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
30312 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
30313 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
30314 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
30315 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
30316 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
30317 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
30318 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
30319 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
30320 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
30321 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
30322 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
30323 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
30324 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
30325 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
30326 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
30327 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
30328 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
30329 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
30330 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
30331 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
30332 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
30333 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
30334 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
30335 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
30336 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
30337 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
30338 (is_a_helper <gimple_statement_phi>::test): Convert to...
30339 (is_a_helper <gimple_statement_phi *>::test): ...this.
30340 (is_a_helper <gimple_statement_transaction>::test): Convert to...
30341 (is_a_helper <gimple_statement_transaction *>::test): ...this.
30342 (is_a_helper <gimple_statement_try>::test): Convert to...
30343 (is_a_helper <gimple_statement_try *>::test): ...this.
30344 (is_a_helper <gimple_statement_wce>::test): Convert to...
30345 (is_a_helper <gimple_statement_wce *>::test): ...this.
30346 (is_a_helper <const gimple_statement_asm>::test): Convert to...
30347 (is_a_helper <const gimple_statement_asm *>::test): ...this.
30348 (is_a_helper <const gimple_statement_bind>::test): Convert to...
30349 (is_a_helper <const gimple_statement_bind *>::test): ...this.
30350 (is_a_helper <const gimple_statement_call>::test): Convert to...
30351 (is_a_helper <const gimple_statement_call *>::test): ...this.
30352 (is_a_helper <const gimple_statement_catch>::test): Convert to...
30353 (is_a_helper <const gimple_statement_catch *>::test): ...this.
30354 (is_a_helper <const gimple_statement_resx>::test): Convert to...
30355 (is_a_helper <const gimple_statement_resx *>::test): ...this.
30356 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
30357 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
30358 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
30359 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
30360 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
30362 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
30364 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
30366 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
30368 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
30369 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
30370 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
30372 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
30373 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
30375 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
30376 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
30377 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
30378 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
30379 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
30380 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
30382 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
30383 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
30384 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
30385 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
30387 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
30388 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
30389 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
30390 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
30391 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
30392 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
30393 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
30394 (is_a_helper <const gimple_statement_phi>::test): Convert to...
30395 (is_a_helper <const gimple_statement_phi *>::test): ...this.
30396 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
30397 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
30398 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
30399 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
30400 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
30401 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
30402 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
30404 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
30406 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
30407 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
30409 (gimple_use_ops): Update for removal of implicit pointer from the
30411 (gimple_set_use_ops): Likewise.
30412 (gimple_vuse): Likewise.
30413 (gimple_vdef): Likewise.
30414 (gimple_vuse_ptr): Likewise.
30415 (gimple_vdef_ptr): Likewise.
30416 (gimple_set_vuse): Likewise.
30417 (gimple_set_vdef): Likewise.
30418 (gimple_omp_return_set_lhs): Likewise.
30419 (gimple_omp_return_lhs): Likewise.
30420 (gimple_omp_return_lhs_ptr): Likewise.
30421 (gimple_call_fntype): Likewise.
30422 (gimple_call_set_fntype): Likewise.
30423 (gimple_call_set_internal_fn): Likewise.
30424 (gimple_call_use_set): Likewise.
30425 (gimple_call_clobber_set): Likewise.
30426 (gimple_bind_vars): Likewise.
30427 (gimple_bind_set_vars): Likewise.
30428 (gimple_bind_body_ptr): Likewise.
30429 (gimple_bind_set_body): Likewise.
30430 (gimple_bind_add_stmt): Likewise.
30431 (gimple_bind_block): Likewise.
30432 (gimple_bind_set_block): Likewise.
30433 (gimple_asm_ninputs): Likewise.
30434 (gimple_asm_noutputs): Likewise.
30435 (gimple_asm_nclobbers): Likewise.
30436 (gimple_asm_nlabels): Likewise.
30437 (gimple_asm_input_op): Likewise.
30438 (gimple_asm_input_op_ptr): Likewise.
30439 (gimple_asm_output_op): Likewise.
30440 (gimple_asm_output_op_ptr): Likewise.
30441 (gimple_asm_set_output_op): Likewise.
30442 (gimple_asm_clobber_op): Likewise.
30443 (gimple_asm_set_clobber_op): Likewise.
30444 (gimple_asm_label_op): Likewise.
30445 (gimple_asm_set_label_op): Likewise.
30446 (gimple_asm_string): Likewise.
30447 (gimple_catch_types): Likewise.
30448 (gimple_catch_types_ptr): Likewise.
30449 (gimple_catch_handler_ptr): Likewise.
30450 (gimple_catch_set_types): Likewise.
30451 (gimple_catch_set_handler): Likewise.
30452 (gimple_eh_filter_types): Likewise.
30453 (gimple_eh_filter_types_ptr): Likewise.
30454 (gimple_eh_filter_failure_ptr): Likewise.
30455 (gimple_eh_filter_set_types): Likewise.
30456 (gimple_eh_filter_set_failure): Likewise.
30457 (gimple_eh_must_not_throw_fndecl): Likewise.
30458 (gimple_eh_must_not_throw_set_fndecl): Likewise.
30459 (gimple_eh_else_n_body_ptr): Likewise.
30460 (gimple_eh_else_e_body_ptr): Likewise.
30461 (gimple_eh_else_set_n_body): Likewise.
30462 (gimple_eh_else_set_e_body): Likewise.
30463 (gimple_try_eval_ptr): Likewise.
30464 (gimple_try_cleanup_ptr): Likewise.
30465 (gimple_try_set_eval): Likewise.
30466 (gimple_try_set_cleanup): Likewise.
30467 (gimple_wce_cleanup_ptr): Likewise.
30468 (gimple_wce_set_cleanup): Likewise.
30469 (gimple_phi_capacity): Likewise.
30470 (gimple_phi_num_args): Likewise.
30471 (gimple_phi_result): Likewise.
30472 (gimple_phi_result_ptr): Likewise.
30473 (gimple_phi_set_result): Likewise.
30474 (gimple_phi_arg): Likewise.
30475 (gimple_phi_set_arg): Likewise.
30476 (gimple_resx_region): Likewise.
30477 (gimple_resx_set_region): Likewise.
30478 (gimple_eh_dispatch_region): Likewise.
30479 (gimple_eh_dispatch_set_region): Likewise.
30480 (gimple_omp_critical_name): Likewise.
30481 (gimple_omp_critical_name_ptr): Likewise.
30482 (gimple_omp_critical_set_name): Likewise.
30483 (gimple_omp_for_clauses): Likewise.
30484 (gimple_omp_for_clauses_ptr): Likewise.
30485 (gimple_omp_for_set_clauses): Likewise.
30486 (gimple_omp_for_collapse): Likewise.
30487 (gimple_omp_for_index): Likewise.
30488 (gimple_omp_for_index_ptr): Likewise.
30489 (gimple_omp_for_set_index): Likewise.
30490 (gimple_omp_for_initial): Likewise.
30491 (gimple_omp_for_initial_ptr): Likewise.
30492 (gimple_omp_for_set_initial): Likewise.
30493 (gimple_omp_for_final): Likewise.
30494 (gimple_omp_for_final_ptr): Likewise.
30495 (gimple_omp_for_set_final): Likewise.
30496 (gimple_omp_for_incr): Likewise.
30497 (gimple_omp_for_incr_ptr): Likewise.
30498 (gimple_omp_for_set_incr): Likewise.
30499 (gimple_omp_for_pre_body_ptr): Likewise.
30500 (gimple_omp_for_set_pre_body): Likewise.
30501 (gimple_omp_parallel_clauses): Likewise.
30502 (gimple_omp_parallel_clauses_ptr): Likewise.
30503 (gimple_omp_parallel_set_clauses): Likewise.
30504 (gimple_omp_parallel_child_fn): Likewise.
30505 (gimple_omp_parallel_child_fn_ptr): Likewise.
30506 (gimple_omp_parallel_set_child_fn): Likewise.
30507 (gimple_omp_parallel_data_arg): Likewise.
30508 (gimple_omp_parallel_data_arg_ptr): Likewise.
30509 (gimple_omp_parallel_set_data_arg): Likewise.
30510 (gimple_omp_task_clauses): Likewise.
30511 (gimple_omp_task_clauses_ptr): Likewise.
30512 (gimple_omp_task_set_clauses): Likewise.
30513 (gimple_omp_task_child_fn): Likewise.
30514 (gimple_omp_task_child_fn_ptr): Likewise.
30515 (gimple_omp_task_set_child_fn): Likewise.
30516 (gimple_omp_task_data_arg): Likewise.
30517 (gimple_omp_task_data_arg_ptr): Likewise.
30518 (gimple_omp_task_set_data_arg): Likewise.
30519 (gimple_omp_taskreg_clauses): Likewise.
30520 (gimple_omp_taskreg_clauses_ptr): Likewise.
30521 (gimple_omp_taskreg_set_clauses): Likewise.
30522 (gimple_omp_taskreg_child_fn): Likewise.
30523 (gimple_omp_taskreg_child_fn_ptr): Likewise.
30524 (gimple_omp_taskreg_set_child_fn): Likewise.
30525 (gimple_omp_taskreg_data_arg): Likewise.
30526 (gimple_omp_taskreg_data_arg_ptr): Likewise.
30527 (gimple_omp_taskreg_set_data_arg): Likewise.
30528 (gimple_omp_task_copy_fn): Likewise.
30529 (gimple_omp_task_copy_fn_ptr): Likewise.
30530 (gimple_omp_task_set_copy_fn): Likewise.
30531 (gimple_omp_task_arg_size): Likewise.
30532 (gimple_omp_task_arg_size_ptr): Likewise.
30533 (gimple_omp_task_set_arg_size): Likewise.
30534 (gimple_omp_task_arg_align): Likewise.
30535 (gimple_omp_task_arg_align_ptr): Likewise.
30536 (gimple_omp_task_set_arg_align): Likewise.
30537 (gimple_omp_single_clauses): Likewise.
30538 (gimple_omp_single_clauses_ptr): Likewise.
30539 (gimple_omp_single_set_clauses): Likewise.
30540 (gimple_omp_target_clauses): Likewise.
30541 (gimple_omp_target_clauses_ptr): Likewise.
30542 (gimple_omp_target_set_clauses): Likewise.
30543 (gimple_omp_target_child_fn): Likewise.
30544 (gimple_omp_target_child_fn_ptr): Likewise.
30545 (gimple_omp_target_set_child_fn): Likewise.
30546 (gimple_omp_target_data_arg): Likewise.
30547 (gimple_omp_target_data_arg_ptr): Likewise.
30548 (gimple_omp_target_set_data_arg): Likewise.
30549 (gimple_omp_teams_clauses): Likewise.
30550 (gimple_omp_teams_clauses_ptr): Likewise.
30551 (gimple_omp_teams_set_clauses): Likewise.
30552 (gimple_omp_sections_clauses): Likewise.
30553 (gimple_omp_sections_clauses_ptr): Likewise.
30554 (gimple_omp_sections_set_clauses): Likewise.
30555 (gimple_omp_sections_control): Likewise.
30556 (gimple_omp_sections_control_ptr): Likewise.
30557 (gimple_omp_sections_set_control): Likewise.
30558 (gimple_omp_for_set_cond): Likewise.
30559 (gimple_omp_for_cond): Likewise.
30560 (gimple_omp_atomic_store_set_val): Likewise.
30561 (gimple_omp_atomic_store_val): Likewise.
30562 (gimple_omp_atomic_store_val_ptr): Likewise.
30563 (gimple_omp_atomic_load_set_lhs): Likewise.
30564 (gimple_omp_atomic_load_lhs): Likewise.
30565 (gimple_omp_atomic_load_lhs_ptr): Likewise.
30566 (gimple_omp_atomic_load_set_rhs): Likewise.
30567 (gimple_omp_atomic_load_rhs): Likewise.
30568 (gimple_omp_atomic_load_rhs_ptr): Likewise.
30569 (gimple_omp_continue_control_def): Likewise.
30570 (gimple_omp_continue_control_def_ptr): Likewise.
30571 (gimple_omp_continue_set_control_def): Likewise.
30572 (gimple_omp_continue_control_use): Likewise.
30573 (gimple_omp_continue_control_use_ptr): Likewise.
30574 (gimple_omp_continue_set_control_use): Likewise.
30575 (gimple_transaction_body_ptr): Likewise.
30576 (gimple_transaction_label): Likewise.
30577 (gimple_transaction_label_ptr): Likewise.
30578 (gimple_transaction_set_body): Likewise.
30579 (gimple_transaction_set_label): Likewise.
30581 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
30582 * ipa-inline-analysis.c (inline_write_summary): Likewise.
30583 * ipa-ref.c (ipa_record_reference): Likewise.
30584 * ipa-reference.c (analyze_function): Likewise.
30585 (ipa_reference_write_optimization_summary): Likewise.
30586 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
30587 (address_taken_from_non_vtable_p): Likewise.
30588 (comdat_can_be_unshared_p_1): Likewise.
30589 * lto-cgraph.c (lto_output_ref): Likewise.
30590 (add_references): Likewise.
30591 (compute_ltrans_boundary): Likewise.
30592 (output_symtab): Likewise.
30593 (input_ref): Likewise.
30594 (input_cgraph_1): Likewise.
30595 (output_cgraph_opt_summary): Likewise.
30596 * lto-streamer-out.c (lto_output): Likewise.
30597 (output_symbol_p): Likewise.
30598 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
30599 (lsei_start_function_in_partition): Likewise.
30600 (lsei_next_variable_in_partition): Likewise.
30601 (lsei_start_variable_in_partition): Likewise.
30602 * symtab.c (insert_to_assembler_name_hash): Likewise.
30603 (unlink_from_assembler_name_hash): Likewise.
30604 (symtab_unregister_node): Likewise.
30605 (symtab_remove_node): Likewise.
30606 (dump_symtab_node): Likewise.
30607 (verify_symtab_base): Likewise.
30608 (verify_symtab_node): Likewise.
30609 (symtab_make_decl_local): Likewise.
30610 (symtab_alias_ultimate_target): Likewise.
30611 (symtab_resolve_alias): Likewise.
30612 (symtab_get_symbol_partitioning_class): Likewise.
30613 * tree-phinodes.c (allocate_phi_node): Likewise.
30614 (reserve_phi_args_for_new_edge): Likewise.
30615 (remove_phi_args): Likewise.
30616 * varpool.c (varpool_node_for_asm): Likewise.
30617 (varpool_remove_unreferenced_decls): Likewise.
30619 2014-04-23 Jeff Law <law@redhat.com>
30621 PR tree-optimization/60902
30622 * tree-ssa-threadedge.c
30623 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
30624 invalidate outputs from statements that do not produce useful
30625 outputs for threading.
30627 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
30629 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
30630 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
30631 machine descriptions for Stack Smashing Protector.
30633 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
30635 * aarch64.md (<optab>_rol<mode>3): New pattern.
30636 (<optab>_rolsi3_uxtw): Likewise.
30637 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
30639 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
30641 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
30642 (arm_cortex_a12_tune): Likewise.
30644 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30646 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
30648 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30650 * config/arm/arm.md (arm_rev16si2): New pattern.
30651 (arm_rev16si2_alt): Likewise.
30652 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
30654 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30656 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
30657 (rev16<mode>2_alt): Likewise.
30658 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
30659 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
30660 (aarch_rev16_shleft_mask_imm_p): Likewise.
30661 (aarch_rev16_p_1): Likewise.
30662 (aarch_rev16_p): Likewise.
30663 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
30664 (aarch_rev16_shright_mask_imm_p): Likewise.
30665 (aarch_rev16_shleft_mask_imm_p): Likewise.
30667 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30669 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
30670 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
30672 (cortex_a53_extra_costs): Likewise.
30673 (cortex_a57_extra_costs): Likewise.
30674 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
30675 (cortexa7_extra_costs): Likewise.
30676 (cortexa8_extra_costs): Likewise.
30677 (cortexa12_extra_costs): Likewise.
30678 (cortexa15_extra_costs): Likewise.
30679 (v7m_extra_costs): Likewise.
30680 (arm_new_rtx_costs): Handle BSWAP.
30682 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30684 * config/arm/arm.c (cortexa8_extra_costs): New table.
30685 (arm_cortex_a8_tune): New tuning struct.
30686 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
30688 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30690 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
30692 2014-04-23 Richard Biener <rguenther@suse.de>
30694 * Makefile.in (OBJS): Remove loop-unswitch.o.
30695 * tree-pass.h (make_pass_rtl_unswitch): Remove.
30696 * passes.def (pass_rtl_unswitch): Likewise.
30697 * loop-init.c (gate_rtl_unswitch): Likewise.
30698 (rtl_unswitch): Likewise.
30699 (pass_data_rtl_unswitch): Likewise.
30700 (pass_rtl_unswitch): Likewise.
30701 (make_pass_rtl_unswitch): Likewise.
30702 * rtl.h (reversed_condition): Likewise.
30703 (compare_and_jump_seq): Likewise.
30704 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
30706 * loop-unroll.c (compare_and_jump_seq): Likewise.
30708 2014-04-23 Richard Biener <rguenther@suse.de>
30710 PR tree-optimization/60903
30711 * tree-ssa-loop-im.c (analyze_memory_references): Remove
30712 commented code block.
30713 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
30714 loop flags to newly created BBs and edges.
30716 2014-04-23 Nick Clifton <nickc@redhat.com>
30718 * config/msp430/msp430.c (msp430_handle_option): Move function
30720 (msp430_option_override): Simplify mcu and mcpu option handling.
30721 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
30722 support for -mhwmult command line option.
30723 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
30724 -mhwmult command line option.
30725 (msp430_hwmult_enabled): Delete.
30726 (msp43o_output_labelref): Add support for -mhwmult command line option.
30727 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
30728 (umulsidi3): Likewise.
30729 * config/msp430/msp430.opt (mmcu): Add Report attribute.
30730 (mcpu, mlarge, msmall): Likewise.
30731 (mhwmult): New option.
30732 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
30734 (msp430_is_f5_mcu): Remove prototype.
30735 (msp430_use_f5_series_hwmult): Add prototype.
30736 * config/msp430/msp430-opts.h: New file.
30737 * common/config/msp430: New directory.
30738 * common/config/msp430/msp430-common.c: New file.
30739 * config.gcc (msp430): Remove target_has_targetm_common.
30740 * doc/invoke.texi: Document -mhwmult command line option.
30742 2014-04-23 Nick Clifton <nickc@redhat.com>
30744 * config/i386/cygwin.h (ENDFILE_SPEC): Include
30745 default-manifest.o if it can be found in the search path.
30746 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30748 2014-04-23 Terry Guo <terry.guo@arm.com>
30750 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
30752 2014-04-23 Richard Biener <rguenther@suse.de>
30754 PR middle-end/60895
30755 * tree-inline.c (declare_return_variable): Use mark_addressable.
30757 2014-04-23 Richard Biener <rguenther@suse.de>
30759 PR middle-end/60891
30760 * loop-init.c (loop_optimizer_init): Make sure to apply
30761 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
30763 2014-04-22 Jakub Jelinek <jakub@redhat.com>
30766 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
30768 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
30769 if flag_sanitize_undefined_trap_on_error.
30770 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
30771 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
30772 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
30773 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
30774 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
30775 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
30776 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
30777 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
30778 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
30779 * ubsan.c (ubsan_instrument_unreachable): Return
30780 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
30781 (ubsan_expand_null_ifn): Emit __builtin_trap ()
30782 if flag_sanitize_undefined_trap_on_error and
30783 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
30784 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
30785 instrument_bool_enum_load): Emit __builtin_trap () if
30786 flag_sanitize_undefined_trap_on_error and
30787 __builtin_handle_*_abort () if !flag_sanitize_recover.
30788 * doc/invoke.texi (-fsanitize-recover,
30789 -fsanitize-undefined-trap-on-error): Document.
30791 2014-04-22 Christian Bruel <christian.bruel@st.com>
30793 * config/sh/sh.md (mov<mode>): Replace movQIHI.
30794 Force immediates to SImode.
30796 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
30798 * config/nios2/nios2.md (UNSPEC_ROUND): New.
30799 (lroundsfsi2): New.
30800 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
30801 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
30802 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
30803 (nios2_fpu_insn): Add entry for round.
30804 (N2FPU_NO_ERRNO_P): Define.
30805 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
30807 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
30809 2014-04-22 Richard Henderson <rth@redhat.com>
30811 * config/aarch64/aarch64 (addti3, subti3): New expanders.
30812 (add<GPI>3_compare0): Remove leading * from name.
30813 (add<GPI>3_carryin): Likewise.
30814 (sub<GPI>3_compare0): Likewise.
30815 (sub<GPI>3_carryin): Likewise.
30816 (<su_optab>mulditi3): New expander.
30817 (multi3): New expander.
30818 (madd<GPI>): Remove leading * from name.
30820 2014-04-22 Martin Jambor <mjambor@suse.cz>
30822 * cgraphclones.c (cgraph_function_versioning): Copy
30823 ipa_transforms_to_apply instead of asserting it is empty.
30825 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
30828 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
30829 on count_exp to get mode.
30831 2014-04-22 Andrew Pinski <apinski@cavium.com>
30833 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
30834 Handle TLS for ILP32.
30835 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
30836 (tlsie_small_<mode>): this and handle PTR.
30837 (tlsie_small_sidi): New pattern.
30838 (tlsle_small): Change to an expand to handle ILP32.
30839 (tlsle_small_<mode>): New pattern.
30840 (tlsdesc_small): Rename to ...
30841 (tlsdesc_small_<mode>): this and handle PTR.
30843 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30845 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
30847 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
30849 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
30850 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
30851 (aarch64_types_signed_poly_qualifiers): Likewise.
30852 (aarch64_types_unsigned_signed_qualifiers): Likewise.
30853 (aarch64_types_poly_signed_qualifiers): Likewise.
30854 (TYPES_REINTERP_SS): Type macro added.
30855 (TYPES_REINTERP_SU): Likewise.
30856 (TYPES_REINTERP_SP): Likewise.
30857 (TYPES_REINTERP_US): Likewise.
30858 (TYPES_REINTERP_PS): Likewise.
30859 (aarch64_fold_builtin): New expression folding added.
30860 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
30861 Declarations removed.
30862 (REINTERP_SS): Declarations added.
30863 (REINTERP_US): Likewise.
30864 (REINTERP_PS): Likewise.
30865 (REINTERP_SU): Likewise.
30866 (REINTERP_SP): Likewise.
30867 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
30868 (vreinterpretq_p8_f64): Likewise.
30869 (vreinterpret_p16_f64): Likewise.
30870 (vreinterpretq_p16_f64): Likewise.
30871 (vreinterpret_f32_f64): Likewise.
30872 (vreinterpretq_f32_f64): Likewise.
30873 (vreinterpret_f64_f32): Likewise.
30874 (vreinterpret_f64_p8): Likewise.
30875 (vreinterpret_f64_p16): Likewise.
30876 (vreinterpret_f64_s8): Likewise.
30877 (vreinterpret_f64_s16): Likewise.
30878 (vreinterpret_f64_s32): Likewise.
30879 (vreinterpret_f64_s64): Likewise.
30880 (vreinterpret_f64_u8): Likewise.
30881 (vreinterpret_f64_u16): Likewise.
30882 (vreinterpret_f64_u32): Likewise.
30883 (vreinterpret_f64_u64): Likewise.
30884 (vreinterpretq_f64_f32): Likewise.
30885 (vreinterpretq_f64_p8): Likewise.
30886 (vreinterpretq_f64_p16): Likewise.
30887 (vreinterpretq_f64_s8): Likewise.
30888 (vreinterpretq_f64_s16): Likewise.
30889 (vreinterpretq_f64_s32): Likewise.
30890 (vreinterpretq_f64_s64): Likewise.
30891 (vreinterpretq_f64_u8): Likewise.
30892 (vreinterpretq_f64_u16): Likewise.
30893 (vreinterpretq_f64_u32): Likewise.
30894 (vreinterpretq_f64_u64): Likewise.
30895 (vreinterpret_s64_f64): Likewise.
30896 (vreinterpretq_s64_f64): Likewise.
30897 (vreinterpret_u64_f64): Likewise.
30898 (vreinterpretq_u64_f64): Likewise.
30899 (vreinterpret_s8_f64): Likewise.
30900 (vreinterpretq_s8_f64): Likewise.
30901 (vreinterpret_s16_f64): Likewise.
30902 (vreinterpretq_s16_f64): Likewise.
30903 (vreinterpret_s32_f64): Likewise.
30904 (vreinterpretq_s32_f64): Likewise.
30905 (vreinterpret_u8_f64): Likewise.
30906 (vreinterpretq_u8_f64): Likewise.
30907 (vreinterpret_u16_f64): Likewise.
30908 (vreinterpretq_u16_f64): Likewise.
30909 (vreinterpret_u32_f64): Likewise.
30910 (vreinterpretq_u32_f64): Likewise.
30912 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
30914 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
30915 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
30916 (vreinterpret_p8_s8): Likewise.
30917 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
30918 (vreinterpret_p8_s16): Likewise.
30919 (vreinterpret_p8_s32): Likewise.
30920 (vreinterpret_p8_s64): Likewise.
30921 (vreinterpret_p8_f32): Likewise.
30922 (vreinterpret_p8_u8): Likewise.
30923 (vreinterpret_p8_u16): Likewise.
30924 (vreinterpret_p8_u32): Likewise.
30925 (vreinterpret_p8_u64): Likewise.
30926 (vreinterpret_p8_p16): Likewise.
30927 (vreinterpretq_p8_s8): Likewise.
30928 (vreinterpretq_p8_s16): Likewise.
30929 (vreinterpretq_p8_s32): Likewise.
30930 (vreinterpretq_p8_s64): Likewise.
30931 (vreinterpretq_p8_f32): Likewise.
30932 (vreinterpretq_p8_u8): Likewise.
30933 (vreinterpretq_p8_u16): Likewise.
30934 (vreinterpretq_p8_u32): Likewise.
30935 (vreinterpretq_p8_u64): Likewise.
30936 (vreinterpretq_p8_p16): Likewise.
30937 (vreinterpret_p16_s8): Likewise.
30938 (vreinterpret_p16_s16): Likewise.
30939 (vreinterpret_p16_s32): Likewise.
30940 (vreinterpret_p16_s64): Likewise.
30941 (vreinterpret_p16_f32): Likewise.
30942 (vreinterpret_p16_u8): Likewise.
30943 (vreinterpret_p16_u16): Likewise.
30944 (vreinterpret_p16_u32): Likewise.
30945 (vreinterpret_p16_u64): Likewise.
30946 (vreinterpret_p16_p8): Likewise.
30947 (vreinterpretq_p16_s8): Likewise.
30948 (vreinterpretq_p16_s16): Likewise.
30949 (vreinterpretq_p16_s32): Likewise.
30950 (vreinterpretq_p16_s64): Likewise.
30951 (vreinterpretq_p16_f32): Likewise.
30952 (vreinterpretq_p16_u8): Likewise.
30953 (vreinterpretq_p16_u16): Likewise.
30954 (vreinterpretq_p16_u32): Likewise.
30955 (vreinterpretq_p16_u64): Likewise.
30956 (vreinterpretq_p16_p8): Likewise.
30957 (vreinterpret_f32_s8): Likewise.
30958 (vreinterpret_f32_s16): Likewise.
30959 (vreinterpret_f32_s32): Likewise.
30960 (vreinterpret_f32_s64): Likewise.
30961 (vreinterpret_f32_u8): Likewise.
30962 (vreinterpret_f32_u16): Likewise.
30963 (vreinterpret_f32_u32): Likewise.
30964 (vreinterpret_f32_u64): Likewise.
30965 (vreinterpret_f32_p8): Likewise.
30966 (vreinterpret_f32_p16): Likewise.
30967 (vreinterpretq_f32_s8): Likewise.
30968 (vreinterpretq_f32_s16): Likewise.
30969 (vreinterpretq_f32_s32): Likewise.
30970 (vreinterpretq_f32_s64): Likewise.
30971 (vreinterpretq_f32_u8): Likewise.
30972 (vreinterpretq_f32_u16): Likewise.
30973 (vreinterpretq_f32_u32): Likewise.
30974 (vreinterpretq_f32_u64): Likewise.
30975 (vreinterpretq_f32_p8): Likewise.
30976 (vreinterpretq_f32_p16): Likewise.
30977 (vreinterpret_s64_s8): Likewise.
30978 (vreinterpret_s64_s16): Likewise.
30979 (vreinterpret_s64_s32): Likewise.
30980 (vreinterpret_s64_f32): Likewise.
30981 (vreinterpret_s64_u8): Likewise.
30982 (vreinterpret_s64_u16): Likewise.
30983 (vreinterpret_s64_u32): Likewise.
30984 (vreinterpret_s64_u64): Likewise.
30985 (vreinterpret_s64_p8): Likewise.
30986 (vreinterpret_s64_p16): Likewise.
30987 (vreinterpretq_s64_s8): Likewise.
30988 (vreinterpretq_s64_s16): Likewise.
30989 (vreinterpretq_s64_s32): Likewise.
30990 (vreinterpretq_s64_f32): Likewise.
30991 (vreinterpretq_s64_u8): Likewise.
30992 (vreinterpretq_s64_u16): Likewise.
30993 (vreinterpretq_s64_u32): Likewise.
30994 (vreinterpretq_s64_u64): Likewise.
30995 (vreinterpretq_s64_p8): Likewise.
30996 (vreinterpretq_s64_p16): Likewise.
30997 (vreinterpret_u64_s8): Likewise.
30998 (vreinterpret_u64_s16): Likewise.
30999 (vreinterpret_u64_s32): Likewise.
31000 (vreinterpret_u64_s64): Likewise.
31001 (vreinterpret_u64_f32): Likewise.
31002 (vreinterpret_u64_u8): Likewise.
31003 (vreinterpret_u64_u16): Likewise.
31004 (vreinterpret_u64_u32): Likewise.
31005 (vreinterpret_u64_p8): Likewise.
31006 (vreinterpret_u64_p16): Likewise.
31007 (vreinterpretq_u64_s8): Likewise.
31008 (vreinterpretq_u64_s16): Likewise.
31009 (vreinterpretq_u64_s32): Likewise.
31010 (vreinterpretq_u64_s64): Likewise.
31011 (vreinterpretq_u64_f32): Likewise.
31012 (vreinterpretq_u64_u8): Likewise.
31013 (vreinterpretq_u64_u16): Likewise.
31014 (vreinterpretq_u64_u32): Likewise.
31015 (vreinterpretq_u64_p8): Likewise.
31016 (vreinterpretq_u64_p16): Likewise.
31017 (vreinterpret_s8_s16): Likewise.
31018 (vreinterpret_s8_s32): Likewise.
31019 (vreinterpret_s8_s64): Likewise.
31020 (vreinterpret_s8_f32): Likewise.
31021 (vreinterpret_s8_u8): Likewise.
31022 (vreinterpret_s8_u16): Likewise.
31023 (vreinterpret_s8_u32): Likewise.
31024 (vreinterpret_s8_u64): Likewise.
31025 (vreinterpret_s8_p8): Likewise.
31026 (vreinterpret_s8_p16): Likewise.
31027 (vreinterpretq_s8_s16): Likewise.
31028 (vreinterpretq_s8_s32): Likewise.
31029 (vreinterpretq_s8_s64): Likewise.
31030 (vreinterpretq_s8_f32): Likewise.
31031 (vreinterpretq_s8_u8): Likewise.
31032 (vreinterpretq_s8_u16): Likewise.
31033 (vreinterpretq_s8_u32): Likewise.
31034 (vreinterpretq_s8_u64): Likewise.
31035 (vreinterpretq_s8_p8): Likewise.
31036 (vreinterpretq_s8_p16): Likewise.
31037 (vreinterpret_s16_s8): Likewise.
31038 (vreinterpret_s16_s32): Likewise.
31039 (vreinterpret_s16_s64): Likewise.
31040 (vreinterpret_s16_f32): Likewise.
31041 (vreinterpret_s16_u8): Likewise.
31042 (vreinterpret_s16_u16): Likewise.
31043 (vreinterpret_s16_u32): Likewise.
31044 (vreinterpret_s16_u64): Likewise.
31045 (vreinterpret_s16_p8): Likewise.
31046 (vreinterpret_s16_p16): Likewise.
31047 (vreinterpretq_s16_s8): Likewise.
31048 (vreinterpretq_s16_s32): Likewise.
31049 (vreinterpretq_s16_s64): Likewise.
31050 (vreinterpretq_s16_f32): Likewise.
31051 (vreinterpretq_s16_u8): Likewise.
31052 (vreinterpretq_s16_u16): Likewise.
31053 (vreinterpretq_s16_u32): Likewise.
31054 (vreinterpretq_s16_u64): Likewise.
31055 (vreinterpretq_s16_p8): Likewise.
31056 (vreinterpretq_s16_p16): Likewise.
31057 (vreinterpret_s32_s8): Likewise.
31058 (vreinterpret_s32_s16): Likewise.
31059 (vreinterpret_s32_s64): Likewise.
31060 (vreinterpret_s32_f32): Likewise.
31061 (vreinterpret_s32_u8): Likewise.
31062 (vreinterpret_s32_u16): Likewise.
31063 (vreinterpret_s32_u32): Likewise.
31064 (vreinterpret_s32_u64): Likewise.
31065 (vreinterpret_s32_p8): Likewise.
31066 (vreinterpret_s32_p16): Likewise.
31067 (vreinterpretq_s32_s8): Likewise.
31068 (vreinterpretq_s32_s16): Likewise.
31069 (vreinterpretq_s32_s64): Likewise.
31070 (vreinterpretq_s32_f32): Likewise.
31071 (vreinterpretq_s32_u8): Likewise.
31072 (vreinterpretq_s32_u16): Likewise.
31073 (vreinterpretq_s32_u32): Likewise.
31074 (vreinterpretq_s32_u64): Likewise.
31075 (vreinterpretq_s32_p8): Likewise.
31076 (vreinterpretq_s32_p16): Likewise.
31077 (vreinterpret_u8_s8): Likewise.
31078 (vreinterpret_u8_s16): Likewise.
31079 (vreinterpret_u8_s32): Likewise.
31080 (vreinterpret_u8_s64): Likewise.
31081 (vreinterpret_u8_f32): Likewise.
31082 (vreinterpret_u8_u16): Likewise.
31083 (vreinterpret_u8_u32): Likewise.
31084 (vreinterpret_u8_u64): Likewise.
31085 (vreinterpret_u8_p8): Likewise.
31086 (vreinterpret_u8_p16): Likewise.
31087 (vreinterpretq_u8_s8): Likewise.
31088 (vreinterpretq_u8_s16): Likewise.
31089 (vreinterpretq_u8_s32): Likewise.
31090 (vreinterpretq_u8_s64): Likewise.
31091 (vreinterpretq_u8_f32): Likewise.
31092 (vreinterpretq_u8_u16): Likewise.
31093 (vreinterpretq_u8_u32): Likewise.
31094 (vreinterpretq_u8_u64): Likewise.
31095 (vreinterpretq_u8_p8): Likewise.
31096 (vreinterpretq_u8_p16): Likewise.
31097 (vreinterpret_u16_s8): Likewise.
31098 (vreinterpret_u16_s16): Likewise.
31099 (vreinterpret_u16_s32): Likewise.
31100 (vreinterpret_u16_s64): Likewise.
31101 (vreinterpret_u16_f32): Likewise.
31102 (vreinterpret_u16_u8): Likewise.
31103 (vreinterpret_u16_u32): Likewise.
31104 (vreinterpret_u16_u64): Likewise.
31105 (vreinterpret_u16_p8): Likewise.
31106 (vreinterpret_u16_p16): Likewise.
31107 (vreinterpretq_u16_s8): Likewise.
31108 (vreinterpretq_u16_s16): Likewise.
31109 (vreinterpretq_u16_s32): Likewise.
31110 (vreinterpretq_u16_s64): Likewise.
31111 (vreinterpretq_u16_f32): Likewise.
31112 (vreinterpretq_u16_u8): Likewise.
31113 (vreinterpretq_u16_u32): Likewise.
31114 (vreinterpretq_u16_u64): Likewise.
31115 (vreinterpretq_u16_p8): Likewise.
31116 (vreinterpretq_u16_p16): Likewise.
31117 (vreinterpret_u32_s8): Likewise.
31118 (vreinterpret_u32_s16): Likewise.
31119 (vreinterpret_u32_s32): Likewise.
31120 (vreinterpret_u32_s64): Likewise.
31121 (vreinterpret_u32_f32): Likewise.
31122 (vreinterpret_u32_u8): Likewise.
31123 (vreinterpret_u32_u16): Likewise.
31124 (vreinterpret_u32_u64): Likewise.
31125 (vreinterpret_u32_p8): Likewise.
31126 (vreinterpret_u32_p16): Likewise.
31127 (vreinterpretq_u32_s8): Likewise.
31128 (vreinterpretq_u32_s16): Likewise.
31129 (vreinterpretq_u32_s32): Likewise.
31130 (vreinterpretq_u32_s64): Likewise.
31131 (vreinterpretq_u32_f32): Likewise.
31132 (vreinterpretq_u32_u8): Likewise.
31133 (vreinterpretq_u32_u16): Likewise.
31134 (vreinterpretq_u32_u64): Likewise.
31135 (vreinterpretq_u32_p8): Likewise.
31136 (vreinterpretq_u32_p16): Likewise.
31138 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
31140 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
31142 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
31144 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
31145 (vqnegd_s64): Likewise.
31146 (vqabs_s64): Likewise.
31147 (vqabsd_s64): Likewise.
31149 2014-04-22 Richard Henderson <rth@redhat.com>
31151 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
31152 computation to the top of the loop.
31154 2014-04-22 Renlin <renlin.li@arm.com>
31155 Jiong Wang <jiong.wang@arm.com>
31157 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
31158 * config/aarch64/aarch64.c (aarch64_layout_frame)
31159 (aarch64_initial_elimination_offset): Likewise.
31161 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
31163 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
31166 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
31168 * machmode.h (bitwise_mode_for_mode): Declare.
31169 * stor-layout.h (bitwise_type_for_mode): Likewise.
31170 * stor-layout.c (bitwise_mode_for_mode): New function.
31171 (bitwise_type_for_mode): Likewise.
31172 * builtins.c (fold_builtin_memory_op): Use it instead of
31173 int_mode_for_mode and build_nonstandard_integer_type.
31175 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31177 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
31178 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
31179 (*-*-solaris2*): Simplify.
31180 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
31181 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
31182 *-*-solaris2.9* handling.
31184 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
31186 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
31187 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
31188 handling, simplify.
31189 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
31190 * configure: Regenerate.
31192 * config/i386/sol2-9.h: Remove.
31194 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
31195 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
31196 Remove Solaris 9 references.
31198 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
31200 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
31201 (floatuns<GPI:mode><GPF:mode>2): Remove.
31202 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
31203 and floatuns conversions.
31204 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
31205 and floatuns conversions.
31206 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
31207 (w1,w2): New mode attributes for inequal width conversions.
31209 2014-04-22 Renlin Li <Renlin.Li@arm.com>
31211 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
31212 the output asm format.
31214 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
31216 * config/aarch64/aarch64-simd.md
31217 (aarch64_cm<optab>di): Always split.
31218 (*aarch64_cm<optab>di): New.
31219 (aarch64_cmtstdi): Always split.
31220 (*aarch64_cmtstdi): New.
31222 2014-04-22 Jakub Jelinek <jakub@redhat.com>
31224 PR tree-optimization/60823
31225 * omp-low.c (ipa_simd_modify_function_body): Go through
31226 all SSA_NAMEs and for those refering to vector arguments
31227 which are going to be replaced adjust SSA_NAME_VAR and,
31228 if it is a default definition, change it into a non-default
31229 definition assigned at the beginning of function from new_decl.
31230 (ipa_simd_modify_stmt_ops): Rewritten.
31231 * tree-dfa.c (set_ssa_default_def): When removing default def,
31232 check for NULL loc instead of NULL *loc.
31234 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31236 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
31237 restrictions on core registers for DImode values in Thumb2.
31239 2014-04-22 Ian Bolton <ian.bolton@arm.com>
31241 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
31242 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
31244 2014-04-22 Ian Bolton <ian.bolton@arm.com>
31246 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
31247 (*iordi_notzesidi_di): Likewise.
31248 (*iordi_notsesidi_di): Likewise.
31250 2014-04-22 Ian Bolton <ian.bolton@arm.com>
31252 * config/arm/arm-protos.h (tune_params): New struct members.
31253 * config/arm/arm.c: Initialise tune_params per processor.
31254 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
31255 for speed, based on new tune_params.
31257 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
31259 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
31260 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
31261 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
31262 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
31263 * config/aarch64/arm_neon.h (vrnd_f64): Added.
31264 (vrnda_f64): Likewise.
31265 (vrndi_f64): Likewise.
31266 (vrndm_f64): Likewise.
31267 (vrndn_f64): Likewise.
31268 (vrndp_f64): Likewise.
31269 (vrndx_f64): Likewise.
31271 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
31273 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
31274 GET_MODE_SIZE argument is enum machine_mode.
31276 2014-04-22 Jakub Jelinek <jakub@redhat.com>
31279 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
31280 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
31282 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
31284 PR middle-end/60281
31285 * asan.c (asan_emit_stack_protection): Force the base to align to
31286 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
31287 appropriate bits if STRICT_ALIGNMENT.
31288 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
31290 (expand_used_vars): Leave a space in the stack frame for alignment
31291 if STRICT_ALIGNMENT.
31293 2014-04-21 David Malcolm <dmalcolm@redhat.com>
31295 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
31297 (gimple_store_p): Likewise.
31298 (gimple_assign_load_p): Likewise.
31299 (gimple_assign_cast_p): Likewise.
31300 (gimple_clobber_p): Likewise.
31302 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
31303 rather than a gimple.
31304 (gimple_assign_cast_p): Likewise.
31306 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
31309 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
31310 If mode is DDmode and TARGET_E500_DOUBLE allow move.
31312 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
31313 more debug information for E500 if -mdebug=reg.
31315 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
31318 * config/i386/i386.c (ix86_expand_builtin)
31319 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
31320 register for target RTX.
31321 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
31323 2014-04-18 Cong Hou <congh@google.com>
31325 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
31326 the widen-mult pattern by handling two operands with different sizes,
31327 and operands whose size is smaller than half of the result type.
31329 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
31331 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
31332 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
31333 (do_estimate_edge_time): Compute it.
31334 * ipa-inline.c (want_inline_small_function_p): Bypass
31335 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
31337 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
31339 * ipa-inline.c (spec_rem): New static variable.
31340 (dump_overall_stats): New function.
31341 (dump_inline_stats): New function.
31343 2014-04-18 Richard Henderson <rth@redhat.com>
31345 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
31346 to GET_MODE_SIZE, not a reg_class_t.
31348 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31350 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
31351 (vsx_xxmrglw_<mode>): Likewise.
31353 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
31356 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
31357 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
31358 (rs6000_init_hard_regno_mode_ok): Likewise.
31360 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
31362 * ipa-inline.c (inline_small_functions): Account only non-cold
31364 * doc/invoke.texi (inline-unit-growth): Update documentation.
31366 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
31368 * config/rs6000/rs6000.md (addti3, subti3): New.
31370 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
31373 * config/i386/i386.c (ix86_expand_clear): Remove outdated
31374 comment. Check optimize_insn_for_size_p instead of
31375 optimize_insn_for_speed_p.
31377 2014-04-17 Martin Jambor <mjambor@suse.cz>
31379 * gimple-iterator.c (gsi_start_edge): New function.
31380 * gimple-iterator.h (gsi_start_edge): Declare.
31381 * tree-sra.c (single_non_eh_succ): New function.
31382 (disqualify_ops_if_throwing_stmt): Renamed to
31383 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
31384 having one non-EH successor BB.
31385 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
31386 generate loads into replacements.
31387 (sra_modify_assign): Likewise and and also use the simple path for
31389 (sra_modify_function_body): Commit statements on edges.
31391 2014-04-17 Richard Biener <rguenther@suse.de>
31393 PR middle-end/60849
31394 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
31395 comparison results and add clarifying comment.
31397 2014-04-17 Jakub Jelinek <jakub@redhat.com>
31399 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
31400 (blank_mode): Initialize it.
31401 (emit_mode_size_inline, emit_mode_nunits_inline,
31402 emit_mode_inner_inline): New functions.
31403 (emit_insn_modes_h): Call them and surround their output with
31404 #if GCC_VERSION >= 4001 ... #endif.
31405 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
31406 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
31407 mode_* arrays if the argument is __builtin_constant_p.
31408 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
31409 is enum machine_mode.
31411 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
31413 * passes.c (opt_pass::execute): Adjust.
31414 (pass_manager::execute_pass_mode_switching): Likewise.
31415 (early_local_passes::execute): Likewise.
31416 (execute_one_pass): Pass cfun to the pass's execute method.
31417 * tree-pass.h (opt_pass::execute): Add function * argument.
31418 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31419 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31420 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31421 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31422 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31423 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
31424 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
31425 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
31426 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
31427 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
31428 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
31429 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
31430 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
31431 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
31432 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
31433 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
31434 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
31435 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
31436 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
31437 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31438 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31439 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31440 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31441 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31442 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31443 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31444 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31445 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31446 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
31449 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
31451 * passes.c (opt_pass::gate): Take function * argument.
31452 (gate_all_early_local_passes): Merge into
31453 (early_local_passes::gate): this.
31454 (gate_all_early_optimizations): Merge into
31455 (all_early_optimizations::gate): this.
31456 (gate_all_optimizations): Mege into
31457 (all_optimizations::gate): this.
31458 (gate_all_optimizations_g): Merge into
31459 (all_optimizations_g::gate): this.
31460 (gate_rest_of_compilation): Mege into
31461 (rest_of_compilation::gate): this.
31462 (gate_postreload): Merge into
31463 (postreload::gate): this.
31464 (dump_one_pass): Pass cfun to the pass's gate method.
31465 (execute_ipa_summary_passes): Likewise.
31466 (execute_one_pass): Likewise.
31467 (ipa_write_summaries_2): Likewise.
31468 (ipa_write_optimization_summaries_1): Likewise.
31469 (ipa_read_summaries_1): Likewise.
31470 (ipa_read_optimization_summaries_1): Likewise.
31471 (execute_ipa_stmt_fixups): Likewise.
31472 * tree-pass.h (opt_pass::gate): Add function * argument.
31473 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
31474 combine-stack-adj.c, combine.c, compare-elim.c,
31475 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31476 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
31477 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
31478 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
31479 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
31480 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
31481 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
31482 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
31483 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31484 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
31485 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
31486 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
31487 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
31488 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
31489 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31490 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31491 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31492 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31493 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31494 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31495 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31496 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31497 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
31498 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
31499 var-tracking.c, vtable-verify.c, web.c: Adjust.
31501 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
31503 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
31504 * configure: Regenerate.
31506 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
31508 * passes.c (dump_one_pass): don't check pass->has_gate.
31509 (execute_ipa_summary_passes): Likewise.
31510 (execute_one_pass): Likewise.
31511 (ipa_write_summaries_2): Likewise.
31512 (ipa_write_optimization_summaries_1): Likewise.
31513 (ipa_read_optimization_summaries_1): Likewise.
31514 (execute_ipa_stmt_fixups): Likewise.
31515 * tree-pass.h (pass_data::has_gate): Remove.
31516 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31517 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31518 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31519 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31520 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31521 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31522 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31523 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31524 gimple-low.c, gimple-ssa-isolate-paths.c,
31525 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31526 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
31527 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
31528 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
31529 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
31530 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
31531 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
31532 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
31533 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
31534 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
31535 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
31536 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31537 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31538 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31539 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31540 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31541 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31542 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31543 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31544 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31545 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31546 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
31549 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
31551 * pass_manager.h (pass_manager::register_dump_files_1): Remove
31553 * passes.c (pass_manager::register_dump_files_1): Merge into
31554 (pass_manager::register_dump_files): this, and remove its handling of
31555 properties since the pass always has the properties anyway.
31556 (pass_manager::pass_manager): Adjust.
31558 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
31560 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
31561 * passes.c (pass_manager::register_dump_files_1): Remove dead code
31562 dealing with properties.
31563 (pass_manager::register_dump_files): Adjust.
31565 2014-03-20 Mark Wielaard <mjw@redhat.com>
31567 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
31568 then represent the bound as normal constant value.
31570 2014-04-17 Jakub Jelinek <jakub@redhat.com>
31573 Forward port from 4.8 branch
31574 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
31576 * config/i386/bmiintrin.h (_blsi_u32): New.
31577 (_blsi_u64): Ditto.
31578 (_blsr_u32): Ditto.
31579 (_blsr_u64): Ditto.
31580 (_blsmsk_u32): Ditto.
31581 (_blsmsk_u64): Ditto.
31582 (_tzcnt_u32): Ditto.
31583 (_tzcnt_u64): Ditto.
31585 2014-04-17 Kito Cheng <kito@0xlab.org>
31587 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
31589 2014-04-17 Richard Biener <rguenther@suse.de>
31591 PR middle-end/60849
31592 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
31593 boolean results for comparisons.
31595 2014-04-17 Richard Biener <rguenther@suse.de>
31597 PR tree-optimization/60836
31598 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
31599 initial PHI args to be gimple values.
31601 2014-04-17 Richard Biener <rguenther@suse.de>
31603 PR tree-optimization/60841
31604 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
31605 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
31606 of stmts to SLP build.
31607 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
31608 (vect_analyze_slp): Likewise.
31609 (vect_analyze_slp_instance): Likewise.
31610 (vect_build_slp_tree): Limit overall SLP tree growth.
31611 * tree-vectorizer.h (vect_analyze_data_refs,
31612 vect_analyze_slp): Adjust prototypes.
31614 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
31616 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
31619 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
31621 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
31622 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
31623 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
31624 for TARGET_SLOW_PSHUFB
31626 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
31628 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
31629 * config/i386/i386.c (intel_cost): Ditto.
31631 2014-04-17 Joey Ye <joey.ye@arm.com>
31633 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
31635 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
31637 * opts.c (common_handle_option): Disable -fipa-reference coorectly
31638 with -fuse-profile.
31640 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
31642 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
31643 (type_all_derivations_known_p): New predicate.
31644 (type_all_ctors_visible_p): New predicate.
31645 (type_possibly_instantiated_p): New predicate.
31646 (get_odr_type): Compute all_derivations_known.
31647 (dump_odr_type): Dump the flag.
31648 (maybe_record_type): Cleanup.
31649 (record_target_from_binfo): Add bases_to_consider array;
31650 record bases for types w/o instances and skip CXX destructor.
31651 (possible_polymorphic_call_targets_1): Add bases_to_consider
31652 and consider_construction parameters; check if type may have instance.
31653 (get_polymorphic_call_info): Set maybe_in_construction to true
31654 when we know nothing.
31655 (record_targets_from_bases): Skip CXX destructors; they are
31656 never called for types in construction.
31657 (possible_polymorphic_call_targets): Do not record target when
31658 type may not have instance.
31660 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
31663 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
31664 external aliases alive, too.
31666 2014-04-16 Andrew Pinski <apinski@cavium.com>
31668 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
31671 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
31673 * final.c (compute_alignments): Do not apply loop alignment to a block
31674 falling through to the exit.
31676 2014-04-16 Catherine Moore <clm@codesourcery.com>
31678 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
31679 Adjust constraints for microMIPS store patterns.
31681 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
31683 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
31685 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
31687 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
31688 (append_use): Run at -O0.
31689 (append_vdef): Likewise.
31690 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
31691 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
31693 2014-04-16 Jakub Jelinek <jakub@redhat.com>
31695 PR tree-optimization/60844
31696 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
31697 (propagate_op_to_single_use, remove_visited_stmt_chain,
31698 linearize_expr, repropagate_negates, reassociate_bb): Use it
31699 instead of gsi_remove.
31701 2014-04-16 Martin Jambor <mjambor@suse.cz>
31703 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
31704 ipa_transforms_to_apply.
31705 (cgraph_function_versioning): Assert that old_node has empty
31706 ipa_transforms_to_apply.
31707 * trans-mem.c (ipa_tm_create_version): Likewise.
31708 * tree-inline.c (tree_function_versioning): Do not duplicate
31709 ipa_transforms_to_apply.
31711 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31714 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
31716 Pass necessary as flags on 64-bit Solaris/x86.
31717 Use lowercase relocs for x86_64-*-*.
31718 * configure: Regenerate.
31720 2014-04-15 Jan Hubicka <jh@suse.cz>
31722 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
31723 (maybe_record_node, likely_target_p): Use it.
31725 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31728 Revert following patch
31730 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
31733 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
31734 software floating point or no floating point registers, do not
31735 allow any type in the FPRs. Eliminate a test for SPE SIMD types
31736 in GPRs that occurs after we tested for GPRs that would never be
31739 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
31740 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
31741 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
31742 specifically allow DDmode, since that does not use the SPE SIMD
31745 2014-03-21 Mark Wielaard <mjw@redhat.com>
31747 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
31748 as unsigned or int depending on type and value used.
31750 2014-04-15 Richard Biener <rguenther@suse.de>
31752 PR rtl-optimization/56965
31753 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
31754 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
31756 * alias.c (true_dependence_1): Do not call
31757 nonoverlapping_component_refs_p.
31758 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
31759 nonoverlapping_component_refs_p.
31760 (indirect_refs_may_alias_p): Likewise.
31762 2014-04-15 Teresa Johnson <tejohnson@google.com>
31764 * cfg.c (dump_bb_info): Fix flags check.
31765 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
31767 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31769 PR rtl-optimization/60663
31770 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
31773 2014-04-15 Richard Biener <rguenther@suse.de>
31775 * lto-streamer.h (LTO_major_version): Bump to 4.
31777 2014-04-15 Richard Biener <rguenther@suse.de>
31779 * common.opt (lto_partition_model): New enum.
31780 (flto-partition=): Merge separate options with a single with argument,
31781 add -flto-partition=one support.
31782 * flag-types.h (enum lto_partition_model): Declare.
31783 * opts.c (finish_options): Remove duplicate -flto-partition=
31785 * lto-wrapper.c (run_gcc): Adjust.
31787 2014-04-15 Richard Biener <rguenther@suse.de>
31789 * alias.c (ncr_compar): New function.
31790 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
31792 2014-04-15 Richard Biener <rguenther@suse.de>
31794 * alias.c (record_component_aliases): Do not walk BINFOs.
31796 2014-04-15 Richard Biener <rguenther@suse.de>
31798 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
31799 Add struct function argument and adjust.
31800 (find_func_aliases_for_call): Likewise.
31801 (find_func_aliases): Likewise.
31802 (find_func_clobbers): Likewise.
31803 (intra_create_variable_infos): Likewise.
31804 (compute_points_to_sets): Likewise.
31805 (ipa_pta_execute): Adjust. Do not push/pop cfun.
31807 2014-04-15 Richard Biener <rguenther@suse.de>
31809 * tree.c (iterative_hash_expr): Use enum tree_code_class
31810 to store TREE_CODE_CLASS.
31811 (tree_block): Likewise.
31812 (tree_set_block): Likewise.
31813 * tree.h (fold_build_pointer_plus_loc): Use
31814 convert_to_ptrofftype_loc.
31816 2014-04-15 Jakub Jelinek <jakub@redhat.com>
31819 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
31822 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
31824 * cfgloop.h (struct loop): Move force_vectorize down.
31825 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
31826 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
31827 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
31828 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
31829 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
31830 * tree-core.h (enum annot_expr_kind): Add new kind values.
31831 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
31832 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
31834 * tree.def (ANNOTATE_EXPR): Tweak comment.
31836 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
31838 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
31841 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
31843 * tree.h (TYPE_IDENTIFIER): Declare.
31844 * tree.c (subrange_type_for_debug_p): Use it.
31845 * godump.c (go_format_type): Likewise.
31846 * dwarf2out.c (is_cxx_auto, modified_type_die,
31847 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
31848 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
31850 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
31853 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
31855 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
31857 * config/i386/i386.c (examine_argument): Return bool. Return true if
31858 parameter should be passed in memory.
31859 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
31860 (construct_container): Update calls to examine_argument.
31861 (function_arg_advance_64): Ditto.
31862 (return_in_memory_32): Merge with ix86_return_in_memory.
31863 (return_in_memory_64): Ditto.
31864 (return_in_memory_ms_64): Ditto.
31866 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
31868 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
31869 * coverage.c (coverage_compute_profile_id): Handle externally visible
31872 2014-04-14 Martin Jambor <mjambor@suse.cz>
31874 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
31875 DECL_DISREGARD_INLINE_LIMITS functions.
31877 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
31880 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
31882 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
31885 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
31886 optimize_insn_for_speed_p instead of
31887 optimize_function_for_speed_p.
31889 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
31891 * doc/invoke.texi (free): Document AArch64.
31893 2014-04-14 Richard Biener <rguenther@suse.de>
31895 PR tree-optimization/60042
31896 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
31897 (insert_into_preds_of_block): Do not prevent PHI insertion
31898 for REFERENCE exprs here ...
31899 (eliminate_dom_walker::before_dom_children): ... but prevent
31900 their use here under similar conditions when applied to the
31901 IL after PRE optimizations.
31903 2014-04-14 Richard Biener <rguenther@suse.de>
31905 * passes.def: Move early points-to after early SRA.
31907 2014-04-14 Richard Biener <rguenther@suse.de>
31909 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
31910 check for which sign-changes we allow when forwarding
31911 a converted value into a switch.
31913 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
31915 * stor-layout.c (place_field): Finalize non-constant offset for the
31918 2014-04-14 Richard Biener <rguenther@suse.de>
31920 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
31922 (expand_switch_using_bit_tests_p): Likewise.
31923 (process_switch): Compute and pass on speed_p based on the
31925 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
31926 optimize_bb_for_speed_p.
31928 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
31930 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
31931 * function.h (struct function): Rename has_force_vect_loops into
31932 has_force_vectorize_loops.
31933 * lto-streamer-in.c (input_cfg): Adjust for renaming.
31934 (input_struct_function_base): Likewise.
31935 * lto-streamer-out.c (output_cfg): Likewise.
31936 (output_struct_function_base): Likewise.
31937 * omp-low.c (expand_omp_simd): Likewise.
31938 * tree-cfg.c (move_sese_region_to_fn): Likewise.
31939 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
31940 (version_loop_for_if_conversion): Likewise.
31941 (tree_if_conversion): Likewise.
31942 (main_tree_if_conversion): Likewise.
31943 (gate_tree_if_conversion): Likewise.
31944 * tree-inline.c (copy_loops): Likewise.
31945 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
31946 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
31947 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
31948 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
31949 * tree-vectorizer.c (vectorize_loops): Likewise.
31950 * tree-vectorizer.h (unlimited_cost_model): Likewise.
31952 2014-04-14 Richard Biener <rguenther@suse.de>
31955 * lto-streamer-out.c (wrap_refs): New function.
31956 (lto_output): Wrap symbol references in global initializes in
31957 type-preserving MEM_REFs.
31959 2014-04-14 Christian Bruel <christian.bruel@st.com>
31961 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
31963 2014-04-14 Christian Bruel <christian.bruel@st.com>
31965 * config/sh/sh.md (setmemqi): New expand pattern.
31966 * config/sh/sh.h (CLEAR_RATIO): Define.
31967 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
31968 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
31970 2014-04-14 Richard Biener <rguenther@suse.de>
31972 PR middle-end/55022
31973 * fold-const.c (negate_expr_p): Don't negate directional rounding
31975 (fold_negate_expr): Likewise.
31977 2014-04-14 Richard Biener <rguenther@suse.de>
31979 PR tree-optimization/59817
31980 PR tree-optimization/60453
31981 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
31982 recursion to catch all CHRECs in the scalar evolution and restrict
31983 the predicate for the remains appropriately.
31985 2014-04-12 Catherine Moore <clm@codesourcery.com>
31987 * config/mips/constraints.md: Add new register constraint "kb".
31988 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
31989 (*movhi_internal): Likewise.
31990 (*movqi_internal): Likewise.
31991 * config/mips/mips.h (M16_STORE_REGS): New register class.
31992 (REG_CLASS_NAMES): Add M16_STORE_REGS.
31993 (REG_CLASS_CONTENTS): Likewise.
31994 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
31996 2014-04-11 Tobias Burnus <burnus@net-b.de>
31999 * doc/invoke.texi (-Wformat-signedness): Document it.
32000 (Wformat=2): Mention that this enables -Wformat-signedness.
32002 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
32004 * common/config/epiphany/epiphany-common.c
32005 (epiphany_option_optimization_table): Enable section anchors by
32006 default at -O1 or higher.
32007 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
32008 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
32009 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
32010 carries no extra cost.
32011 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
32012 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
32013 * config/epiphany/predicates.md (memclob_operand): New predicate.
32014 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
32015 Use memclob_operand predicate and X constraint for operand 3.
32017 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
32019 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
32020 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
32023 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
32025 PR rtl-optimization/60651
32026 * mode-switching.c (optimize_mode_switching): Make sure to emit
32027 sets of a lower numbered entity before sets of a higher numbered
32028 entity to a mode of the same or lower priority.
32029 When creating a seginfo for a basic block that starts with a code
32030 label, move the insertion point past the code label.
32031 (new_seginfo): Document and enforce requirement that
32032 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
32033 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
32034 * doc/tm.texi: Regenerate.
32036 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
32039 * config/arc/arc.c (arc_save_restore): Fix assert typo.
32041 2013-04-11 Jakub Jelinek <jakub@redhat.com>
32043 * BASE-VER: Set to 4.10.0.
32045 2014-04-11 Tobias Burnus <burnus@net-b.de>
32048 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
32049 * doc/gcc.texi (Service): Update description in the @menu
32050 * doc/invoke.texi (Option Summary): Remove misplaced and
32053 2014-04-11 Steve Ellcey <sellcey@mips.com>
32054 Jakub Jelinek <jakub@redhat.com>
32056 PR middle-end/60556
32057 * expr.c (convert_move): Use emit_store_flag_force instead of
32058 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
32061 2014-04-11 Richard Biener <rguenther@suse.de>
32063 PR middle-end/60797
32064 * varasm.c (assemble_alias): Avoid endless error reporting
32065 recursion by setting TREE_ASM_WRITTEN.
32067 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32069 * config/s390/s390.md: Add a splitter for NOT rtx.
32071 2014-04-11 Jakub Jelinek <jakub@redhat.com>
32073 PR rtl-optimization/60663
32074 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
32076 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
32077 Jakub Jelinek <jakub@redhat.com>
32080 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
32081 flag from decl_node to node.
32083 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32086 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
32087 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
32088 ameliorating the cases where it can be.
32090 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
32093 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
32095 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
32096 (loadsync_<mode>): Change mode.
32097 (load_quadpti, store_quadpti): New.
32098 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
32099 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
32100 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
32102 2014-04-09 Cong Hou <congh@google.com>
32105 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
32108 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32110 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
32111 instead of vnor to exploit possible fusion opportunity in the
32113 (altivec_expand_vec_perm_const_le): Likewise.
32115 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
32117 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
32118 (loadsync_<mode>): Change mode.
32119 (load_quadpti, store_quadpti): New.
32120 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
32121 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
32123 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
32126 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
32127 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
32128 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
32130 2014-04-08 Richard Biener <rguenther@suse.de>
32132 PR middle-end/60706
32133 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
32134 a 64bit widest int print double-int similar to on HWI64 hosts.
32136 2014-04-08 Richard Biener <rguenther@suse.de>
32138 PR tree-optimization/60785
32139 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
32140 default defs properly.
32142 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
32144 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
32145 (Weffc++): Likewise.
32147 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
32149 * ipa-devirt.c (maybe_record_node): When node is not recorded,
32150 set completep to false rather than true.
32152 2014-04-07 Douglas B Rupp <rupp@adacore.com>
32155 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
32156 ARM_TARGET2_DWARF_FORMAT.
32158 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
32161 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
32162 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
32165 2014-04-07 Richard Biener <rguenther@suse.de>
32167 PR tree-optimization/60766
32168 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
32169 (may_eliminate_iv): Convert cand_value_at result to desired type.
32171 2014-04-07 Jason Merrill <jason@redhat.com>
32174 * common.opt (-fno-gnu-unique): Add.
32175 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
32177 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32179 * haifa-sched.c: Fix outdated function reference and minor
32180 grammar errors in introductory comment.
32182 2014-04-07 Richard Biener <rguenther@suse.de>
32184 PR middle-end/60750
32185 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
32186 for noreturn calls.
32187 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
32189 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
32192 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
32193 size accounting for thunks.
32194 (pa_asm_output_mi_thunk): Use final_start_function() and
32195 final_end_function() to output function start and end directives.
32197 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
32199 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
32200 device specific ISA/ feature information. Remove short_sp and
32201 errata_skip ds. Add avr_device_specific_features enum to have device
32203 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
32204 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
32205 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
32206 updated device specific info.
32207 * config/avr/avr-mcus.def: Merge device specific details to
32208 dev_attribute field.
32209 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
32211 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
32212 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
32213 assembler if RMW isa supported by current device.
32214 * config/avr/genmultilib.awk: Update as device info structure changed.
32215 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
32217 2014-04-04 Cong Hou <congh@google.com>
32219 PR tree-optimization/60656
32220 * tree-vect-stmts.c (supportable_widening_operation):
32221 Fix a bug that elements in a vector with vect_used_by_reduction
32222 property are incorrectly reordered when the operation on it is not
32223 consistant with the one in reduction operation.
32225 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
32227 PR rtl-optimization/60155
32228 * gcse.c (record_set_data): New function.
32229 (single_set_gcse): New function.
32230 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
32231 (hoist_code): Likewise.
32232 (get_pressure_class_and_nregs): Likewise.
32234 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
32236 * explow.c (probe_stack_range): Emit a final optimization blockage.
32238 2014-04-04 Anthony Green <green@moxielogic.com>
32240 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
32243 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
32246 * lto-cgraph.c (input_overwrite_node): Check that partitioning
32247 flags are set only during streaming.
32248 * ipa.c (process_references, walk_polymorphic_call_targets,
32249 symtab_remove_unreachable_nodes): Drop bodies of always inline
32250 after early inlining.
32251 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
32253 2014-04-04 Jakub Jelinek <jakub@redhat.com>
32254 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32257 * dwarf2out.c (const_ok_for_output_1): Reject expressions
32260 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32263 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
32265 (cortex_a53_fdivd): Likewise.
32267 2014-04-04 Martin Jambor <mjambor@suse.cz>
32270 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
32271 Adjust all callers.
32272 * cgraph.c (clone_of_p): Also return true if thunks match.
32273 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
32274 cgraph_function_or_thunk_node and an obsolete comment.
32275 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
32277 (build_function_decl_skip_args): Likewise.
32278 (set_new_clone_decl_and_node_flags): New function.
32279 (duplicate_thunk_for_node): Likewise.
32280 (redirect_edge_duplicating_thunks): Likewise.
32281 (cgraph_clone_node): New parameter args_to_skip, pass it to
32282 redirect_edge_duplicating_thunks which is called instead of
32283 cgraph_redirect_edge_callee.
32284 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
32285 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
32287 2014-04-04 Jeff Law <law@redhat.com>
32290 * config/arm/predicates.md (const_int_I_operand): New predicate.
32291 (const_int_M_operand): Similarly.
32292 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
32294 (insv_t2, extv_reg, extzv_t2): Likewise.
32295 (load_multiple_with_writeback): Similarly for const_int_I_operand.
32296 (pop_multiple_with_writeback_and_return): Likewise.
32297 (vfp_pop_multiple_with_writeback): Likewise
32299 2014-04-04 Richard Biener <rguenther@suse.de>
32302 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
32303 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
32305 * gimplify.h (gimple_add_tmp_var_fn): Declare.
32306 * gimplify.c (gimple_add_tmp_var_fn): New function.
32307 * gimple-expr.h (create_tmp_reg_fn): Declare.
32308 * gimple-expr.c (create_tmp_reg_fn): New function.
32309 * gimple-low.c (record_vars_into): Don't change cfun.
32310 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
32311 code generation without cfun.
32313 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
32316 * Makefile.in (install-driver): Fix shell scripting.
32318 2014-04-03 Cong Hou <congh@google.com>
32320 PR tree-optimization/60505
32321 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
32322 threshold of number of iterations below which no vectorization
32324 * tree-vect-loop.c (new_loop_vec_info):
32325 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
32326 * tree-vect-loop.c (vect_analyze_loop_operations):
32327 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
32328 * tree-vect-loop.c (vect_transform_loop):
32329 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
32330 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
32331 of iterations of the loop and see if we should build the epilogue.
32333 2014-04-03 Richard Biener <rguenther@suse.de>
32335 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
32336 (streamer_tree_cache_create): Adjust.
32337 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
32338 to allow optional nodes array.
32339 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
32340 (streamer_tree_cache_append): Likewise.
32341 (streamer_tree_cache_create): Create nodes array optionally
32342 as specified by parameter.
32343 * lto-streamer-out.c (create_output_block): Avoid maintaining
32344 the node array in the writer cache.
32345 (DFS_write_tree): Remove assertion.
32346 (produce_asm_for_decls): Free the out decl state hash table early.
32347 * lto-streamer-in.c (lto_data_in_create): Adjust for
32348 streamer_tree_cache_create prototype change.
32350 2014-04-03 Richard Biener <rguenther@suse.de>
32352 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
32353 set TREE_CHAIN to NULL_TREE.
32355 2014-04-03 Richard Biener <rguenther@suse.de>
32357 PR tree-optimization/60740
32358 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
32359 over all GIMPLE_COND operands.
32361 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
32363 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
32364 (Weffc++): Remove Scott's numbering, merge lists and reference
32367 2014-04-03 Nick Clifton <nickc@redhat.com>
32369 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
32372 2014-04-03 Martin Jambor <mjambor@suse.cz>
32374 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
32375 mention gcc_unreachable before failing.
32376 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
32379 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
32382 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
32383 inconsistent code and instead mark the context inconsistent.
32384 (possible_polymorphic_call_targets): For inconsistent contexts
32385 return empty complete list.
32387 2014-04-02 Anthony Green <green@moxielogic.com>
32389 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
32390 (extendqisi2, extendhisi2): Define.
32391 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
32392 (WCHAR_TYPE): Change to unsigned int.
32394 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32396 PR tree-optimization/60733
32397 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
32398 insertion point for PHI candidates to be the end of the feeding
32399 block for the PHI argument.
32401 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
32403 PR rtl-optimization/60650
32404 * lra-constraints.c (process_alt_operands): Decrease reject for
32405 earlyclobber matching.
32407 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32409 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
32411 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32413 * config/spu/spu.c (pad_bb): Do not crash when the last
32414 insn is CODE_FOR_blockage.
32416 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32418 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
32419 lies outside the target mode.
32421 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
32424 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
32425 software floating point or no floating point registers, do not
32426 allow any type in the FPRs. Eliminate a test for SPE SIMD types
32427 in GPRs that occurs after we tested for GPRs that would never be
32430 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
32431 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
32432 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
32433 specifically allow DDmode, since that does not use the SPE SIMD
32436 2014-04-02 Richard Biener <rguenther@suse.de>
32438 PR middle-end/60729
32439 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
32440 MODE_INTs. Properly use negv_optab.
32441 (expand_abs): Likewise.
32443 2014-04-02 Richard Biener <rguenther@suse.de>
32446 * Makefile.in (install-driver): Guard extra installs with special
32449 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
32451 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
32452 Document vec_vgbbd.
32454 2014-04-01 Richard Henderson <rth@redhat.com>
32457 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
32458 alternative enabled before register allocation.
32460 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
32462 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
32463 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
32465 (nios2_large_got_address): Remove unneeded 'sym' parameter.
32466 (nios2_got_address): Update nios2_large_got_address call site.
32467 (nios2_delegitimize_address): New function.
32468 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
32469 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
32470 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
32472 2014-04-01 Martin Husemann <martin@duskware.de>
32474 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
32477 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
32479 PR rtl-optimization/60604
32480 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
32481 check from register_operand.
32482 (register_operand): Redefine in terms of general_operand.
32483 (nonmemory_operand): Use register_operand for the non-constant cases.
32485 2014-04-01 Richard Biener <rguenther@suse.de>
32487 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
32489 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
32491 * doc/invoke.texi (mapp-regs): Clarify.
32493 2014-03-31 Ulrich Drepper <drepper@gmail.com>
32495 * config/i386/avx512fintrin.h (__v32hi): Define type.
32496 (__v64qi): Likewise.
32497 (_mm512_set1_epi8): Define.
32498 (_mm512_set1_epi16): Define.
32499 (_mm512_set4_epi32): Define.
32500 (_mm512_set4_epi64): Define.
32501 (_mm512_set4_pd): Define.
32502 (_mm512_set4_ps): Define.
32503 (_mm512_setr4_epi64): Define.
32504 (_mm512_setr4_epi32): Define.
32505 (_mm512_setr4_pd): Define.
32506 (_mm512_setr4_ps): Define.
32507 (_mm512_setzero_epi32): Define.
32509 2014-03-31 Martin Jambor <mjambor@suse.cz>
32511 PR middle-end/60647
32512 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
32513 callsite_arguments_match_p. Updated all callers. Also check types of
32514 corresponding formal parameters and actual arguments.
32515 (not_all_callers_have_enough_arguments_p) Renamed to
32516 some_callers_have_mismatched_arguments_p.
32518 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
32520 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
32522 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
32525 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
32528 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
32530 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
32531 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
32533 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
32534 Use FMAMODE_NOVF512 mode iterator.
32535 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
32536 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
32537 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
32538 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
32540 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
32541 Use VF_128_256 mode iterator.
32542 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
32545 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
32547 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
32548 static chain if needed.
32550 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
32553 * lra-constraints.c (index_part_to_reg): New.
32554 (process_address): Use it.
32556 2014-03-27 Jeff Law <law@redhat.com>
32557 Jakub Jelinek <jakub@redhat.com>
32560 * expr.c (do_tablejump): Use simplify_gen_binary rather than
32561 gen_rtx_{PLUS,MULT} to build up the address expression.
32563 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
32564 creating non-canonical RTL.
32566 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
32569 * ipa-inline.c (want_inline_small_function_p): Short circuit large
32570 functions; reorganize to make cheap checks first.
32571 (inline_small_functions): Do not estimate growth when dumping;
32573 * ipa-inline.h (inline_summary): Add min_size.
32574 (growth_likely_positive): New function.
32575 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
32576 (set_cond_stmt_execution_predicate): Cleanup.
32577 (estimate_edge_size_and_time): Compute min_size.
32578 (estimate_calls_size_and_time): Likewise.
32579 (estimate_node_size_and_time): Likewise.
32580 (inline_update_overall_summary): Update min_size.
32581 (do_estimate_edge_time): Likewise.
32582 (do_estimate_edge_size): Update.
32583 (do_estimate_edge_hints): Update.
32584 (growth_likely_positive): New function.
32586 2014-03-28 Jakub Jelinek <jakub@redhat.com>
32589 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
32590 also if addr has VOIDmode.
32592 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32594 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
32595 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
32597 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
32598 instructions as well as AdvancedSIMD loads.
32600 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32602 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
32603 Use crypto_aese type.
32604 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
32605 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
32606 crypto_aese, crypto_aesmc. Move to types.md.
32607 * config/arm/types.md (crypto_aes): Split into crypto_aese,
32609 * config/arm/iterators.md (crypto_type): Likewise.
32611 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
32613 * cgraph.c: Include expr.h and tree-dfa.h.
32614 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
32617 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
32620 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
32621 regs from checking multi-reg pseudos.
32623 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
32625 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
32627 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
32629 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
32630 if it would clobber the stack pointer, even temporarily.
32632 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
32634 * mode-switching.c: Make small adjustments to the top comment.
32636 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
32638 * config/rs6000/constraints.md (wD constraint): New constraint to
32639 match the constant integer to get the top DImode/DFmode out of a
32640 vector in a VSX register.
32642 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
32643 match the constant integer to get the top DImode/DFmode out of a
32644 vector in a VSX register.
32646 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
32649 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
32652 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
32653 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
32655 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
32656 Optimize vec_extract of 64-bit values, where the value being
32657 extracted is in the top word, where we can use scalar
32658 instructions. Add direct move and store support. Combine the big
32659 endian/little endian vector select load support into a single insn.
32660 (vsx_extract_<mode>_internal1): Likewise.
32661 (vsx_extract_<mode>_internal2): Likewise.
32662 (vsx_extract_<mode>_load): Likewise.
32663 (vsx_extract_<mode>_store): Likewise.
32664 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
32665 combined into vsx_extract_<mode>_load.
32666 (vsx_extract_<mode>_one_le): Likewise.
32668 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
32669 define the top 64-bit vector element.
32671 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
32674 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
32675 Document vec_vbpermq builtin.
32678 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
32679 enable use of xxsldwi and xxpermdi builtin functions.
32680 (vec_xxpermdi): Likewise.
32682 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
32683 Document use of vec_xxsldwi and vec_xxpermdi builtins.
32685 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
32687 PR rtl-optimization/60650
32688 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
32690 (find_spills_for): New.
32691 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
32692 Spill all pseudos on the second iteration.
32694 2014-03-27 Marek Polacek <polacek@redhat.com>
32697 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
32700 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32702 * config/s390/s390.c (s390_can_use_return_insn): Check for
32703 call-saved FPRs on 31 bit.
32705 2014-03-27 Jakub Jelinek <jakub@redhat.com>
32707 PR middle-end/60682
32708 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
32709 if they need regimplification, just drop them instead of
32710 calling gimple_regimplify_operands on them.
32712 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
32715 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
32716 (aarch64_frame_pointer_required): Adjust logic.
32717 (aarch64_can_eliminate): Adjust logic.
32718 (aarch64_override_options_after_change): Adjust logic.
32720 2014-03-27 Dehao Chen <dehao@google.com>
32722 * ipa-inline.c (early_inliner): Update node's inline info.
32724 2014-03-26 Dehao Chen <dehao@google.com>
32726 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
32727 compiler inserted conditional jumps for NAN float check.
32729 2014-03-26 Jakub Jelinek <jakub@redhat.com>
32731 * ubsan.h (ubsan_create_data): Change second argument's type
32732 to const location_t *.
32733 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
32735 (ubsan_create_data): Change second argument to const location_t *PLOC.
32736 Create Loc field whenever PLOC is non-NULL.
32737 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
32738 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
32742 * real.c (real_to_integer2): Change type of low to UHWI.
32744 2014-03-26 Tobias Burnus <burnus@net-b.de>
32746 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
32747 (CILK_SELF_SPECS): New define.
32748 (driver_self_specs): Use it.
32750 2014-03-26 Richard Biener <rguenther@suse.de>
32752 * tree-pretty-print.c (percent_K_format): Implement special
32753 case for LTO and its stripped down BLOCK tree.
32755 2014-03-26 Jakub Jelinek <jakub@redhat.com>
32758 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
32760 * tree-vrp.c (simplify_internal_call_using_ranges): If only
32761 one range is range_int_cst_p, but not both, at least optimize
32762 addition/subtraction of 0 and multiplication by 0 or 1.
32763 * gimple-fold.c (gimple_fold_call): Fold
32764 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
32765 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
32766 INTEGER_CSTs, try to fold at least x * 0 and y - y.
32768 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
32770 PR rtl-optimization/60452
32771 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
32772 <case REG>: Return 1 for invalid offsets from the frame pointer.
32774 2014-03-26 Marek Polacek <polacek@redhat.com>
32777 * doc/extend.texi (C Extensions): Mention variable-length arrays in
32780 2014-03-26 Marek Polacek <polacek@redhat.com>
32783 * doc/extend.texi (Designated Inits): Describe what happens to omitted
32786 2014-03-26 Marek Polacek <polacek@redhat.com>
32789 * ira-color.c (update_conflict_hard_regno_costs): Perform the
32790 multiplication in unsigned type.
32792 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
32794 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
32796 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
32798 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
32800 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
32803 * cif-code.def (UNREACHABLE) New code.
32804 * ipa-inline.c (inline_small_functions): Skip edges to
32805 __builtlin_unreachable.
32806 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
32807 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
32808 predicate to __bulitin_unreachable.
32809 (set_cond_stmt_execution_predicate): Fix issue when
32810 invert_tree_comparison returns ERROR_MARK.
32811 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
32812 propagate to inline clones.
32813 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
32815 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
32816 * cgraphclones.c (cgraph_clone_node): If call destination is already
32817 ureachable, do not redirect it back.
32818 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
32821 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
32823 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
32824 Do not modify inline clones.
32826 2014-03-25 Jakub Jelinek <jakub@redhat.com>
32828 * config/i386/i386.md (general_sext_operand): New mode attr.
32829 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
32830 don't generate (sign_extend (const_int)).
32831 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
32832 operands[2]. Use We constraint instead of <i> and
32833 <general_sext_operand> predicate instead of <general_operand>.
32834 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
32835 * config/i386/constraints.md (We): New constraint.
32836 * config/i386/predicates.md (x86_64_sext_operand,
32837 sext_operand): New predicates.
32839 2014-03-25 Martin Jambor <mjambor@suse.cz>
32842 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
32843 inconsistent devirtualizations to __builtin_unreachable.
32845 2014-03-25 Marek Polacek <polacek@redhat.com>
32848 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
32850 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
32852 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
32853 order of elements for big-endian.
32855 2014-03-25 Richard Biener <rguenther@suse.de>
32857 PR middle-end/60635
32858 * gimplify-me.c (gimple_regimplify_operands): Update the
32861 2014-03-25 Martin Jambor <mjambor@suse.cz>
32864 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
32865 (lto_output_varpool_node): Likewise.
32866 (input_overwrite_node): Likewise.
32867 (input_varpool_node): Likewise.
32869 2014-03-25 Richard Biener <rguenther@suse.de>
32871 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
32872 (run_gcc): Likewise.
32874 2014-03-25 Jakub Jelinek <jakub@redhat.com>
32876 * combine.c (simplify_compare_const): Add MODE argument.
32877 Handle mode_width 0 as very large mode_width.
32878 (try_combine, simplify_comparison): Adjust callers.
32880 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
32881 type to avoid signed integer overflow.
32882 * explow.c (plus_constant): Likewise.
32884 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
32886 * doc/generic.texi: Correct typos.
32888 2014-03-24 Tobias Burnus <burnus@net-b.de>
32890 * doc/invoke.texi (-flto): Expand section about
32891 using static libraries with LTO.
32893 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32895 PR rtl-optimization/60501
32896 * optabs.def (addptr3_optab): New optab.
32897 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
32898 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
32899 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
32901 * lra.c (emit_add3_insn): Use the addptr pattern if available.
32903 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
32905 2014-03-24 Ulrich Drepper <drepper@gmail.com>
32907 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
32910 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
32911 (_mm256_undefined_ps): Define.
32912 (_mm256_undefined_pd): Define.
32913 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
32914 (_mm_undefined_pd): Define.
32915 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
32916 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
32917 (_mm512_undefined_ps): Define.
32918 (_mm512_undefined_pd): Define.
32919 Use _mm*_undefined_*.
32920 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
32922 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
32924 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
32925 (lshr_simd): DI mode added.
32926 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
32927 (aarch64_ushr_simddi): Likewise.
32928 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
32929 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
32930 (vshrd_n_u64): Likewise.
32932 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32934 * Makefile.in (s-macro_list): Depend on cc1.
32936 2014-03-23 Teresa Johnson <tejohnson@google.com>
32938 * ipa-utils.c (ipa_print_order): Use specified dump file.
32940 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
32942 PR rtl-optimization/60601
32943 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
32945 * gcc.c (eval_spec_function): Initialize save_growing_value.
32947 2014-03-22 Jakub Jelinek <jakub@redhat.com>
32950 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
32951 code == MINUS_EXPR, never swap op0 with op1.
32953 * toplev.c (init_local_tick): Avoid signed integer multiplication
32955 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
32956 shift by first operand's bitsize.
32958 2014-03-21 Jakub Jelinek <jakub@redhat.com>
32961 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
32962 redefine to 1 or 0.
32963 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
32964 TARGET_ISA_64BIT_P(x).
32966 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32968 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
32969 pattern for vector nor instead of subtract from splat(-1).
32970 (altivec_expand_vec_perm_const_le): Likewise.
32972 2014-03-21 Richard Henderson <rth@twiddle.net>
32975 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
32976 related insns after epilogue_completed.
32978 2014-03-21 Martin Jambor <mjambor@suse.cz>
32981 * cgraph.h (symtab_node): New flag body_removed.
32982 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
32983 when removing bodies.
32984 * symtab.c (dump_symtab_base): Dump body_removed flag.
32985 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
32986 had their bodies removed.
32988 2014-03-21 Martin Jambor <mjambor@suse.cz>
32991 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
32994 2014-03-21 Richard Biener <rguenther@suse.de>
32996 PR tree-optimization/60577
32997 * tree-core.h (struct tree_base): Document nothrow_flag use
32998 in DECL_NONALIASED.
32999 * tree.h (DECL_NONALIASED): New.
33000 (may_be_aliased): Adjust.
33001 * coverage.c (build_var): Set DECL_NONALIASED.
33003 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
33005 * expr.c (expand_expr_real_1): Remove outdated comment.
33007 2014-03-20 Jakub Jelinek <jakub@redhat.com>
33009 PR middle-end/60597
33010 * ira.c (adjust_cleared_regs): Call copy_rtx on
33011 *reg_equiv[REGNO (loc)].src_p before passing it to
33012 simplify_replace_fn_rtx.
33015 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
33016 into CONST, put pic register as first operand of PLUS. Use
33017 gen_const_mem for both 32-bit and 64-bit PIC got loads.
33019 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33021 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
33023 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
33025 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
33026 around for store forwarding issue in the FPU on the UT699.
33027 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
33028 loads and operations if -mfix-ut699 is specified.
33029 (divtf3_hq): Tweak attribute.
33030 (sqrttf2_hq): Likewise.
33032 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
33034 * calls.c (store_one_arg): Remove incorrect const qualification on the
33035 type of the temporary.
33036 * cfgexpand.c (expand_return): Likewise.
33037 * expr.c (expand_constructor): Likewise.
33038 (expand_expr_real_1): Likewise.
33040 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
33042 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
33045 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
33048 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
33050 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
33052 * config/arm/aarch-common-protos.h
33053 (alu_cost_table): Fix spelling of "extend".
33054 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
33056 2014-03-19 Richard Biener <rguenther@suse.de>
33058 PR middle-end/60553
33059 * tree-core.h (tree_type_common): Re-order pointer members
33060 to reduce recursion depth during GC walks.
33062 2014-03-19 Marek Polacek <polacek@redhat.com>
33065 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
33066 before accessing it.
33068 2014-03-19 Richard Biener <rguenther@suse.de>
33071 * lto-streamer-in.c (input_function): In WPA stage do not drop
33074 2014-03-19 Jakub Jelinek <jakub@redhat.com>
33076 PR tree-optimization/60559
33077 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
33078 with build_zero_cst assignment.
33080 2014-03-18 Kai Tietz <ktietz@redhat.com>
33082 PR rtl-optimization/56356
33083 * sdbout.c (sdbout_parms): Verify that parms'
33084 incoming argument is valid.
33085 (sdbout_reg_parms): Likewise.
33087 2014-03-18 Richard Henderson <rth@redhat.com>
33090 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
33091 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
33092 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
33094 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
33096 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
33097 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
33098 Italicize plugin event names in description. Explain that
33099 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
33100 Remind that no GCC functions should be called after PLUGIN_FINISH.
33101 Explain what pragmas with expansion are.
33103 2014-03-18 Martin Liska <mliska@suse.cz>
33105 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
33106 gimple call statement is update.
33107 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
33108 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
33110 2014-03-18 Jakub Jelinek <jakub@redhat.com>
33113 * ubsan.c (ubsan_instrument_unreachable): Call
33114 initialize_sanitizer_builtins.
33115 (ubsan_pass): Likewise.
33118 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
33119 varpool_finalize_decl instead of rest_of_decl_compilation.
33121 2014-03-18 Richard Biener <rguenther@suse.de>
33123 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
33124 by using bitmap_and_compl instead of bitmap_and_compl_into.
33125 (df_rd_transfer_function): Likewise.
33127 2014-03-18 Richard Biener <rguenther@suse.de>
33129 * doc/lto.texi (fresolution): Fix typo.
33131 2014-03-18 Richard Biener <rguenther@suse.de>
33133 * doc/invoke.texi (flto): Update for changes in 4.9.
33135 2014-03-18 Richard Biener <rguenther@suse.de>
33137 * doc/loop.texi: Remove section on the removed lambda framework.
33138 Update loop docs with recent changes in preserving loop structure.
33140 2014-03-18 Richard Biener <rguenther@suse.de>
33142 * doc/lto.texi (-fresolution): Document.
33144 2014-03-18 Richard Biener <rguenther@suse.de>
33146 * doc/contrib.texi: Adjust my name.
33148 2014-03-18 Jakub Jelinek <jakub@redhat.com>
33151 * internal-fn.c: Include diagnostic-core.h.
33152 (expand_BUILTIN_EXPECT): New function.
33153 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
33154 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
33155 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
33156 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
33157 IFN_BUILTIN_EXPECT.
33158 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
33159 Revert 3 argument __builtin_expect code.
33160 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
33161 * gimple-fold.c (gimple_fold_call): Likewise.
33162 * tree.h (fold_builtin_expect): New prototype.
33163 * builtins.c (build_builtin_expect_predicate): Add predictor
33164 argument, if non-NULL, create 3 argument __builtin_expect.
33165 (fold_builtin_expect): No longer static. Add ARG2 argument,
33166 pass it through to build_builtin_expect_predicate.
33167 (fold_builtin_2): Adjust caller.
33168 (fold_builtin_3): Handle BUILT_IN_EXPECT.
33169 * internal-fn.def (BUILTIN_EXPECT): New.
33171 2014-03-18 Tobias Burnus <burnus@net-b.de>
33174 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
33175 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
33176 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
33178 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
33181 * predict.c (combine_predictions_for_bb): Fix up formatting.
33182 (expr_expected_value_1, expr_expected_value): Add predictor argument,
33183 fill what it points to if non-NULL.
33184 (tree_predict_by_opcode): Adjust caller, use the predictor.
33185 * predict.def (PRED_COMPARE_AND_SWAP): Add.
33187 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
33189 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
33190 proper constant for the store mode.
33192 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
33194 * symtab.c (change_decl_assembler_name): Fix transparent alias
33195 chain construction.
33197 2014-03-16 Renlin Li <Renlin.Li@arm.com>
33199 * config/aarch64/aarch64.c: Correct the comments about the
33200 aarch64 stack layout.
33202 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
33204 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
33205 check for GF_OMP_FOR_KIND_FOR.
33207 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
33209 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
33210 ymm and zmm register names.
33212 2014-03-17 Jakub Jelinek <jakub@redhat.com>
33215 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
33216 note creation for the 2010-08-31 changes.
33218 2014-03-17 Marek Polacek <polacek@redhat.com>
33220 PR middle-end/60534
33221 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
33222 as -fno-tree-loop-vectorize.
33223 (expand_omp_simd): Likewise.
33225 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
33227 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
33228 (eligible_for_call_delay): New prototype.
33229 * config/sparc/sparc.c (tls_call_delay): Rename into...
33230 (eligible_for_call_delay): ...this. Return false if the instruction
33231 cannot be put in the delay slot of a branch.
33232 (eligible_for_restore_insn): Simplify.
33233 (eligible_for_return_delay): Return false if the instruction cannot be
33234 put in the delay slot of a branch and simplify.
33235 (eligible_for_sibcall_delay): Return false if the instruction cannot be
33236 put in the delay slot of a branch.
33237 * config/sparc/sparc.md (fix_ut699): New attribute.
33238 (tls_call_delay): Delete.
33239 (in_call_delay): Reimplement.
33240 (eligible_for_sibcall_delay): Rename into...
33241 (in_sibcall_delay): ...this.
33242 (eligible_for_return_delay): Rename into...
33243 (in_return_delay): ...this.
33244 (in_branch_delay): Reimplement.
33245 (in_uncond_branch_delay): Delete.
33246 (in_annul_branch_delay): Delete.
33248 2014-03-14 Richard Henderson <rth@redhat.com>
33251 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
33252 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
33253 (*floathi<X87MODEF>2_i387_with_temp): Remove.
33254 (floathi splitters): Remove.
33255 (float<SWI48x>xf2): New pattern.
33256 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
33257 code that tried to handle DImode for 32-bit, but which was excluded
33258 by the pattern's condition. Drop allocation of stack temporary.
33259 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
33260 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
33261 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
33262 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
33263 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
33264 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
33265 (*float<SWI48><MODEF>2_sse_interunit): Remove.
33266 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
33267 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
33268 (*float<SWI48x><X87MODEF>2_i387): Remove.
33269 (all float _with_temp splitters): Remove.
33270 (*float<SWI48x><MODEF>2_i387): New pattern.
33271 (*float<SWI48><MODEF>2_sse): New pattern.
33272 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
33273 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
33275 2014-03-14 Jakub Jelinek <jakub@redhat.com>
33276 Marek Polacek <polacek@redhat.com>
33278 PR middle-end/60484
33279 * common.opt (dump_base_name_prefixed): New Variable.
33280 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
33281 if x_dump_base_name_prefixed is already set, set it at the end.
33283 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
33285 PR rtl-optimization/60508
33286 * lra-constraints.c (get_reload_reg): Add new parameter
33288 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
33289 Pass the new parameter values.
33291 2014-03-14 Richard Biener <rguenther@suse.de>
33293 * common.opt: Revert unintented changes from r205065.
33294 * opts.c: Likewise.
33296 2014-03-14 Richard Biener <rguenther@suse.de>
33298 PR middle-end/60518
33299 * cfghooks.c (split_block): Properly adjust all loops the
33300 block was a latch of.
33302 2014-03-14 Martin Jambor <mjambor@suse.cz>
33305 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
33308 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
33311 * config/avr/avr.c (avr_set_current_function): Pass function name
33312 through default_strip_name_encoding before sanity checking instead
33313 of skipping the first char of the assembler name.
33315 2014-03-13 Richard Henderson <rth@redhat.com>
33318 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
33319 (ix86_force_to_memory, ix86_free_from_memory): Remove.
33320 * config/i386/i386-protos.h: Likewise.
33321 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
33322 in the expander instead of a splitter.
33323 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
33324 any possibility of requiring a memory.
33325 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
33326 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
33327 (fp branch splitters): Update for ix86_split_fp_branch.
33328 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
33329 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
33330 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
33331 (*fop_<MODEF>_2_i387): Remove f/r alternative.
33332 (*fop_<MODEF>_3_i387): Likewise.
33333 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
33334 (splitters for the fop_* register patterns): Remove.
33335 (fscalexf4_i387): Rename from *fscalexf4_i387.
33336 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
33338 2014-03-13 Jakub Jelinek <jakub@redhat.com>
33340 PR tree-optimization/59779
33341 * tree-dfa.c (get_ref_base_and_extent): Use double_int
33342 type for bitsize and maxsize instead of HOST_WIDE_INT.
33344 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
33346 PR rtl-optimization/57320
33347 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
33348 the CFG after thread_prologue_and_epilogue_insns.
33350 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
33352 PR rtl-optimization/57189
33353 * lra-constraints.c (process_alt_operands): Disfavor spilling
33356 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
33358 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
33360 2014-03-13 Jakub Jelinek <jakub@redhat.com>
33362 PR tree-optimization/59025
33363 PR middle-end/60418
33364 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
33365 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
33367 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
33370 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
33371 calls of avr_out_plus_1.
33373 2014-03-13 Bin Cheng <bin.cheng@arm.com>
33375 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
33376 BB's single pred and update the father loop's latch info later.
33378 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
33380 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
33384 (VEC_base): Likewise.
33385 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
33386 registers, we need to swap double words in little endian mode.
33388 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
33389 to be a container mode for 128-bit integer operations added in ISA
33390 2.07. Unlike TImode and PTImode, the preferred register set is
33391 the Altivec/VMX registers for the 128-bit operations.
33393 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
33395 (rs6000_split_128bit_ok_p): Likewise.
33397 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
33398 macros for creating ISA 2.07 normal and overloaded builtin
33399 functions with 3 arguments.
33400 (BU_P8V_OVERLOAD_3): Likewise.
33401 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
33402 for use as overloaded functions.
33403 (VPERM_1TI_UNS): Likewise.
33404 (VSEL_1TI): Likewise.
33405 (VSEL_1TI_UNS): Likewise.
33406 (ST_INTERNAL_1ti): Likewise.
33407 (LD_INTERNAL_1ti): Likewise.
33408 (XXSEL_1TI): Likewise.
33409 (XXSEL_1TI_UNS): Likewise.
33410 (VPERM_1TI): Likewise.
33411 (VPERM_1TI_UNS): Likewise.
33412 (XXPERMDI_1TI): Likewise.
33413 (SET_1TI): Likewise.
33414 (LXVD2X_V1TI): Likewise.
33415 (STXVD2X_V1TI): Likewise.
33416 (VEC_INIT_V1TI): Likewise.
33417 (VEC_SET_V1TI): Likewise.
33418 (VEC_EXT_V1TI): Likewise.
33419 (EQV_V1TI): Likewise.
33420 (NAND_V1TI): Likewise.
33421 (ORC_V1TI): Likewise.
33422 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
33423 added in ISA 2.07. Add both normal 'altivec' builtins, and the
33424 overloaded builtin.
33425 (VADDUQM): Likewise.
33426 (VSUBCUQ): Likewise.
33427 (VADDEUQM): Likewise.
33428 (VADDECUQ): Likewise.
33429 (VSUBEUQM): Likewise.
33430 (VSUBECUQ): Likewise.
33432 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
33433 __int128_t and __uint128_t types.
33434 (__uint128_type): Likewise.
33435 (altivec_categorize_keyword): Add support for vector __int128_t,
33436 vector __uint128_t, vector __int128, and vector unsigned __int128
33437 as a container type for TImode operations that need to be done in
33438 VSX/Altivec registers.
33439 (rs6000_macro_to_expand): Likewise.
33440 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
33441 to support 128-bit integer instructions vaddcuq, vadduqm,
33442 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
33443 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
33445 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
33446 for V1TImode, and set up preferences to use VSX/Altivec registers.
33447 Setup VSX reload handlers.
33448 (rs6000_debug_reg_global): Likewise.
33449 (rs6000_init_hard_regno_mode_ok): Likewise.
33450 (rs6000_preferred_simd_mode): Likewise.
33451 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
33452 (easy_altivec_constant): Likewise.
33453 (output_vec_const_move): Likewise.
33454 (rs6000_expand_vector_set): Convert V1TImode set and extract to
33456 (rs6000_expand_vector_extract): Likewise.
33457 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
33459 (rs6000_const_vec): Add support for V1TImode.
33460 (rs6000_emit_le_vsx_load): Swap double words when loading or
33461 storing TImode/V1TImode.
33462 (rs6000_emit_le_vsx_store): Likewise.
33463 (rs6000_emit_le_vsx_move): Likewise.
33464 (rs6000_emit_move): Add support for V1TImode.
33465 (altivec_expand_ld_builtin): Likewise.
33466 (altivec_expand_st_builtin): Likewise.
33467 (altivec_expand_vec_init_builtin): Likewise.
33468 (altivec_expand_builtin): Likewise.
33469 (rs6000_init_builtins): Add support for V1TImode type. Add
33470 support for ISA 2.07 128-bit integer builtins. Define type names
33471 for the VSX/Altivec vector types.
33472 (altivec_init_builtins): Add support for overloaded vector
33473 functions with V1TImode type.
33474 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
33475 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
33477 (rs6000_split_128bit_ok_p): Likewise.
33478 (rs6000_handle_altivec_attribute): Create V1TImode from vector
33479 __int128_t and vector __uint128_t.
33481 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
33482 and mode attributes.
33484 (VSX_M2): Likewise.
33489 (VS_scalar): Likewise.
33490 (VS_double): Likewise.
33491 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
33493 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
33494 we support the ISA 2.07 128-bit integer arithmetic instructions.
33495 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
33496 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
33497 and TImode types for use with the builtin functions.
33498 (V1TI_type_node): Likewise.
33499 (unsigned_V1TI_type_node): Likewise.
33500 (intTI_type_internal_node): Likewise.
33501 (uintTI_type_internal_node): Likewise.
33503 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
33504 128-bit builtin functions.
33505 (UNSPEC_VADDEUQM): Likewise.
33506 (UNSPEC_VADDECUQ): Likewise.
33507 (UNSPEC_VSUBCUQ): Likewise.
33508 (UNSPEC_VSUBEUQM): Likewise.
33509 (UNSPEC_VSUBECUQ): Likewise.
33510 (VM): Add V1TImode to vector mode iterators.
33512 (VI_unit): Likewise.
33513 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
33514 (altivec_vaddcuq): Likewise.
33515 (altivec_vsubuqm): Likewise.
33516 (altivec_vsubcuq): Likewise.
33517 (altivec_vaddeuqm): Likewise.
33518 (altivec_vaddecuq): Likewise.
33519 (altivec_vsubeuqm): Likewise.
33520 (altivec_vsubecuq): Likewise.
33522 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
33524 (BOOL_128): Likewise.
33525 (BOOL_REGS_OUTPUT): Likewise.
33526 (BOOL_REGS_OP1): Likewise.
33527 (BOOL_REGS_OP2): Likewise.
33528 (BOOL_REGS_UNARY): Likewise.
33529 (BOOL_REGS_AND_CR0): Likewise.
33531 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
33532 128-bit integer builtin support.
33533 (vec_vadduqm): Likewise.
33534 (vec_vaddecuq): Likewise.
33535 (vec_vaddeuqm): Likewise.
33536 (vec_vsubecuq): Likewise.
33537 (vec_vsubeuqm): Likewise.
33538 (vec_vsubcuq): Likewise.
33539 (vec_vsubuqm): Likewise.
33541 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
33542 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
33543 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
33544 128-bit integer add/subtract to ISA 2.07.
33546 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
33548 * config/arc/arc.c (arc_predicate_delay_insns):
33549 Fix third argument passed to conditionalize_nonjump.
33551 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
33553 * config/aarch64/aarch64-builtins.c
33554 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
33555 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
33556 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
33557 instead of __builtin_lfloor.
33558 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
33560 2014-03-12 Jakub Jelinek <jakub@redhat.com>
33562 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
33563 (tree_ssa_ifcombine_bb_1): New function.
33564 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
33565 is an empty forwarder block to then_bb or vice versa and then_bb
33566 and else_bb are effectively swapped.
33568 2014-03-12 Christian Bruel <christian.bruel@st.com>
33571 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
33572 REG_CFA_DEF_CFA note.
33573 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
33574 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
33576 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
33578 PR tree-optimization/60454
33579 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
33581 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33583 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
33584 Do not define target_cpu_default2 to generic.
33585 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
33586 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
33587 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
33589 2014-03-12 Jakub Jelinek <jakub@redhat.com>
33590 Marc Glisse <marc.glisse@inria.fr>
33592 PR tree-optimization/60502
33593 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
33594 instead of build_low_bits_mask.
33596 2014-03-12 Jakub Jelinek <jakub@redhat.com>
33598 PR middle-end/60482
33599 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
33600 if there are multiple uses, but op doesn't live on E edge.
33601 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
33602 clobber stmts before __builtin_unreachable.
33604 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
33606 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
33607 hard_frame_pointer_rtx.
33608 * cse.c (cse_insn): Remove volatile check.
33609 * cselib.c (cselib_process_insn): Likewise.
33610 * dse.c (scan_insn): Likewise.
33612 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
33614 * config/arc/arc.c (conditionalize_nonjump): New function,
33616 (arc_ifcvt): ... this.
33617 (arc_predicate_delay_insns): Use it.
33619 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
33621 * config/arc/predicates.md (extend_operand): During/after reload,
33622 allow const_int_operand.
33623 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
33624 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
33625 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
33627 (umulsi3_highpart_i): Likewise.
33629 2014-03-11 Richard Biener <rguenther@suse.de>
33631 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
33632 Add asserts to guard possible wrong-code bugs.
33634 2014-03-11 Richard Biener <rguenther@suse.de>
33636 PR tree-optimization/60429
33637 PR tree-optimization/60485
33638 * tree-ssa-structalias.c (set_union_with_increment): Properly
33639 take into account all fields that overlap the shifted vars.
33640 (do_sd_constraint): Likewise.
33641 (do_ds_constraint): Likewise.
33642 (get_constraint_for_ptr_offset): Likewise.
33644 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
33646 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
33647 (nios2_compute_frame_layout):
33648 Add calculation of cfun->machine->fp_save_offset.
33649 (nios2_expand_prologue): Correct setting of frame pointer register
33651 (nios2_expand_epilogue): Update recovery of stack pointer from
33652 frame pointer accordingly.
33653 (nios2_initial_elimination_offset): Update calculation of offset
33654 for eliminating to HARD_FRAME_POINTER_REGNUM.
33656 2014-03-10 Jakub Jelinek <jakub@redhat.com>
33659 * ipa.c (symtab_remove_unreachable_nodes): Don't call
33660 cgraph_get_create_node on VAR_DECLs.
33662 2014-03-10 Richard Biener <rguenther@suse.de>
33664 PR middle-end/60474
33665 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
33667 2014-03-08 Douglas B Rupp <rupp@gnat.com>
33669 * config/vms/vms.opt (vms_float_format): New variable.
33671 2014-03-08 Tobias Burnus <burnus@net-b.de>
33673 * doc/invoke.texi (-fcilkplus): Update implementation status.
33675 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
33676 Richard Biener <rguenther@suse.de>
33678 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
33679 consistently accross all TUs.
33680 (run_gcc): Enable -fshort-double automatically at link at link-time
33681 and disallow override.
33683 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
33686 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
33687 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
33688 if they can't be used.
33690 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33692 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
33693 for Solaris 11/x86 ld.
33694 * configure: Regenerate.
33696 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33698 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
33699 (LIB_TLS_SPEC): Save as ld_tls_libs.
33700 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
33701 (HAVE_AS_IX86_TLSLDM): New test.
33702 * configure, config.in: Regenerate.
33703 * config/i386/i386.c (legitimize_tls_address): Fall back to
33704 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
33705 cannot support TLS_MODEL_LOCAL_DYNAMIC.
33706 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
33707 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
33709 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
33711 * common.opt (fira-loop-pressure): Mark as optimization.
33713 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
33715 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
33716 an OpenMP mappable type.
33718 2014-03-06 Matthias Klose <doko@ubuntu.com>
33720 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
33721 MULTILIB_OSDIRNAMES is not defined.
33723 2014-03-06 Jakub Jelinek <jakub@redhat.com>
33724 Meador Inge <meadori@codesourcery.com>
33727 * config/arm/arm.c (arm_tls_symbol_p): Remove.
33728 (arm_legitimize_address): Call legitimize_tls_address for any
33729 arm_tls_referenced_p expression, handle constant addend. Call it
33730 before testing for !TARGET_ARM.
33731 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
33733 2014-03-06 Richard Biener <rguenther@suse.de>
33735 PR middle-end/60445
33739 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
33741 * tree-streamer.c (record_common_node): Assert we don't record
33742 nodes with type double.
33743 (preload_common_node): Skip type double, complex double and double
33744 pointer since it is now frontend dependent due to fshort-double option.
33746 2014-03-06 Richard Biener <rguenther@suse.de>
33748 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
33749 or -fno-lto is specified and the linker has full plugin support.
33750 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
33751 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
33752 * lto-wrapper.c (merge_and_complain): Merge compile-time
33753 optimization levels.
33754 (run_gcc): And pass it through to the link options.
33756 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
33760 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
33762 * cselib.c (remove_useless_values): Skip to avoid quadratic
33763 behavior if the condition moved from...
33764 (cselib_process_insn): ... here holds.
33766 2014-03-05 Jakub Jelinek <jakub@redhat.com>
33769 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
33770 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
33773 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
33774 (TM_H): Add x86-tune.def.
33776 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33778 * config/aarch64/aarch64.c (generic_tunings):
33779 Use cortexa57_extra_costs.
33781 2014-03-05 Jakub Jelinek <jakub@redhat.com>
33784 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
33785 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
33786 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
33789 2014-03-04 Heiher <r@hev.cc>
33791 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
33792 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
33794 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
33796 * config/i386/predicates.md (const2356_operand): Change to ...
33797 (const2367_operand): ... this.
33798 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
33800 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33801 (*avx512pf_scatterpf<mode>sf): Ditto.
33802 (avx512pf_scatterpf<mode>df): Ditto.
33803 (*avx512pf_scatterpf<mode>df_mask): Ditto.
33804 (*avx512pf_scatterpf<mode>df): Ditto.
33805 * config/i386/i386.c (ix86_expand_builtin): Update
33806 incorrect hint operand error message.
33808 2014-03-04 Richard Biener <rguenther@suse.de>
33810 * lto-section-in.c (lto_get_section_data): Fix const cast.
33812 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
33814 * tree-streamer.c (record_common_node): Assert we don't record
33815 nodes with type double.
33816 (preload_common_node): Skip type double, complex double and double
33817 pointer since it is now frontend dependent due to fshort-double option.
33819 2014-03-04 Richard Biener <rguenther@suse.de>
33822 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
33823 (lto_input_toplevel_asms): Likewise.
33824 * lto-section-in.c (lto_get_section_data): Instead do it here
33827 2014-03-04 Richard Biener <rguenther@suse.de>
33829 PR tree-optimization/60382
33830 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
33831 dead PHIs a reduction.
33833 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
33835 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
33837 (_mm_prefetch): Move out of GCC target("sse") pragma.
33838 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
33839 GCC target("prfchw") pragma.
33840 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
33842 * config/i386/i386.c (ix86_option_override_internal): Enable
33843 -mprfchw with -mprefetchwt1.
33845 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
33847 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
33850 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
33852 * opts.h (CL_PCH_IGNORE): Define.
33853 * targhooks.c (option_affects_pch_p):
33854 Return false for options that have CL_PCH_IGNORE set.
33855 * opt-functions.awk: Process PchIgnore.
33856 * doc/options.texi: Document PchIgnore.
33858 * config/arc/arc.opt (misize): Add PchIgnore property.
33860 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33862 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
33863 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
33864 constraint on constants to permit them being loaded into
33865 GENERAL_REGS or BASE_REGS.
33867 2014-03-03 Nick Clifton <nickc@redhat.com>
33869 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
33870 anti-cacnonical alternatives.
33871 (negandhi3_real): New pattern.
33872 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
33874 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33876 * config/avr/avr-mcus.def: Remove atxmega16x1.
33877 * config/avr/avr-tables.opt: Regenerate.
33878 * config/avr/t-multilib: Regenerate.
33879 * doc/avr-mmcu.texi: Regenerate.
33881 2014-03-03 Tobias Grosser <tobias@grosser.es>
33882 Mircea Namolaru <mircea.namolaru@inria.fr>
33884 PR tree-optimization/58028
33885 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
33888 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33890 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
33891 not handled by recognizers.
33893 2014-03-03 Jakub Jelinek <jakub@redhat.com>
33895 PR middle-end/60175
33896 * function.c (expand_function_end): Don't emit
33897 clobber_return_register sequence if clobber_after is a BARRIER.
33898 * cfgexpand.c (construct_exit_block): Append instructions before
33899 return_label to prev_bb.
33901 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33903 * config/rs6000/constraints.md: Document reserved use of "wc".
33905 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
33908 * ipa.c (function_and_variable_visibility): When dissolving comdat
33909 group, also set all symbols to local.
33911 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
33916 2013-12-14 Jan Hubicka <jh@suse.cz>
33917 PR middle-end/58477
33918 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
33920 2014-03-02 Jon Beniston <jon@beniston.com>
33926 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
33927 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
33928 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
33929 (simple_return, *simple_return): New patterns
33930 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
33931 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
33933 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
33935 * dwarf2out.c (gen_subprogram_die): Tidy.
33937 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
33940 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
33941 (*mov_t_msb_neg_negc): ... this new insn.
33943 2014-02-28 Jason Merrill <jason@redhat.com>
33946 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
33949 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
33952 * dwarf2out.c (decltype_auto_die): New static.
33953 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
33954 (gen_type_die_with_usage): Handle 'decltype(auto)'.
33955 (is_cxx_auto): Likewise.
33957 2014-02-28 Ian Bolton <ian.bolton@arm.com>
33959 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
33960 we are not using general regs only.
33962 2014-02-28 Richard Biener <rguenther@suse.de>
33965 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
33966 previous fix and only allow to remove trivial pre-headers
33967 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
33968 (remove_forwarder_block): Properly update the latch of a loop.
33970 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
33973 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
33974 (cselib_preserved_hash_table): New.
33975 (preserve_constants_and_equivs): Move preserved vals to it.
33976 (cselib_find_slot): Look it up first.
33977 (cselib_init): Initialize it.
33978 (cselib_finish): Release it.
33979 (dump_cselib_table): Dump it.
33981 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
33984 * cselib.c (remove_useless_values): Skip to avoid quadratic
33985 behavior if the condition moved from...
33986 (cselib_process_insn): ... here holds.
33988 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
33991 * var-tracking.c (vt_initialize): Apply the same condition to
33992 preserve the CFA base value.
33994 2014-02-28 Joey Ye <joey.ye@arm.com>
33997 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
33998 if reload in progress or completed.
34000 2014-02-28 Tobias Burnus <burnus@net-b.de>
34002 PR middle-end/60147
34003 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
34006 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
34008 * doc/tm.texi.in (Condition Code Status): Update documention for
34009 relative locations of cc0-setter and cc0-user.
34011 2014-02-27 Jeff Law <law@redhat.com>
34013 PR rtl-optimization/52714
34014 * combine.c (try_combine): When splitting an unrecognized PARALLEL
34015 into two independent simple sets, if I3 is a jump, ensure the
34016 pattern we place into I3 is a (set (pc) ...).
34018 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
34019 Jeff Law <law@redhat.com>
34021 PR rtl-optimization/49847
34022 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
34023 are in different blocks.
34024 * doc/tm.texi (Condition Code Status): Update documention for
34025 relative locations of cc0-setter and cc0-user.
34027 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
34030 * lra.c (lra_emit_add): Check SUBREG too.
34032 2014-02-27 Andreas Schwab <schwab@suse.de>
34034 * config/m68k/m68k.c (m68k_option_override): Disable
34035 -flive-range-shrinkage for classic m68k.
34036 (m68k_override_options_after_change): Likewise.
34038 2014-02-27 Marek Polacek <polacek@redhat.com>
34040 PR middle-end/59223
34041 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
34042 -Wmaybe-uninitialized.
34044 2014-02-27 Alan Modra <amodra@gmail.com>
34047 * reload1.c (emit_input_reload_insns): When reload_override_in,
34048 set old to rl->in_reg when rl->in_reg is a subreg.
34050 2014-02-26 Richard Biener <rguenther@suse.de>
34053 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
34055 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
34057 * common/config/i386/predicates.md (const1256_operand): Remove.
34058 (const2356_operand): New.
34059 (const_1_to_2_operand): Remove.
34060 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
34061 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
34062 (*avx512pf_gatherpf<mode>sf): Ditto.
34063 (avx512pf_gatherpf<mode>df): Ditto.
34064 (*avx512pf_gatherpf<mode>df_mask): Ditto.
34065 (*avx512pf_gatherpf<mode>df): Ditto.
34066 (avx512pf_scatterpf<mode>sf): Ditto.
34067 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
34068 (*avx512pf_scatterpf<mode>sf): Ditto.
34069 (avx512pf_scatterpf<mode>df): Ditto.
34070 (*avx512pf_scatterpf<mode>df_mask): Ditto.
34071 (*avx512pf_scatterpf<mode>df): Ditto.
34072 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
34074 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
34076 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
34077 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
34078 (_mm512_mask_testn_epi64_mask): Move to ...
34079 * config/i386/avx512cdintrin.h: Here.
34080 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
34081 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
34082 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
34083 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
34084 TARGET_AVX512F from TARGET_AVX512CD.
34086 2014-02-26 Richard Biener <rguenther@suse.de>
34089 * ipa.c (walk_polymorphic_call_targets): Properly guard
34090 call to inline_update_overall_summary.
34092 2014-02-26 Bin Cheng <bin.cheng@arm.com>
34095 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
34096 and latches only if requested. Fix latch if it is removed.
34097 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
34098 LOOPS_HAVE_PREHEADERS.
34100 2014-02-25 Andrew Pinski <apinski@cavium.com>
34102 * builtins.c (expand_builtin_thread_pointer): Create a new target
34103 when the target is NULL.
34105 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
34107 PR rtl-optimization/60317
34108 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
34109 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
34110 * lra-assigns.c: Include params.h.
34111 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
34112 other reload pseudos considerations.
34114 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34116 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
34117 to use canonical form for nor<mode>3.
34119 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34122 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
34125 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
34127 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
34128 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
34129 (ix86_handle_option): Handle OPT_mprefetchwt1.
34130 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
34131 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
34133 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
34134 OPTION_MASK_ISA_PREFETCHWT1.
34135 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
34136 (PTA_PREFETCHWT1): New.
34137 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
34138 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
34139 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
34140 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
34141 (*prefetch_avx512pf_<mode>_: Change into ...
34142 (*prefetch_prefetchwt1_<mode>: This.
34143 * config/i386/i386.opt (mprefetchwt1): New.
34144 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
34145 (_mm_prefetch): Handle intent to write.
34146 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
34148 2014-02-25 Richard Biener <rguenther@suse.de>
34150 PR middle-end/60291
34151 * emit-rtl.c (mem_attrs_htab): Remove.
34152 (mem_attrs_htab_hash): Likewise.
34153 (mem_attrs_htab_eq): Likewise.
34154 (set_mem_attrs): Always allocate new mem-attrs when something changed.
34155 (init_emit_once): Do not allocate mem_attrs_htab.
34157 2014-02-25 Richard Biener <rguenther@suse.de>
34160 * lto-opts.c (lto_write_options): Output non-explicit conservative
34161 -fwrapv, -fno-trapv and -fno-strict-overflow.
34162 * lto-wrapper.c (merge_and_complain): Handle merging those options.
34163 (run_gcc): And pass them through.
34165 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
34167 * sel-sched.c (calculate_new_fences): New parameter ptime.
34168 Calculate it as a maximum over all fence cycles.
34169 (sel_sched_region_2): Adjust the call to calculate_new_fences.
34170 Print the final schedule timing when sched_verbose.
34172 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
34174 PR rtl-optimization/60292
34175 * sel-sched.c (fill_vec_av_set): Do not reset target availability
34176 bit fot the fence instruction.
34178 2014-02-24 Alangi Derick <alangiderick@gmail.com>
34180 * calls.h: Fix typo in comment.
34182 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
34184 * config/pa/pa.c (pa_output_move_double): Don't valididate when
34185 adjusting offsetable addresses.
34187 2014-02-24 Guozhi Wei <carrot@google.com>
34189 * sparseset.h (sparseset_pop): Fix the wrong index.
34191 2014-02-24 Walter Lee <walt@tilera.com>
34193 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
34194 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
34196 * common/config/tilegx/tilegx-common.c
34197 (TARGET_DEFAULT_TARGET_FLAGS): Define.
34198 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
34199 (LINK_SPEC): Ditto.
34200 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
34201 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
34202 (tilegx_gimplify_va_arg_expr): Handle big endian.
34203 (tilegx_expand_unaligned_load): Ditto.
34204 (tilegx_expand_unaligned_store): Ditto.
34205 (TARGET_RETURN_IN_MSB): New.
34206 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
34207 (TARGET_ENDIAN_DEFAULT): New.
34208 (TARGET_BIG_ENDIAN): Handle big endian.
34209 (BYTES_BIG_ENDIAN): Ditto.
34210 (WORDS_BIG_ENDIAN): Ditto.
34211 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
34212 (ENDIAN_SPEC): New.
34213 (EXTRA_SPECS): New.
34214 * config/tilegx/tilegx.md (extv): Handle big endian.
34216 (insn_st<n>): Ditto.
34217 (insn_st<n>_add<bitsuffix>): Ditto.
34218 (insn_stnt<n>): Ditto.
34219 (insn_stnt<n>_add<bitsuffix>):Ditto.
34220 (vec_interleave_highv8qi): Handle big endian.
34221 (vec_interleave_highv8qi_be): New.
34222 (vec_interleave_highv8qi_le): New.
34223 (insn_v1int_h): Handle big endian.
34224 (vec_interleave_lowv8qi): Handle big endian.
34225 (vec_interleave_lowv8qi_be): New.
34226 (vec_interleave_lowv8qi_le): New.
34227 (insn_v1int_l): Handle big endian.
34228 (vec_interleave_highv4hi): Handle big endian.
34229 (vec_interleave_highv4hi_be): New.
34230 (vec_interleave_highv4hi_le): New.
34231 (insn_v2int_h): Handle big endian.
34232 (vec_interleave_lowv4hi): Handle big endian.
34233 (vec_interleave_lowv4hi_be): New.
34234 (vec_interleave_lowv4hi_le): New.
34235 (insn_v2int_l): Handle big endian.
34236 (vec_interleave_highv2si): Handle big endian.
34237 (vec_interleave_highv2si_be): New.
34238 (vec_interleave_highv2si_le): New.
34239 (insn_v4int_h): Handle big endian.
34240 (vec_interleave_lowv2si): Handle big endian.
34241 (vec_interleave_lowv2si_be): New.
34242 (vec_interleave_lowv2si_le): New.
34243 (insn_v4int_l): Handle big endian.
34244 * config/tilegx/tilegx.opt (mbig-endian): New option.
34245 (mlittle-endian): New option.
34246 * doc/install.texi: Document tilegxbe-linux.
34247 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
34249 2014-02-24 Martin Jambor <mjambor@suse.cz>
34252 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
34253 there are no parameter descriptors.
34255 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
34257 PR rtl-optimization/60268
34258 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
34259 initialization to ...
34260 (sched_rgn_init): ... here.
34261 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
34263 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
34265 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
34268 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
34270 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
34273 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
34275 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
34276 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
34278 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
34280 * config/microblaze/predicates.md: Add cmp_op predicate.
34281 * config/microblaze/microblaze.md: Add branch_compare instruction
34282 which uses cmp_op predicate and emits cmp insn before branch.
34283 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
34284 to microblaze_expand_conditional_branch and consolidate logic.
34285 (microblaze_expand_conditional_branch): emit branch_compare
34286 insn instead of handling cmp op separate from branch insn.
34288 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34290 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
34293 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34295 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
34296 define_insn with define_expand and new define_insn
34297 *altivec_lve<VI_char>x_internal.
34298 (altivec_stve<VI_char>x): Replace define_insn with define_expand
34299 and new define_insn *altivec_stve<VI_char>x_internal.
34300 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
34302 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
34304 (altivec_expand_stvex_be): New function.
34306 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
34308 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
34309 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
34310 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
34311 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
34313 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
34316 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
34317 instead of emit_move_insn.
34319 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34321 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
34322 vspltw with vsldoi.
34323 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
34324 gen_altivec_vsumsws.
34326 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34328 * config/rs6000/altivec.md (altivec_lvxl): Rename as
34329 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
34330 (altivec_lvxl_<mode>): New define_expand incorporating
34331 -maltivec=be semantics where needed.
34332 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
34333 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
34334 semantics where needed.
34335 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
34336 (altivec_stvx_<mode>): New define_expand incorporating
34337 -maltivec=be semantics where needed.
34338 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
34339 VM2 iterator instead of V4SI.
34340 (altivec_stvxl_<mode>): New define_expand incorporating
34341 -maltivec=be semantics where needed.
34342 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
34343 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
34344 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
34345 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
34346 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
34347 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
34348 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
34349 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
34350 ALTIVEC_BUILTIN_STVXL.
34351 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
34352 (altivec_expand_stvx_be): Likewise.
34353 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
34354 (altivec_expand_lvx_be): Likewise.
34355 (altivec_expand_stvx_be): Likewise.
34356 (altivec_expand_builtin): Add cases for
34357 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
34358 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
34359 (altivec_init_builtins): Add definitions for
34360 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
34361 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
34363 2014-02-21 Catherine Moore <clm@codesourcery.com>
34365 * doc/invoke.texi (mvirt, mno-virt): Document.
34366 * config/mips/mips.opt (mvirt): New option.
34367 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
34369 2014-02-21 Richard Biener <rguenther@suse.de>
34371 PR tree-optimization/60276
34372 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
34373 (STMT_VINFO_MIN_NEG_DIST): New macro.
34374 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
34375 STMT_VINFO_MIN_NEG_DIST.
34376 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
34377 made for negative dependence distances still hold.
34379 2014-02-21 Richard Biener <rguenther@suse.de>
34381 PR middle-end/60291
34382 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
34383 DECL_INITIAL for globals not in the current function context.
34385 2014-02-21 Jakub Jelinek <jakub@redhat.com>
34387 PR tree-optimization/56490
34388 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
34389 * tree-ssa-uninit.c: Include params.h.
34390 (compute_control_dep_chain): Add num_calls argument, return false
34391 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
34392 num_calls to recursive call.
34393 (find_predicates): Change dep_chain into normal array,
34394 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
34395 variable and adjust compute_control_dep_chain caller.
34396 (find_def_preds): Likewise.
34398 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
34400 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
34401 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
34403 2014-02-21 Nick Clifton <nickc@redhat.com>
34405 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
34406 (pushhi1): Likewise.
34407 (popqi1): Add mode to pre_dec.
34408 (pophi1): Likewise.
34410 2014-02-21 Jakub Jelinek <jakub@redhat.com>
34412 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
34413 mode for mask of V8SFmode permutation.
34415 2014-02-20 Richard Henderson <rth@redhat.com>
34418 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
34419 a new pseudo for OLDVAL.
34421 2014-02-20 Jakub Jelinek <jakub@redhat.com>
34424 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
34425 gen_reg_rtx if d->testing_p.
34426 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
34427 if d->testing_p and we will certainly return true.
34428 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
34431 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
34433 * emit-rtl.c (gen_reg_rtx): Assert that
34434 crtl->emit.regno_pointer_align_length is non-zero.
34436 2014-02-20 Richard Henderson <rth@redhat.com>
34439 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
34440 on failure the store back into EXPECT.
34442 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
34443 Sandra Loosemore <sandra@codesourcery.com>
34445 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
34446 * config/nios2/nios2.c (nios2_function_profiler): Add
34447 -fPIC (flag_pic == 2) support.
34448 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
34449 (nios2_large_offset_p): New function.
34450 (nios2_unspec_reloc_p): Move up position, update to use
34451 nios2_large_offset_p.
34452 (nios2_unspec_address): Remove function.
34453 (nios2_unspec_offset): New function.
34454 (nios2_large_got_address): New function.
34455 (nios2_got_address): Add large offset support.
34456 (nios2_legitimize_tls_address): Update usage of removed and new
34458 (nios2_symbol_binds_local_p): New function.
34459 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
34460 (nios2_legitimize_address): Update to use nios2_large_offset_p.
34461 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
34462 (nios2_print_operand): Merge H/L processing, add hiadj/lo
34463 processing for (const (unspec ...)).
34464 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
34466 2014-02-20 Richard Biener <rguenther@suse.de>
34468 * tree-cfg.c (replace_uses_by): Mark altered BBs before
34469 doing the substitution.
34470 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
34472 2014-02-20 Martin Jambor <mjambor@suse.cz>
34475 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
34476 info when checking whether lattices are bottom.
34478 2014-02-20 Richard Biener <rguenther@suse.de>
34480 PR middle-end/60221
34481 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
34484 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
34487 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
34488 parameter specifying the scaling.
34489 (inline_call): Update.
34490 (want_inline_recursively): Guard division by zero.
34491 (recursive_inlining): Update.
34492 * ipa-inline.h (clone_inlined_nodes): Update.
34494 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
34497 * config/i386/i386.c (classify_argument): Pass structures of size
34498 64 bytes or less in register.
34500 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
34501 Kirill Yukhin <kirill.yukhin@intel.com>
34503 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
34504 (_mm_rcp28_round_ss): Ditto.
34505 (_mm_rsqrt28_round_sd): Ditto.
34506 (_mm_rsqrt28_round_ss): Ditto.
34507 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
34508 (_mm_rcp14_round_ss): Ditto.
34509 (_mm_rsqrt14_round_sd): Ditto.
34510 (_mm_rsqrt14_round_ss): Ditto.
34511 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
34512 the first input operand, get rid of match_dup.
34513 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
34515 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
34517 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
34518 operand as the first input operand, set type attribute.
34519 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
34520 Set type attribute.
34521 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
34522 operand as the first input operand, set type attribute.
34524 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34526 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
34529 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
34532 * config/i386/i386.c (construct_container): Remove TFmode check
34533 for X86_64_INTEGER_CLASS.
34535 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
34538 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
34539 only when -Wpsabi is enabled.
34541 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
34544 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
34545 passing arrays in registers are the same as for structs, so remove the
34546 special case for them.
34548 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
34550 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
34551 destination type, extract only the valid bits if the source type is not
34552 integral and has a different mode.
34554 2014-02-19 Richard Biener <rguenther@suse.de>
34557 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
34560 2014-02-19 Richard Biener <rguenther@suse.de>
34563 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
34564 (ipa_modify_call_arguments): Emit an argument load explicitely and
34565 preserve virtual SSA form there and for the replacement call.
34566 Do not update SSA form nor free dominance info.
34568 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
34570 * ipa.c (function_and_variable_visibility): Also clear WEAK
34571 flag when disolving COMDAT_GROUP.
34573 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
34575 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
34576 * ipa-prop.c (ipa_set_jf_known_type): Return early when
34577 not devirtualizing.
34578 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
34579 do more sanity checks.
34580 (detect_type_change): Return true when giving up early.
34581 (compute_complex_assign_jump_func): Fix type parameter of
34582 ipa_set_ancestor_jf.
34583 (compute_complex_ancestor_jump_func): Likewise.
34584 (update_jump_functions_after_inlining): Fix updating of
34586 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
34588 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
34590 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
34591 inline clones when edge disappears.
34593 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
34596 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
34597 Split 64-bit moves into 2 patterns. Do not allow the use of
34598 direct move for TDmode in little endian, since the decimal value
34599 has little endian bytes within a word, but the 64-bit pieces are
34600 ordered in a big endian fashion, and normal subreg's of TDmode are
34602 (mov<mode>_64bit_dm): Likewise.
34603 (movtd_64bit_nodm): Likewise.
34605 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
34607 PR tree-optimization/60174
34608 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
34609 statement of an SSA_NAME that occurs in an abnormal PHI node.
34611 2014-02-18 Jakub Jelinek <jakub@redhat.com>
34614 * final.c (SEEN_BB): Remove.
34615 (SEEN_NOTE, SEEN_EMITTED): Renumber.
34616 (final_scan_insn): Don't force_source_line on second
34617 NOTE_INSN_BASIC_BLOCK.
34619 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
34622 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
34623 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
34624 (type_natural_mode): Warn ABI change when %zmm register is not
34625 available for AVX512F vector value passing.
34627 2014-02-18 Kai Tietz <ktietz@redhat.com>
34630 * config/i386/i386.c (ix86_expand_prologue): Use value in
34631 rax register as displacement when restoring %r10 or %rax.
34632 Fix wrong offset when restoring both registers.
34634 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
34636 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
34637 assertion with conditional return.
34639 2014-02-18 Jakub Jelinek <jakub@redhat.com>
34640 Uros Bizjak <ubizjak@gmail.com>
34643 * config/i386/driver-i386.c (host_detect_local_cpu): If
34644 YMM state is not saved by the OS, also clear has_f16c. Move
34645 CPUID 0x80000001 handling before YMM state saving checking.
34647 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
34649 PR rtl-optimization/58960
34650 * haifa-sched.c (alloc_global_sched_pressure_data): New,
34651 factored out from ...
34652 (sched_init): ... here.
34653 (free_global_sched_pressure_data): New, factored out from ...
34654 (sched_finish): ... here.
34655 * sched-int.h (free_global_sched_pressure_data): Declare.
34656 * sched-rgn.c (nr_regions_initial): New static global.
34657 (haifa_find_rgns): Initialize it.
34658 (schedule_region): Disable sched-pressure for the newly
34661 2014-02-17 Richard Biener <rguenther@suse.de>
34663 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
34664 release SSA defs of pattern stmts.
34666 2014-02-17 Richard Biener <rguenther@suse.de>
34668 * tree-inline.c (expand_call_inline): Release the virtual
34669 operand defined by the call we are about to inline.
34671 2014-02-17 Richard Biener <rguenther@suse.de>
34673 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
34675 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
34676 Ilya Tocar <ilya.tocar@intel.com>
34678 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
34679 arguments order in builtin.
34680 (_mm512_permutexvar_epi64): Ditto.
34681 (_mm512_mask_permutexvar_epi64): Ditto
34682 (_mm512_maskz_permutexvar_epi32): Ditto
34683 (_mm512_permutexvar_epi32): Ditto
34684 (_mm512_mask_permutexvar_epi32): Ditto
34686 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34688 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
34689 (p8_vmrgow): Likewise.
34691 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34693 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
34696 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
34699 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
34700 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
34701 into 64-bit and 32-bit moves. On 64-bit moves, add support for
34702 using direct move instructions on ISA 2.07. Also adjust
34703 instruction length for 64-bit.
34704 (mov<mode>_64bit, TFmode/TDmode): Likewise.
34705 (mov<mode>_32bit, TFmode/TDmode): Likewise.
34707 2014-02-15 Alan Modra <amodra@gmail.com>
34711 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
34712 find_replacement on parts of insn rtl that might be reloaded.
34714 2014-02-15 Richard Biener <rguenther@suse.de>
34716 PR tree-optimization/60183
34717 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
34718 (tree_ssa_phiprop): Calculate and free post-dominators.
34720 2014-02-14 Jeff Law <law@redhat.com>
34722 PR rtl-optimization/60131
34723 * ree.c (get_extended_src_reg): New function.
34724 (combine_reaching_defs): Use it rather than assuming location of REG.
34725 (find_and_remove_re): Verify first operand of extension is
34726 a REG before adding the insns to the copy list.
34728 2014-02-14 Roland McGrath <mcgrathr@google.com>
34730 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
34731 * configure: Regenerated.
34732 * config.in: Regenerated.
34733 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
34734 instead of ASM_SHORT.
34736 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
34737 Richard Earnshaw <rearnsha@arm.com>
34739 PR rtl-optimization/59535
34740 * lra-constraints.c (process_alt_operands): Encourage alternative
34741 when unassigned pseudo class is superset of the alternative class.
34742 (inherit_reload_reg): Don't inherit when optimizing for code size.
34743 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
34744 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
34745 modes not less than 4 for Thumb1.
34747 2014-02-14 Kyle McMartin <kyle@redhat.com>
34750 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
34752 2014-02-14 Richard Biener <rguenther@suse.de>
34754 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
34755 (get_frame_arg): Drop the assert with langhook types_compatible_p.
34756 Do not strip INDIRECT_REFs.
34758 2014-02-14 Richard Biener <rguenther@suse.de>
34761 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
34762 DECL_FUNCTION_SPECIFIC_TARGET.
34763 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
34764 * tree-streamer-out.c (pack_ts_target_option): Remove.
34765 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
34766 (write_ts_function_decl_tree_pointers): Do not stream
34767 DECL_FUNCTION_SPECIFIC_TARGET.
34768 * tree-streamer-in.c (unpack_ts_target_option): Remove.
34769 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
34770 (lto_input_ts_function_decl_tree_pointers): Do not stream
34771 DECL_FUNCTION_SPECIFIC_TARGET.
34773 2014-02-14 Jakub Jelinek <jakub@redhat.com>
34775 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
34776 (get_initial_def_for_induction, vectorizable_induction): Ignore
34777 debug stmts when looking for exit_phi.
34778 (vectorizable_live_operation): Fix up condition.
34780 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
34782 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
34783 nreverse() because it changes the content of original tree list.
34785 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
34787 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
34788 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
34790 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
34792 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
34793 GNU coding standards.
34795 2014-02-13 Jakub Jelinek <jakub@redhat.com>
34798 * dwarf2out.c (gen_subprogram_die): Don't call
34799 add_calling_convention_attribute if subr_die is old_die.
34801 2014-02-13 Sharad Singhai <singhai@google.com>
34803 * doc/optinfo.texi: Fix order of nodes.
34805 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
34807 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
34808 operands[2], not operands[3].
34810 2014-02-13 Richard Biener <rguenther@suse.de>
34813 * doc/install.texi (ISL): Update recommended version to 0.12.2,
34814 mention the possibility of an in-tree build.
34815 (CLooG): Update recommended version to 0.18.1, mention the
34816 possibility of an in-tree build and clarify that the ISL
34817 bundled with CLooG does not work.
34819 2014-02-13 Jakub Jelinek <jakub@redhat.com>
34822 * expr.c (compress_float_constant): If x is a hard register,
34823 extend into a pseudo and then move to x.
34825 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
34827 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
34828 caused by bad second argument to warning_at() with -mhotpatch and
34829 nested functions (e.g. with gfortran).
34831 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
34833 * opts.c (option_name): Remove "enabled by default" rider.
34835 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
34837 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
34839 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
34840 Uros Bizjak <ubizjak@gmail.com>
34843 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
34844 * configure: Regenerated.
34846 2014-02-12 Richard Biener <rguenther@suse.de>
34848 * vec.c (vec_prefix::calculate_allocation): Move as
34849 inline variant to vec.h.
34850 (vec_prefix::calculate_allocation_1): New out-of-line version.
34851 * vec.h (vec_prefix::calculate_allocation_1): Declare.
34852 (vec_prefix::m_has_auto_buf): Rename to ...
34853 (vec_prefix::m_using_auto_storage): ... this.
34854 (vec_prefix::calculate_allocation): Inline the easy cases
34855 and dispatch to calculate_allocation_1 which doesn't need the
34857 (va_heap::reserve): Use gcc_checking_assert.
34858 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
34859 m_using_auto_storage.
34860 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
34862 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
34863 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
34864 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
34866 2014-02-12 Richard Biener <rguenther@suse.de>
34868 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
34869 when we found a dependence.
34871 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
34873 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
34875 (maybe_fold_stmt): ... into this new function.
34876 * omp-low.c (lower_omp): Update comment.
34878 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
34881 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
34884 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
34886 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
34887 identifiers in comments.
34888 (cortexa53_extra_costs): Likewise.
34889 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
34890 (cortexa7_extra_costs): Likewise.
34891 (cortexa12_extra_costs): Likewise.
34892 (cortexa15_extra_costs): Likewise.
34893 (v7m_extra_costs): Likewise.
34895 2014-02-12 Richard Biener <rguenther@suse.de>
34897 PR middle-end/60092
34898 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
34899 of posix_memalign being successful.
34900 (lower_stmt): Restrict lowering of posix_memalign to when
34901 -ftree-bit-ccp is enabled.
34903 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
34905 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
34907 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
34909 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
34911 PR rtl-optimization/60116
34912 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
34913 other_insn once the combination has been validated.
34915 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
34918 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
34920 * ipa-devirt.c: Include demangle.h
34921 (odr_violation_reported): New static variable.
34922 (add_type_duplicate): Update odr_violations.
34923 (maybe_record_node): Add completep parameter; update it.
34924 (record_target_from_binfo): Add COMPLETEP parameter;
34925 update it as needed.
34926 (possible_polymorphic_call_targets_1): Likewise.
34927 (struct polymorphic_call_target_d): Add nonconstruction_targets;
34928 rename FINAL to COMPLETE.
34929 (record_targets_from_bases): Sanity check we found the binfo;
34930 fix COMPLETEP updating.
34931 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
34932 parameter, fix computing of COMPLETEP.
34933 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
34934 at LTO time do demangling.
34935 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
34936 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
34938 (gimple_get_virt_method_for_binfo): Likewise.
34939 * gimple-fold.h (gimple_get_virt_method_for_binfo,
34940 gimple_get_virt_method_for_vtable): Update prototypes.
34942 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
34945 * genautomata.c (add_presence_absence): Fix typo with
34946 {final_}presence_list.
34948 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
34951 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
34952 for VSX/Altivec vectors that land in GPR registers.
34954 2014-02-11 Richard Henderson <rth@redhat.com>
34955 Jakub Jelinek <jakub@redhat.com>
34958 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
34959 around drhs if type conversion to lacc->type is not useless.
34961 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34963 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
34965 (cortex-a57.cortex-a53): Likewise.
34966 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
34968 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34970 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
34973 2014-02-11 Renlin Li <Renlin.Li@arm.com>
34975 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
34976 add_options_for_arm_vfp3.
34978 2014-02-11 Jeff Law <law@redhat.com>
34980 PR middle-end/54041
34981 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
34982 object with an undesirable mode.
34984 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34987 * config/i386/sol2-9.h: New file.
34988 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
34989 *-*-solaris2.9*): Use it.
34991 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
34993 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
34994 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
34996 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
34998 * config/microblaze/microblaze.c: Extend mcpu version format
35000 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
35002 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
35004 2014-02-10 Richard Henderson <rth@redhat.com>
35007 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
35008 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
35009 ms-abi vs -mno-accumulate-outgoing-args.
35010 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
35011 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
35014 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
35016 PR middle-end/60080
35017 * cfgexpand.c (expand_asm_operands): Attach source location to
35018 ASM_INPUT rtx objects.
35019 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
35021 2014-02-10 Nick Clifton <nickc@redhat.com>
35023 * config/mn10300/mn10300.c (popcount): New function.
35024 (mn10300_expand_prologue): Include saved registers in stack usage
35027 2014-02-10 Jeff Law <law@redhat.com>
35029 PR middle-end/52306
35030 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
35031 when changing the SET_DEST of a prior insn to avoid an input reload.
35033 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
35035 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
35036 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
35037 -mcall-openbsd, or -mcall-linux.
35038 (CC1_ENDIAN_BIG_SPEC): Remove.
35039 (CC1_ENDIAN_LITTLE_SPEC): Remove.
35040 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
35041 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
35042 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
35043 and %cc1_endian_default.
35044 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
35046 2014-02-10 Richard Biener <rguenther@suse.de>
35048 PR tree-optimization/60115
35049 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
35050 MEM_REF handling. Properly verify that the accesses are not
35051 out of the objects bound.
35053 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35055 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
35058 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
35060 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
35061 proper constants and fix formatting.
35062 (possible_polymorphic_call_targets): Fix formatting.
35064 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
35065 Ilya Tocar <ilya.tocar@intel.com>
35067 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
35068 (_mm512_loadu_epi32): Renamed into...
35069 (_mm512_loadu_si512): This.
35070 (_mm512_storeu_epi32): Renamed into...
35071 (_mm512_storeu_si512): This.
35072 (_mm512_maskz_ceil_ps): Removed.
35073 (_mm512_maskz_ceil_pd): Ditto.
35074 (_mm512_maskz_floor_ps): Ditto.
35075 (_mm512_maskz_floor_pd): Ditto.
35076 (_mm512_floor_round_ps): Ditto.
35077 (_mm512_floor_round_pd): Ditto.
35078 (_mm512_ceil_round_ps): Ditto.
35079 (_mm512_ceil_round_pd): Ditto.
35080 (_mm512_mask_floor_round_ps): Ditto.
35081 (_mm512_mask_floor_round_pd): Ditto.
35082 (_mm512_mask_ceil_round_ps): Ditto.
35083 (_mm512_mask_ceil_round_pd): Ditto.
35084 (_mm512_maskz_floor_round_ps): Ditto.
35085 (_mm512_maskz_floor_round_pd): Ditto.
35086 (_mm512_maskz_ceil_round_ps): Ditto.
35087 (_mm512_maskz_ceil_round_pd): Ditto.
35088 (_mm512_expand_pd): Ditto.
35089 (_mm512_expand_ps): Ditto.
35090 * config/i386/i386.c (ix86_builtins): Remove
35091 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
35092 (bdesc_args): Ditto.
35093 * config/i386/predicates.md (const1256_operand): New.
35094 (const_1_to_2_operand): Ditto.
35095 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
35096 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
35097 (*avx512pf_gatherpf<mode>sf): Ditto.
35098 (avx512pf_gatherpf<mode>df): Ditto.
35099 (*avx512pf_gatherpf<mode>df_mask): Ditto.
35100 (*avx512pf_gatherpf<mode>df): Ditto.
35101 (avx512pf_scatterpf<mode>sf): Ditto.
35102 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
35103 (*avx512pf_scatterpf<mode>sf): Ditto.
35104 (avx512pf_scatterpf<mode>df): Ditto.
35105 (*avx512pf_scatterpf<mode>df_mask): Ditto.
35106 (*avx512pf_scatterpf<mode>df): Ditto.
35107 (avx512f_expand<mode>): Removed.
35108 (<shift_insn><mode>3<mask_name>): Change predicate type.
35110 2014-02-08 Jakub Jelinek <jakub@redhat.com>
35112 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
35113 not at the end of datarefs vector use ordered_remove to avoid
35114 reordering datarefs vector.
35117 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
35118 mark local addressable non-static vars as GOVD_PRIVATE
35119 instead of GOVD_LOCAL.
35120 * omp-low.c (lower_omp_for): Move gimple_bind_vars
35121 and BLOCK_VARS of gimple_bind_block to new_stmt rather
35124 PR middle-end/60092
35125 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
35126 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
35127 assume_aligned or alloc_align attributes.
35128 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
35129 arguments. Handle also assume_aligned and alloc_align attributes.
35130 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
35131 calls to functions with assume_aligned or alloc_align attributes.
35132 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
35134 2014-02-08 Terry Guo <terry.guo@arm.com>
35136 * doc/invoke.texi: Document ARM -march=armv7e-m.
35138 2014-02-08 Jakub Jelinek <jakub@redhat.com>
35140 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
35141 flag on __cilkrts_rethrow builtin.
35144 * ipa-cp.c (determine_versionability): Fail at -O0
35145 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
35146 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
35149 2014-02-04 Jakub Jelinek <jakub@redhat.com>
35152 * tree-inline.c (copy_forbidden): Fail for
35153 __attribute__((optimize (0))) functions.
35155 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
35157 * varpool.c: Include pointer-set.h.
35158 (varpool_remove_unreferenced_decls): Variables in other partitions
35159 will not be output; be however careful to not lose information
35160 about partitioning.
35162 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
35164 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
35165 lookup in the vtable constructor.
35167 2014-02-07 Jeff Law <law@redhat.com>
35170 * config/m68k/m68k.md (ashldi_extsi): Turn into a
35171 define_insn_and_split.
35173 * ipa-inline.c (inline_small_functions): Fix typos.
35175 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35177 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
35178 (s390_can_use_return_insn): Declare.
35179 * config/s390/s390.h (EPILOGUE_USES): Define.
35180 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
35182 (s390_chunkify_start): Handle return JUMP_LABELs.
35183 (s390_early_mach): Emit a main_pool instruction on the entry edge.
35184 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
35185 (s390_can_use_return_insn): New functions.
35186 (s390_fix_long_loop_prediction): Handle conditional returns.
35187 (TARGET_SET_UP_BY_PROLOGUE): Define.
35188 * config/s390/s390.md (ANY_RETURN): New code iterator.
35189 (*creturn, *csimple_return, return, simple_return): New patterns.
35191 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35193 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
35194 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
35195 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
35196 REG_CFA_RESTORE list when deciding not to restore a register.
35198 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35200 * config/s390/s390.c: Include tree-pass.h and context.h.
35201 (s390_early_mach): New function, split out from...
35202 (s390_emit_prologue): ...here.
35203 (pass_data_s390_early_mach): New pass structure.
35204 (pass_s390_early_mach): New class.
35205 (s390_option_override): Create and register early_mach pass.
35206 Move to end of file.
35208 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
35210 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
35211 to match for the exit block.
35213 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35215 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
35216 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
35217 Reject misaligned operands.
35219 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35221 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
35223 2014-02-07 Richard Biener <rguenther@suse.de>
35225 PR middle-end/60092
35226 * gimple-low.c (lower_builtin_posix_memalign): New function.
35227 (lower_stmt): Call it to lower posix_memalign in a way
35228 to make alignment info accessible.
35230 2014-02-07 Jakub Jelinek <jakub@redhat.com>
35233 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
35234 __builtin_setjmp_receiver.
35236 2014-02-07 Richard Biener <rguenther@suse.de>
35238 PR middle-end/60092
35239 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
35240 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
35241 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
35242 Handle BUILT_IN_POSIX_MEMALIGN.
35243 (find_func_clobbers): Likewise.
35244 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
35245 (call_may_clobber_ref_p_1): Likewise.
35247 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
35250 * ipa-devirt.c (record_target_from_binfo): Remove overactive
35253 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
35256 * lto-cgraph.c (lto_output_node): Use
35257 symtab_get_symbol_partitioning_class.
35258 (lto_output_varpool_node): likewise.
35259 (symtab_get_symbol_partitioning_class): Move here from
35260 lto/lto-partition.c
35261 * cgraph.h (symbol_partitioning_class): Likewise.
35262 (symtab_get_symbol_partitioning_class): Declare.
35264 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
35266 * ggc.h (ggc_internal_cleared_alloc): New macro.
35267 * vec.h (vec_safe_copy): Handle memory stats.
35268 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
35269 * target-globals.c (save_target_globals): Likewise.
35271 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
35274 * expr.c (emit_move_resolve_push): Export; be bit more selective
35275 on when to clear alias set.
35276 * expr.h (emit_move_resolve_push): Declare.
35277 * function.h (struct function): Add tail_call_marked.
35278 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
35279 * config/i386/i386-protos.h (ix86_expand_push): Remove.
35280 * config/i386/i386.md (TImode move expander): De not call
35282 (FP push expanders): Preserve memory attributes.
35283 * config/i386/sse.md (push<mode>1): Remove.
35284 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
35285 (ix86_expand_push): Remove.
35286 * config/i386/mmx.md (push<mode>1): Remove.
35288 2014-02-06 Jakub Jelinek <jakub@redhat.com>
35290 PR rtl-optimization/60030
35291 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
35292 lopart with paradoxical subreg before shifting it up by hprec.
35294 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35296 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
35297 Remove extra newline at end of file.
35298 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
35299 (arm_issue_rate): Handle cortexa57.
35300 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
35301 (cortex-a57.cortex-a53): Likewise.
35303 2014-02-06 Jakub Jelinek <jakub@redhat.com>
35306 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
35307 don't record in REG_FRAME_RELATED_EXPR registers not set in that
35309 (arm_expand_prologue): Adjust all callers.
35310 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
35311 info, registers also at the lowest numbered registers side. Use
35312 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
35316 * var-tracking.c (adjust_mems): Before adding a SET to
35317 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
35319 2014-02-06 Alan Modra <amodra@gmail.com>
35322 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
35323 change SDmode to DDmode when lra_in_progress.
35325 2014-02-06 Jakub Jelinek <jakub@redhat.com>
35327 PR middle-end/59150
35328 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
35329 free_data_ref on the dr first, and before goto again also set dr
35330 to the next dr. For simd_lane_access, free old datarefs[i] before
35331 overwriting it. For get_vectype_for_scalar_type failure, don't
35332 free_data_ref if simd_lane_access.
35334 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
35337 * tree.h (opts_for_fn): New inline function.
35338 (opt_for_fn): Define.
35339 * config/i386/i386.c (ix86_function_regparm): Use
35340 opt_for_fn (decl, optimize) instead of optimize.
35342 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
35344 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
35345 for SYMBOL_REF in large memory model.
35347 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35349 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
35350 and crypto support.
35351 (cortex-a57): Likewise.
35352 (cortex-a57.cortex-a53): Likewise.
35354 2014-02-06 Yury Gribov <y.gribov@samsung.com>
35355 Kugan Vivekanandarajah <kuganv@linaro.org>
35357 * config/arm/arm.c (arm_vector_alignment_reachable): Check
35359 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
35361 2014-02-06 Richard Biener <rguenther@suse.de>
35363 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
35364 set_loop_copy and initialize_original_copy_tables.
35366 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
35368 * config/aarch64/aarch64-simd.md
35369 (aarch64_ashr_simddi): Change QI to SI.
35371 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
35372 Jakub Jelinek <jakub@redhat.com>
35374 PR middle-end/60013
35375 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
35378 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35380 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
35381 CODE_FOR_altivec_vpku[hw]um to
35382 CODE_FOR_altivec_vpku[hw]um_direct.
35383 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
35384 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
35385 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
35386 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
35388 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35390 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
35391 generation for -maltivec=be.
35392 (altivec_vsumsws): Simplify redundant test.
35394 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35396 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
35397 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
35398 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
35399 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
35400 gen_altivec_vpkuwum.
35401 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
35403 (altivec_vpks<VI_char>ss): Likewise.
35404 (altivec_vpks<VI_char>us): Likewise.
35405 (altivec_vpku<VI_char>us): Likewise.
35406 (altivec_vpku<VI_char>um): Likewise.
35407 (altivec_vpku<VI_char>um_direct): New (copy of
35408 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
35410 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
35411 target is little endian and -maltivec=be is not specified.
35412 (*altivec_vupkhs<VU_char>_direct): New (copy of
35413 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
35414 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
35415 target is little endian and -maltivec=be is not specified.
35416 (*altivec_vupkls<VU_char>_direct): New (copy of
35417 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
35418 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
35419 little endian and -maltivec=be is not specified.
35420 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
35421 little endian and -maltivec=be is not specified.
35423 2014-02-05 Richard Henderson <rth@redhat.com>
35426 * combine-stack-adj.c: Revert r206943.
35427 * sched-int.h (struct deps_desc): Add last_args_size.
35428 * sched-deps.c (init_deps): Initialize it.
35429 (sched_analyze_insn): Add OUTPUT dependencies between insns that
35430 contain REG_ARGS_SIZE notes.
35432 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
35434 * lto-cgraph.c (asm_nodes_output): Make global.
35435 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
35436 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
35437 (driver_handle_option): Handle OPT_fwpa.
35439 2014-02-05 Jakub Jelinek <jakub@redhat.com>
35442 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
35443 a comment typo and formatting issue. If odr_hash hasn't been
35444 created, return vNULL and set *completep to false.
35446 PR middle-end/57499
35447 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
35448 bb with no successors.
35450 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
35453 * doc/invoke.texi (-march): Clarify documentation for ARM.
35454 (-mtune): Likewise.
35457 2014-02-05 Richard Biener <rguenther@suse.de>
35459 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
35460 when not vectorizing because of too many alias checks.
35461 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
35462 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
35464 2014-02-05 Nick Clifton <nickc@redhat.com>
35466 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
35467 accept extended registers in any mode when compiling for the MN10300.
35469 2014-02-05 Yury Gribov <y.gribov@samsung.com>
35471 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
35472 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
35473 sanitization attributes.
35474 (can_inline_edge_p): Likewise.
35475 (sanitize_attrs_match_for_inline_p): New function.
35477 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
35479 * ipa-prop.c (detect_type_change): Shor circuit testing of
35480 type changes on THIS pointer.
35482 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
35485 * config/pa/pa.c (legitimize_tls_address): Return original address
35486 if not passed a SYMBOL_REF rtx.
35487 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
35489 (pa_emit_move_sequence): Simplify TLS source operands.
35490 (pa_legitimate_constant_p): Reject all TLS constants.
35491 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
35492 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
35494 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
35496 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
35497 groups when we know they are controlled by LTO.
35498 * varasm.c (default_binds_local_p_1): If object is in other partition,
35499 it will be resolved locally.
35501 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
35503 * config/host-linux.c (linux_gt_pch_use_address): Don't
35504 use SSIZE_MAX because it is not always defined.
35506 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
35509 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
35510 threshold for pseudo splitting.
35511 (update_ebb_live_info): Process call argument hard registers and
35512 hard registers from insn definition too.
35513 (max_small_class_regs_num): New constant.
35514 (inherit_in_ebb): Update live hard regs through EBBs. Update
35515 reloads_num only for small register classes. Don't split for
35518 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
35521 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
35524 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
35526 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
35527 visibility is safe.
35529 2014-02-04 Marek Polacek <polacek@redhat.com>
35531 * gdbinit.in (pel): Define.
35533 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
35535 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
35538 2014-02-04 Richard Biener <rguenther@suse.de>
35541 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
35542 in function context local.
35543 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
35544 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
35545 similar to LTO_imported_decl_ref.
35547 2014-02-04 Jakub Jelinek <jakub@redhat.com>
35549 PR tree-optimization/60002
35550 * cgraphclones.c (build_function_decl_skip_args): Clear
35551 DECL_LANG_SPECIFIC.
35553 PR tree-optimization/60023
35554 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
35555 false to gsi_replace.
35556 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
35557 has been in some EH region and vec_stmt could throw, add
35558 vec_stmt into the same EH region.
35559 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
35560 has no lhs, ignore it.
35561 * internal-fn.c (expand_MASK_LOAD): Likewise.
35564 * tree-inline.c (copy_forbidden): Fail for
35565 __attribute__((optimize (0))) functions.
35568 * omp-low.c (simd_clone_struct_copy): If from->inbranch
35569 is set, copy one less argument.
35570 (expand_simd_clones): Don't subtract clone_info->inbranch
35571 from simd_clone_struct_alloc argument.
35573 PR rtl-optimization/57915
35574 * recog.c (simplify_while_replacing): If all unary/binary/relational
35575 operation arguments are constant, attempt to simplify those.
35577 PR middle-end/59261
35578 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
35579 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
35581 2014-02-04 Richard Biener <rguenther@suse.de>
35583 PR tree-optimization/60012
35584 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
35585 TBAA disambiguation to all DDRs.
35587 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35590 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
35591 (LINK_SPEC): Use it for -shared, -shared-libgcc.
35593 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
35596 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
35598 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
35600 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
35601 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
35603 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
35606 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
35607 to figure out targets of polymorphic calls with known decl.
35608 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
35609 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
35610 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
35611 (get_polymorphic_call_info): ... here.
35612 (get_polymorphic_call_info_from_invariant): New function.
35614 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
35616 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
35617 lookup via vtable pointer; check for type consistency
35618 and turn inconsitent facts into UNREACHABLE.
35619 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
35620 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
35621 type inconsistent querries; return UNREACHABLE instead.
35623 2014-02-03 Richard Henderson <rth@twiddle.net>
35626 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
35627 already processed this node.
35628 (normalize_one_pred_1): Pass along mark_set.
35629 (normalize_one_pred): Create and destroy a pointer_set_t.
35630 (normalize_one_pred_chain): Likewise.
35632 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
35634 PR gcov-profile/58602
35635 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
35637 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
35640 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
35641 -fno-devirtualize; try to devirtualize by the knowledge of
35642 virtual table pointer given by aggregate propagation.
35643 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
35644 (ipa_print_node_jump_functions): Dump also offset that
35645 is relevant for polymorphic calls.
35646 (determine_known_aggregate_parts): Add arg_type parameter; use it
35647 instead of determining the type from pointer type.
35648 (ipa_compute_jump_functions_for_edge): Update call of
35649 determine_known_aggregate_parts.
35650 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
35651 (gimple_get_virt_method_for_binfo): ... here; simplify using
35652 vtable_pointer_value_to_vtable.
35653 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
35654 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
35655 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
35656 (vtable_pointer_value_to_vtable): Break out from ...; handle also
35658 (vtable_pointer_value_to_binfo): ... here.
35659 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
35661 2014-02-03 Teresa Johnson <tejohnson@google.com>
35663 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
35664 redef of outer loop index variable.
35666 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
35670 * doc/extend.texi (Function Attributes): Typo.
35672 2014-02-03 Cong Hou <congh@google.com>
35674 PR tree-optimization/60000
35675 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
35676 if the vectorized statement is a store. A store statement can only
35677 appear at the end of pattern statements.
35679 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
35681 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
35682 (ix86_option_override_internal): Default long double to 64-bit for
35683 32-bit Bionic and to 128-bit for 64-bit Bionic.
35685 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
35686 TARGET_LONG_DOUBLE_128 is true.
35687 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
35689 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
35690 (mlong-double-64): Negate -mlong-double-128.
35691 (mlong-double-128): New option.
35693 * config/i386/i386-c.c (ix86_target_macros): Define
35694 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
35696 * doc/invoke.texi: Document -mlong-double-128.
35698 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
35700 PR rtl-optimization/60024
35701 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
35703 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
35705 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
35707 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
35709 PR rtl-optimization/57662
35710 * sel-sched.c (code_motion_path_driver): Do not mark already not
35711 existing blocks in the visiting bitmap.
35713 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
35715 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
35716 on the insn being emitted.
35718 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
35719 Will Deacon <will.deacon@arm.com>
35721 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
35723 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35725 * config/arm/arm-tables.opt: Regenerate.
35727 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35729 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
35730 for vector types other than V16QImode.
35731 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
35732 define_expand, and call altivec_expand_vec_perm_le when producing
35733 code with little endian element order.
35734 (*altivec_vperm_<mode>_internal): New insn having previous
35735 behavior of altivec_vperm_<mode>.
35736 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
35737 altivec_expand_vec_perm_le when producing code with little endian
35739 (*altivec_vperm_<mode>_uns_internal): New insn having previous
35740 behavior of altivec_vperm_<mode>_uns.
35742 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35744 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
35745 (altivec_vsumsws): Add handling for -maltivec=be with a little
35747 (altivec_vsumsws_direct): New.
35748 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
35749 gen_altivec_vsumsws.
35751 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
35753 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
35754 vtable_pointer_value_to_binfo): New functions.
35755 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
35756 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
35758 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
35760 * config/nios2/nios2.md (load_got_register): Initialize GOT
35761 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
35762 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
35764 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
35766 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
35767 preserverd by passthrough, do not propagate the type.
35769 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
35771 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
35772 (mips_atomic_assign_expand_fenv): New function.
35773 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
35775 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
35777 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
35778 (__builtin_mips_set_fcsr): Likewise.
35779 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
35780 MIPS_USI_FTYPE_VOID.
35781 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
35782 (mips16_expand_set_fcsr): Likewise.
35783 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
35784 (mips16_set_fcsr_stub): Likewise.
35785 (mips16_get_fcsr_one_only_stub): New class.
35786 (mips16_set_fcsr_one_only_stub): Likewise.
35787 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
35788 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
35789 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
35790 (hard_float): New availability predicate.
35791 (mips_builtins): Add get_fcsr and set_fcsr.
35792 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
35793 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
35794 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
35795 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
35796 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
35799 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
35801 * config/mips/mips.c (mips_one_only_stub): New class.
35802 (mips_need_mips16_rdhwr_p): Replace with...
35803 (mips16_rdhwr_stub): ...this new variable.
35804 (mips16_stub_call_address): New function.
35805 (mips16_rdhwr_one_only_stub): New class.
35806 (mips_expand_thread_pointer): Use mips16_stub_call_address.
35807 (mips_output_mips16_rdhwr): Delete.
35808 (mips_finish_stub): New function.
35809 (mips_code_end): Use it to handle rdhwr stubs.
35811 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
35814 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
35815 when calculating size of integer atomic types.
35817 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
35819 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
35821 2014-02-01 Jakub Jelinek <jakub@redhat.com>
35823 PR tree-optimization/60003
35824 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
35825 * profile.c (branch_prob): Use gimple_call_builtin_p
35826 to check for BUILT_IN_SETJMP_RECEIVER.
35827 * tree-inline.c (copy_bb): Call notice_special_calls.
35829 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
35832 * lra-constraints.c (process_alt_operands): Update reload_sum only
35835 2014-01-31 Richard Henderson <rth@redhat.com>
35837 PR middle-end/60004
35838 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
35839 until after else_eh is processed.
35841 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
35843 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
35844 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
35845 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
35846 in smmintrin.h, remove them.
35847 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
35848 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
35849 * config/i386/i386.md (ROUND_SAE): Fix value.
35850 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
35851 (const48_operand): New.
35852 * config/i386/subst.md (round), (round_expand): Use
35853 const_4_or_8_to_11_operand.
35854 (round_saeonly), (round_saeonly_expand): Use const48_operand.
35856 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
35858 * config/i386/constraints.md (Yk): Swap meaning with k.
35859 * config/i386/i386.md (movhi_internal): Change Yk to k.
35860 (movqi_internal): Ditto.
35861 (*k<logic><mode>): Ditto.
35864 (kandn<mode>): Ditto.
35865 (*<code>hi_1): Ditto.
35866 (*<code>qi_1): Ditto.
35867 (kxnor<mode>): Ditto.
35868 (kortestzhi): Ditto.
35869 (kortestchi): Ditto.
35871 (*one_cmplhi2_1): Ditto.
35872 (*one_cmplqi2_1): Ditto.
35873 * config/i386/sse.md (): Change k to Yk.
35874 (avx512f_load<mode>_mask): Ditto.
35875 (avx512f_blendm<mode>): Ditto.
35876 (avx512f_store<mode>_mask): Ditto.
35877 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
35878 (avx512f_storedqu<mode>_mask): Ditto.
35879 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
35881 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
35882 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
35883 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
35884 (avx512f_maskcmp<mode>3): Ditto.
35885 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
35886 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
35887 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
35888 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
35889 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
35890 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
35891 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
35892 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
35893 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
35894 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
35895 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
35896 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
35897 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
35898 (vec_extract_lo_<mode>_maskm): Ditto.
35899 (vec_extract_hi_<mode>_maskm): Ditto.
35900 (avx512f_vternlog<mode>_mask): Ditto.
35901 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
35902 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
35903 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
35904 (avx512f_<code>v8div16qi2_mask): Ditto.
35905 (avx512f_<code>v8div16qi2_mask_store): Ditto.
35906 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
35907 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
35908 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
35909 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
35910 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
35911 (*avx512pf_gatherpf<mode>df_mask): Ditto.
35912 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
35913 (*avx512pf_scatterpf<mode>df_mask): Ditto.
35914 (avx512cd_maskb_vec_dupv8di): Ditto.
35915 (avx512cd_maskw_vec_dupv16si): Ditto.
35916 (avx512f_vpermi2var<mode>3_maskz): Ditto.
35917 (avx512f_vpermi2var<mode>3_mask): Ditto.
35918 (avx512f_vpermi2var<mode>3_mask): Ditto.
35919 (avx512f_vpermt2var<mode>3_maskz): Ditto.
35920 (*avx512f_gathersi<mode>): Ditto.
35921 (*avx512f_gathersi<mode>_2): Ditto.
35922 (*avx512f_gatherdi<mode>): Ditto.
35923 (*avx512f_gatherdi<mode>_2): Ditto.
35924 (*avx512f_scattersi<mode>): Ditto.
35925 (*avx512f_scatterdi<mode>): Ditto.
35926 (avx512f_compress<mode>_mask): Ditto.
35927 (avx512f_compressstore<mode>_mask): Ditto.
35928 (avx512f_expand<mode>_mask): Ditto.
35929 * config/i386/subst.md (mask): Change k to Yk.
35930 (mask_scalar_merge): Ditto.
35933 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
35935 * doc/extend.texi (Vector Extensions): Document ?: in C++.
35937 2014-01-31 Richard Biener <rguenther@suse.de>
35939 PR middle-end/59990
35940 * builtins.c (fold_builtin_memory_op): Make sure to not
35941 use a floating-point mode or a boolean or enumeral type for
35942 the copy operation.
35944 2014-01-30 DJ Delorie <dj@redhat.com>
35946 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
35947 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
35948 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
35949 whenever main() has an epilogue.
35951 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35953 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
35954 unused variable "field".
35955 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
35956 (vsx_mergeh_<mode>): Likewise.
35957 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
35958 (altivec_vmrghh): Likewise.
35959 (altivec_vmrghw): Likewise.
35960 (altivec_vmrglb): Likewise.
35961 (altivec_vmrglh): Likewise.
35962 (altivec_vmrglw): Likewise.
35963 (altivec_vspltb): Add missing uses.
35964 (altivec_vsplth): Likewise.
35965 (altivec_vspltw): Likewise.
35966 (altivec_vspltsf): Likewise.
35968 2014-01-30 Jakub Jelinek <jakub@redhat.com>
35971 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
35972 frame related instructions.
35974 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
35976 PR rtl-optimization/59959
35977 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
35978 any reload of register whose subreg is invalid.
35980 2014-01-30 Jakub Jelinek <jakub@redhat.com>
35982 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
35983 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
35984 Add missing return type - void.
35986 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35988 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
35989 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
35990 remove element index adjustment for endian (now handled in vsx.md
35992 (altivec_expand_vec_perm_const): Use
35993 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
35994 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
35995 (vsx_xxspltw_<mode>): Adjust element index for little endian.
35996 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
35997 define_expand and a new define_insn *altivec_vspltb_internal;
35998 adjust for -maltivec=be on a little endian target.
35999 (altivec_vspltb_direct): New.
36000 (altivec_vsplth): Divide into a define_expand and a new
36001 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
36002 little endian target.
36003 (altivec_vsplth_direct): New.
36004 (altivec_vspltw): Divide into a define_expand and a new
36005 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
36006 little endian target.
36007 (altivec_vspltw_direct): New.
36008 (altivec_vspltsf): Divide into a define_expand and a new
36009 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
36010 a little endian target.
36012 2014-01-30 Richard Biener <rguenther@suse.de>
36014 PR tree-optimization/59993
36015 * tree-ssa-forwprop.c (associate_pointerplus): Check we
36016 can propagate form the earlier stmt and avoid the transform
36017 when the intermediate result is needed.
36019 2014-01-30 Alangi Derick <alangiderick@gmail.com>
36021 * README.Portability: Fix typo.
36023 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
36025 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
36026 comparison_operator with ordered_comparison_operator.
36028 2014-01-30 Nick Clifton <nickc@redhat.com>
36030 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
36031 Rename to mn10300_store_multiple_regs.
36032 * config/mn10300/mn10300.c: Likewise.
36033 * config/mn10300/mn10300.md (store_movm): Fix typo: call
36034 store_multiple_regs.
36035 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
36036 Call mn10300_store_multiple_regs.
36038 2014-01-30 Nick Clifton <nickc@redhat.com>
36039 DJ Delorie <dj@redhat.com>
36041 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
36042 %fp 2 to keep registers after it properly word-aligned.
36043 (rl78_alloc_physical_registers_umul): Handle the case where both
36044 input operands are the same.
36046 2014-01-30 Richard Biener <rguenther@suse.de>
36048 PR tree-optimization/59903
36049 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
36052 2014-01-30 Jason Merrill <jason@redhat.com>
36055 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
36058 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
36060 2014-01-30 Richard Biener <rguenther@suse.de>
36062 PR tree-optimization/59951
36063 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
36065 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
36068 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
36069 SFmode to DFmode case.
36071 2014-01-29 DJ Delorie <dj@redhat.com>
36073 * config/msp430/msp430.opt (-minrt): New.
36074 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
36076 (ENDFILE_SPEC): Likewise.
36078 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
36080 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
36081 (estimate_function_body_sizes): Use it.
36083 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
36086 * dwarf2out.c (is_cxx_auto): New.
36087 (is_base_type): Use it.
36088 (gen_type_die_with_usage): Likewise.
36090 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36092 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
36093 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
36094 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
36095 -maltivec=be with LE targets.
36096 (vsx_mergeh_<mode>): Likewise.
36097 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
36098 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
36099 (altivec_vmrghb): Replace with define_expand and new
36100 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
36101 (altivec_vmrghb_direct): New define_insn.
36102 (altivec_vmrghh): Replace with define_expand and new
36103 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
36104 (altivec_vmrghh_direct): New define_insn.
36105 (altivec_vmrghw): Replace with define_expand and new
36106 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
36107 (altivec_vmrghw_direct): New define_insn.
36108 (*altivec_vmrghsf): Adjust for endianness.
36109 (altivec_vmrglb): Replace with define_expand and new
36110 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
36111 (altivec_vmrglb_direct): New define_insn.
36112 (altivec_vmrglh): Replace with define_expand and new
36113 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
36114 (altivec_vmrglh_direct): New define_insn.
36115 (altivec_vmrglw): Replace with define_expand and new
36116 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
36117 (altivec_vmrglw_direct): New define_insn.
36118 (*altivec_vmrglsf): Adjust for endianness.
36119 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
36120 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
36121 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
36122 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
36123 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
36124 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
36125 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
36126 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
36128 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
36130 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
36131 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
36134 2014-01-29 Richard Biener <rguenther@suse.de>
36136 PR tree-optimization/58742
36137 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
36138 associate_pointerplus_align.
36139 (associate_pointerplus_diff): New function.
36140 (associate_pointerplus): Likewise. Call associate_pointerplus_align
36141 and associate_pointerplus_diff.
36143 2014-01-29 Richard Biener <rguenther@suse.de>
36145 * lto-streamer.h (LTO_major_version): Bump to 3.
36146 (LTO_minor_version): Reset to 0.
36148 2014-01-29 Renlin Li <Renlin.Li@arm.com>
36150 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
36151 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
36152 (arm_file_start): Generate correct asm header for armv7ve.
36153 * config/arm/bpabi.h: Add multilib support for armv7ve.
36154 * config/arm/driver-arm.c: Change the architectures of cortex-a7
36155 and cortex-a15 to armv7ve.
36156 * config/arm/t-aprofile: Add multilib support for armv7ve.
36157 * doc/invoke.texi: Document -march=armv7ve.
36159 2014-01-29 Richard Biener <rguenther@suse.de>
36161 PR tree-optimization/58742
36162 * tree-ssa-forwprop.c (associate_plusminus): Return true
36163 if we changed sth, defer EH cleanup to ...
36164 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
36165 (simplify_mult): New function.
36167 2014-01-29 Jakub Jelinek <jakub@redhat.com>
36169 PR middle-end/59917
36170 PR tree-optimization/59920
36171 * tree.c (build_common_builtin_nodes): Remove
36172 __builtin_setjmp_dispatcher initialization.
36173 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
36174 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
36175 instead of gsi_after_labels + manually skipping debug stmts.
36176 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
36177 ignore bbs with IFN_ABNORMAL_DISPATCHER.
36178 * tree-inline.c (copy_edges_for_bb): Remove
36179 can_make_abnormal_goto argument, instead add abnormal_goto_dest
36180 argument. Ignore computed_goto_p stmts. Don't call
36181 make_abnormal_goto_edges. If a call might need abnormal edges
36182 for non-local gotos, see if it already has an edge to
36183 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
36184 with true argument, don't do anything then, otherwise add
36185 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
36186 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
36188 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
36189 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
36190 (lower_stmt): Don't set data->calls_builtin_setjmp.
36191 (lower_builtin_setjmp): Adjust comment.
36192 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
36193 * tree-cfg.c (found_computed_goto): Remove.
36194 (factor_computed_gotos): Remove.
36195 (make_goto_expr_edges): Return bool, true for computed gotos.
36196 Don't call make_abnormal_goto_edges.
36197 (build_gimple_cfg): Don't set found_computed_goto, don't call
36198 factor_computed_gotos.
36199 (computed_goto_p): No longer static.
36200 (make_blocks): Don't set found_computed_goto.
36201 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
36202 (make_edges): If make_goto_expr_edges returns true, push bb
36203 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
36204 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
36205 vector. Record mapping between bbs and OpenMP regions if there
36206 are any, adjust make_gimple_omp_edges caller. Call
36207 handle_abnormal_edges.
36208 (make_abnormal_goto_edges): Remove.
36209 * tree-cfg.h (make_abnormal_goto_edges): Remove.
36210 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
36211 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
36212 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
36213 * internal-fn.def (ABNORMAL_DISPATCHER): New.
36214 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
36215 filling *region also set *region_idx to (*region)->entry->index.
36218 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
36219 For REGs set ORIGINAL_REGNO.
36221 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
36223 * doc/md.texi: Mention that a target shouldn't implement
36224 vec_widen_(s|u)mul_even/odd pair if it is less efficient
36227 2014-01-29 Jakub Jelinek <jakub@redhat.com>
36229 PR tree-optimization/59594
36230 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
36231 a copy of the datarefs vector rather than the vector itself.
36233 2014-01-28 Jason Merrill <jason@redhat.com>
36236 * dwarf2out.c (auto_die): New static.
36237 (gen_type_die_with_usage): Handle C++1y 'auto'.
36238 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
36241 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
36244 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
36245 (SPEC_X32): Likewise.
36246 (SPEC_64): Likewise.
36247 * config/i386/i386.c (ix86_option_override_internal): Turn off
36248 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
36250 (x86_file_start): Output .code16gcc for TARGET_16BIT.
36251 * config/i386/i386.h (TARGET_16BIT): New macro.
36252 (TARGET_16BIT_P): Likewise.
36253 * config/i386/i386.opt: Add m16.
36254 * doc/invoke.texi: Document -m16.
36256 2014-01-28 Jakub Jelinek <jakub@redhat.com>
36258 PR preprocessor/59935
36259 * input.c (location_get_source_line): Bail out on when line number
36260 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
36262 2014-01-28 Richard Biener <rguenther@suse.de>
36264 PR tree-optimization/58742
36265 * tree-ssa-forwprop.c (associate_plusminus): Handle
36266 pointer subtraction of the form (T)(P + A) - (T)P.
36268 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36270 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
36273 2014-01-28 Richard Biener <rguenther@suse.de>
36276 2014-01-28 Richard Biener <rguenther@suse.de>
36278 PR rtl-optimization/45364
36279 PR rtl-optimization/59890
36280 * var-tracking.c (local_get_addr_clear_given_value): Handle
36281 already cleared slot.
36282 (val_reset): Handle not allocated local_get_addr_cache.
36283 (vt_find_locations): Use post-order on the inverted CFG.
36285 2014-01-28 Richard Biener <rguenther@suse.de>
36287 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
36289 2014-01-28 Richard Biener <rguenther@suse.de>
36291 PR rtl-optimization/45364
36292 PR rtl-optimization/59890
36293 * var-tracking.c (local_get_addr_clear_given_value): Handle
36294 already cleared slot.
36295 (val_reset): Handle not allocated local_get_addr_cache.
36296 (vt_find_locations): Use post-order on the inverted CFG.
36298 2014-01-28 Alan Modra <amodra@gmail.com>
36300 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
36301 * configure.ac <recursive call for build != host>: Define
36302 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
36303 and LD_FOR_BUILD too.
36304 * configure: Regenerate.
36306 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
36308 * config/i386/i386.c (get_builtin_code_for_version): Separate
36309 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
36310 Broadwell from Haswell.
36312 2014-01-27 Steve Ellcey <sellcey@mips.com>
36314 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
36315 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
36316 * config/mips/mips.c (mips_option_override): Change setting
36318 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
36319 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
36320 Change from Mask to Var.
36322 2014-01-27 Jeff Law <law@redhat.com>
36324 * ipa-inline.c (inline_small_functions): Fix typo.
36326 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
36328 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
36329 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
36330 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
36331 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
36332 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
36333 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
36334 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
36335 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
36336 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
36337 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
36338 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
36339 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
36340 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
36341 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
36342 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
36343 (_mm512_storeu_epi64): Ditto.
36344 (_mm512_cmpge_epi32_mask): Ditto.
36345 (_mm512_cmpge_epu32_mask): Ditto.
36346 (_mm512_cmpge_epi64_mask): Ditto.
36347 (_mm512_cmpge_epu64_mask): Ditto.
36348 (_mm512_cmple_epi32_mask): Ditto.
36349 (_mm512_cmple_epu32_mask): Ditto.
36350 (_mm512_cmple_epi64_mask): Ditto.
36351 (_mm512_cmple_epu64_mask): Ditto.
36352 (_mm512_cmplt_epi32_mask): Ditto.
36353 (_mm512_cmplt_epu32_mask): Ditto.
36354 (_mm512_cmplt_epi64_mask): Ditto.
36355 (_mm512_cmplt_epu64_mask): Ditto.
36356 (_mm512_cmpneq_epi32_mask): Ditto.
36357 (_mm512_cmpneq_epu32_mask): Ditto.
36358 (_mm512_cmpneq_epi64_mask): Ditto.
36359 (_mm512_cmpneq_epu64_mask): Ditto.
36360 (_mm512_expand_pd): Ditto.
36361 (_mm512_expand_ps): Ditto.
36362 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
36363 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
36364 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
36365 * config/i386/i386.c (ix86_builtins): Add
36366 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
36367 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
36368 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
36369 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
36370 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
36371 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
36372 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
36373 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
36374 IX86_BUILTIN_PMOVUSQW512_MEM.
36375 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
36376 __builtin_ia32_pmovsqd512mem_mask,
36377 __builtin_ia32_pmovqd512mem_mask,
36378 __builtin_ia32_pmovusqw512mem_mask,
36379 __builtin_ia32_pmovsqw512mem_mask,
36380 __builtin_ia32_pmovqw512mem_mask,
36381 __builtin_ia32_pmovusdw512mem_mask,
36382 __builtin_ia32_pmovsdw512mem_mask,
36383 __builtin_ia32_pmovdw512mem_mask,
36384 __builtin_ia32_pmovqb512mem_mask,
36385 __builtin_ia32_pmovusqb512mem_mask,
36386 __builtin_ia32_pmovsqb512mem_mask,
36387 __builtin_ia32_pmovusdb512mem_mask,
36388 __builtin_ia32_pmovsdb512mem_mask,
36389 __builtin_ia32_pmovdb512mem_mask.
36390 (bdesc_args): Add __builtin_ia32_expanddf512,
36391 __builtin_ia32_expandsf512.
36392 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
36393 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
36394 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
36395 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
36396 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
36397 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
36398 (avx512f_<code>v8div16qi2_mask_store): This.
36399 (avx512f_expand<mode>): New.
36401 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
36403 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
36405 (_mm512_mask_prefetch_i64gather_pd): Ditto.
36406 (_mm512_prefetch_i32scatter_pd): Ditto.
36407 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
36408 (_mm512_prefetch_i64scatter_pd): Ditto.
36409 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
36410 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
36411 (_mm512_mask_prefetch_i64gather_ps): Ditto.
36412 (_mm512_prefetch_i32scatter_ps): Ditto.
36413 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
36414 (_mm512_prefetch_i64scatter_ps): Ditto.
36415 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
36416 * config/i386/i386-builtin-types.def: Define
36417 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
36418 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
36419 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
36420 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
36421 IX86_BUILTIN_SCATTERPFQPD.
36422 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
36423 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
36424 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
36425 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
36426 __builtin_ia32_scatterpfqps.
36427 (ix86_expand_builtin): Expand new built-ins.
36428 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
36429 fix memory access data type.
36430 (*avx512pf_gatherpf<mode>_mask): Ditto.
36431 (*avx512pf_gatherpf<mode>): Ditto.
36432 (avx512pf_scatterpf<mode>): Ditto.
36433 (*avx512pf_scatterpf<mode>_mask): Ditto.
36434 (*avx512pf_scatterpf<mode>): Ditto.
36435 (GATHER_SCATTER_SF_MEM_MODE): New.
36436 (avx512pf_gatherpf<mode>df): Ditto.
36437 (*avx512pf_gatherpf<mode>df_mask): Ditto.
36438 (*avx512pf_scatterpf<mode>df): Ditto.
36440 2014-01-27 Jakub Jelinek <jakub@redhat.com>
36443 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
36444 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
36447 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
36449 * common/config/arm/arm-common.c
36450 (arm_rewrite_mcpu): Handle multiple names.
36452 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
36454 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
36456 * gimple-builder.h (create_gimple_tmp): Delete.
36458 2014-01-27 Christian Bruel <christian.bruel@st.com>
36460 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
36463 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
36465 * config/pa/pa.md (call): Generate indirect long calls to non-local
36466 functions when outputing 32-bit code.
36467 (call_value): Likewise except for special call to buggy powf function.
36469 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
36470 portable runtime and PIC indirect calls.
36471 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
36472 and PIC call sequences. Use ldo instead of blr to set return register
36473 in PIC call sequence.
36475 2014-01-25 Walter Lee <walt@tilera.com>
36477 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
36478 avoid clobbering a live register.
36480 2014-01-25 Walter Lee <walt@tilera.com>
36482 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
36483 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
36484 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
36485 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
36487 2014-01-25 Walter Lee <walt@tilera.com>
36489 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
36490 arguments on even registers.
36491 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
36493 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
36494 (BIGGEST_ALIGNMENT): Ditto.
36495 (BIGGEST_FIELD_ALIGNMENT): Ditto.
36497 2014-01-25 Walter Lee <walt@tilera.com>
36499 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
36500 insns before bundling.
36501 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
36503 2014-01-25 Walter Lee <walt@tilera.com>
36505 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
36506 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
36507 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
36509 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
36511 * config/mips/constraints.md (kl): Delete.
36512 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
36513 define expands, using...
36514 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
36515 instructions for MIPS16.
36516 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
36517 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
36519 2014-01-25 Walter Lee <walt@tilera.com>
36521 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
36525 2014-01-25 Walter Lee <walt@tilera.com>
36527 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
36528 (TARGET_EXPAND_TO_RTL_HOOK): Define.
36530 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
36532 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
36535 2014-01-25 Jakub Jelinek <jakub@redhat.com>
36537 * print-rtl.c (in_call_function_usage): New var.
36538 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
36539 EXPR_LIST mode as mode and not as reg note name.
36541 PR middle-end/59561
36542 * cfgloopmanip.c (copy_loop_info): If
36543 loop->warned_aggressive_loop_optimizations, make sure
36544 the flag is set in target loop too.
36546 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
36548 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
36550 * builtins.def: Likewise.
36551 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
36552 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
36553 * ira.c (ira_setup_eliminable_regset): Likewise.
36554 * omp-low.c (gate_expand_omp): Likewise.
36555 (execute_lower_omp): Likewise.
36556 (diagnose_sb_0): Likewise.
36557 (gate_diagnose_omp_blocks): Likewise.
36558 (simd_clone_clauses_extract): Likewise.
36561 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36563 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
36564 correction for little endian...
36565 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
36568 2014-01-24 Jeff Law <law@redhat.com>
36570 PR tree-optimization/59919
36571 * tree-vrp.c (find_assert_locations_1): Do not register asserts
36572 for non-returning calls.
36574 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
36576 * common/config/aarch64/aarch64-common.c
36577 (aarch64_rewrite_mcpu): Handle multiple names.
36578 * config/aarch64/aarch64.h
36579 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
36581 2014-01-24 Dodji Seketeli <dodji@redhat.com>
36583 * input.c (add_file_to_cache_tab): Handle the case where fopen
36586 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
36589 * config/i386/i386.md (pushsf splitter): Get stack adjustment
36590 from push operand if code of push isn't PRE_DEC.
36592 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
36595 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
36596 -mquad-memory-atomic. Update -mquad-memory documentation to say
36597 it is only used for non-atomic loads/stores.
36599 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
36600 -mquad-memory or -mquad-memory-atomic switches.
36602 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
36603 -mquad-memory-atomic to ISA 2.07 support.
36605 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
36606 to separate support of normal quad word memory operations (ldq, stq)
36607 from the atomic quad word memory operations.
36609 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
36610 support to separate non-atomic quad word operations from atomic
36611 quad word operations. Disable non-atomic quad word operations in
36612 little endian mode so that we don't have to swap words after the
36613 load and before the store.
36614 (quad_load_store_p): Add comment about atomic quad word support.
36615 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
36616 options printed with -mdebug=reg.
36618 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
36619 -mquad-memory-atomic as the test for whether we have quad word
36620 atomic instructions.
36621 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
36622 or -mp8-vector are used, allow byte/half-word atomic operations.
36624 * config/rs6000/sync.md (load_lockedti): Insure that the address
36625 is a proper indexed or indirect address for the lqarx instruction.
36626 On little endian systems, swap the hi/lo registers after the lqarx
36628 (load_lockedpti): Use indexed_or_indirect_operand predicate to
36629 insure the address is valid for the lqarx instruction.
36630 (store_conditionalti): Insure that the address is a proper indexed
36631 or indirect address for the stqcrx. instruction. On little endian
36632 systems, swap the hi/lo registers before doing the stqcrx.
36634 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
36635 insure the address is valid for the stqcrx. instruction.
36637 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
36638 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
36639 type of quad memory support is available.
36641 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
36643 PR regression/59915
36644 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
36645 there is a danger of looping.
36647 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
36649 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
36650 force flag_ira_loop_pressure if set via command line.
36652 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
36654 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
36655 (ashr_simd): New builtin handling DI mode.
36656 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
36657 (aarch64_sshr_simddi): New match pattern.
36658 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
36659 (vshrd_n_s64): Likewise.
36660 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
36662 2014-01-23 Nick Clifton <nickc@redhat.com>
36664 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
36665 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
36666 favour of mcu specific scripts.
36667 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
36670 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
36671 Alex Velenko <Alex.Velenko@arm.com>
36673 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
36674 (vaddv_s16): Likewise.
36675 (vaddv_s32): Likewise.
36676 (vaddv_u8): Likewise.
36677 (vaddv_u16): Likewise.
36678 (vaddv_u32): Likewise.
36679 (vaddvq_s8): Likewise.
36680 (vaddvq_s16): Likewise.
36681 (vaddvq_s32): Likewise.
36682 (vaddvq_s64): Likewise.
36683 (vaddvq_u8): Likewise.
36684 (vaddvq_u16): Likewise.
36685 (vaddvq_u32): Likewise.
36686 (vaddvq_u64): Likewise.
36687 (vaddv_f32): Likewise.
36688 (vaddvq_f32): Likewise.
36689 (vaddvq_f64): Likewise.
36690 (vmaxv_f32): Likewise.
36691 (vmaxv_s8): Likewise.
36692 (vmaxv_s16): Likewise.
36693 (vmaxv_s32): Likewise.
36694 (vmaxv_u8): Likewise.
36695 (vmaxv_u16): Likewise.
36696 (vmaxv_u32): Likewise.
36697 (vmaxvq_f32): Likewise.
36698 (vmaxvq_f64): Likewise.
36699 (vmaxvq_s8): Likewise.
36700 (vmaxvq_s16): Likewise.
36701 (vmaxvq_s32): Likewise.
36702 (vmaxvq_u8): Likewise.
36703 (vmaxvq_u16): Likewise.
36704 (vmaxvq_u32): Likewise.
36705 (vmaxnmv_f32): Likewise.
36706 (vmaxnmvq_f32): Likewise.
36707 (vmaxnmvq_f64): Likewise.
36708 (vminv_f32): Likewise.
36709 (vminv_s8): Likewise.
36710 (vminv_s16): Likewise.
36711 (vminv_s32): Likewise.
36712 (vminv_u8): Likewise.
36713 (vminv_u16): Likewise.
36714 (vminv_u32): Likewise.
36715 (vminvq_f32): Likewise.
36716 (vminvq_f64): Likewise.
36717 (vminvq_s8): Likewise.
36718 (vminvq_s16): Likewise.
36719 (vminvq_s32): Likewise.
36720 (vminvq_u8): Likewise.
36721 (vminvq_u16): Likewise.
36722 (vminvq_u32): Likewise.
36723 (vminnmv_f32): Likewise.
36724 (vminnmvq_f32): Likewise.
36725 (vminnmvq_f64): Likewise.
36727 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
36729 * config/aarch64/aarch64-simd.md
36730 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
36731 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
36732 (*aarch64_mul3_elt<mode>): Likewise.
36733 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
36734 (*aarch64_mul3_elt_to_64v2df): Likewise.
36735 (*aarch64_mla_elt<mode>): Likewise.
36736 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
36737 (*aarch64_mls_elt<mode>): Likewise.
36738 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
36739 (*aarch64_fma4_elt<mode>): Likewise.
36740 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
36741 (*aarch64_fma4_elt_to_64v2df): Likewise.
36742 (*aarch64_fnma4_elt<mode>): Likewise.
36743 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
36744 (*aarch64_fnma4_elt_to_64v2df): Likewise.
36745 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
36746 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
36747 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
36748 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
36749 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
36750 (aarch64_sqdmull_lane<mode>_internal): Likewise.
36751 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
36753 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
36755 * config/aarch64/aarch64-simd.md
36756 (aarch64_be_checked_get_lane<mode>): New define_expand.
36757 * config/aarch64/aarch64-simd-builtins.def
36758 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
36759 New builtin definition.
36760 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
36761 Use new safe be builtin.
36763 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
36765 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
36767 (aarch64_be_st1<mode>): Likewise.
36768 (aarch_ld1<VALL:mode>): Define_expand modified.
36769 (aarch_st1<VALL:mode>): Likewise.
36770 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
36771 (UNSPEC_ST1): Likewise.
36773 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
36775 * config/microblaze/microblaze.md: Add trap insn and attribute
36777 2014-01-23 Dodji Seketeli <dodji@redhat.com>
36779 PR preprocessor/58580
36780 * input.h (location_get_source_line): Take an additional line_size
36782 (void diagnostics_file_cache_fini): Declare new function.
36783 * input.c (struct fcache): New type.
36784 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
36785 New static constants.
36786 (diagnostic_file_cache_init, total_lines_num)
36787 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
36788 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
36789 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
36790 (get_next_line, read_next_line, goto_next_line, read_line_num):
36791 New static function definitions.
36792 (diagnostic_file_cache_fini): New function.
36793 (location_get_source_line): Take an additional output line_len
36794 parameter. Re-write using lookup_or_add_file_to_cache_tab and
36796 * diagnostic.c (diagnostic_finish): Call
36797 diagnostic_file_cache_fini.
36798 (adjust_line): Take an additional input parameter for the length
36799 of the line, rather than calculating it with strlen.
36800 (diagnostic_show_locus): Adjust the use of
36801 location_get_source_line and adjust_line with respect to their new
36802 signature. While displaying a line now, do not stop at the first
36803 null byte. Rather, display the zero byte as a space and keep
36804 going until we reach the size of the line.
36805 * Makefile.in: Add vec.o to OBJS-libcommon
36807 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
36808 Ilya Tocar <ilya.tocar@intel.com>
36810 * config/i386/avx512fintrin.h (_mm512_kmov): New.
36811 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
36812 (__builtin_ia32_kmov16): Ditto.
36813 * config/i386/i386.md (UNSPEC_KMOV): New.
36816 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
36818 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
36819 (_mm512_storeu_si512): Ditto.
36821 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
36824 * rtl.h (get_referenced_operands): Declare.
36825 * recog.c (get_referenced_operands): New function.
36826 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
36827 operands have been referenced when recording LO_SUM references.
36829 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
36831 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
36833 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
36835 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
36836 Enable for generic and recent AMD targets.
36838 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
36840 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
36841 ARG_SIZE note when adjustment was eliminated.
36843 2014-01-22 Jeff Law <law@redhat.com>
36845 PR tree-optimization/59597
36846 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
36847 in file. Accept new argument REGISTERING and use it to modify
36848 dump output appropriately.
36849 (register_jump_thread): Corresponding changes.
36850 (mark_threaded_blocks): Reinstate code to cancel unprofitable
36851 thread paths involving joiner blocks. Add code to dump cancelled
36852 jump threading paths.
36854 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
36856 PR rtl-optimization/59477
36857 * lra-constraints.c (inherit_in_ebb): Process call for living hard
36858 regs. Update reloads_num and potential_reload_hard_regs for all insns.
36860 2014-01-22 Tom Tromey <tromey@redhat.com>
36862 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
36864 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
36866 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
36868 PR rtl-optimization/59896
36869 * lra-constraints.c (process_alt_operands): Check unused note for
36870 matched operands of insn with no output reloads.
36872 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
36874 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
36875 (mips_move_from_gpr_cost): Likewise.
36877 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
36879 PR rtl-optimization/59858
36880 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
36881 ira_class_hard_regs_num.
36882 (process_alt_operands): Increase reject for dying matched operand.
36884 2014-01-21 Jakub Jelinek <jakub@redhat.com>
36887 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
36888 smaller than size, perform several stores or loads and stores
36889 at dst + count - size to store or copy all of size bytes, rather
36890 than just last modesize bytes.
36892 2014-01-20 DJ Delorie <dj@redhat.com>
36894 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
36895 that CLOBBERs are REGs before propogating their values.
36897 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
36899 PR middle-end/59789
36900 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
36901 (cgraph_inline_failed_type): New function.
36902 * cgraph.h (DEFCIFCODE): Add type.
36903 (cgraph_inline_failed_type_t): New enum.
36904 (cgraph_inline_failed_type): New prototype.
36905 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
36906 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
36907 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
36908 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
36909 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
36910 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
36911 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
36912 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
36913 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
36914 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
36915 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
36916 OPTIMIZATION_MISMATCH.
36917 * tree-inline.c (expand_call_inline): Emit errors during
36918 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
36920 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
36923 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
36924 mode attribute in insn output.
36926 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
36928 * output.h (output_constant): Delete.
36929 * varasm.c (output_constant): Make private.
36931 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
36933 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
36935 2014-01-20 Jakub Jelinek <jakub@redhat.com>
36937 PR middle-end/59860
36938 * tree.h (fold_builtin_strcat): New prototype.
36939 * builtins.c (fold_builtin_strcat): No longer static. Add len
36940 argument, if non-NULL, don't call c_strlen. Optimize
36941 directly into __builtin_memcpy instead of __builtin_strcpy.
36942 (fold_builtin_2): Adjust fold_builtin_strcat caller.
36943 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
36945 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
36947 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
36948 for SImode_address_operand operands, having only a REG argument.
36950 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
36952 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
36953 loader name using mbig-endian.
36954 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
36956 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
36958 * doc/invoke.texi (-march): Clarify documentation for AArch64.
36959 (-mtune): Likewise.
36962 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
36964 * config/aarch64/aarch64-protos.h
36965 (aarch64_cannot_change_mode_class_ptr): Declare.
36966 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
36967 aarch64_cannot_change_mode_class_ptr): New.
36968 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
36969 backend hook aarch64_cannot_change_mode_class.
36971 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
36973 * common/config/aarch64/aarch64-common.c
36974 (aarch64_handle_option): Don't handle any option order logic here.
36975 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
36976 selected_cpu, warn on architecture version mismatch.
36977 (aarch64_override_options): Fix parsing order for option strings.
36979 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
36980 Iain Sandoe <iain@codesourcery.com>
36983 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
36984 warning. Amend comment to reflect current functionality.
36986 2014-01-20 Richard Biener <rguenther@suse.de>
36988 PR middle-end/59860
36989 * builtins.c (fold_builtin_strcat): Remove case better handled
36990 by tree-ssa-strlen.c.
36992 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
36994 * config/aarch64/aarch64.opt
36995 (mcpu, march, mtune): Make case-insensitive.
36997 2014-01-20 Jakub Jelinek <jakub@redhat.com>
37000 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
37001 if operands[1] is a REG or ZERO_EXTEND of a REG.
37003 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
37005 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
37007 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
37009 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
37010 long non-pic millicode calls.
37012 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
37014 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
37016 2014-01-19 Kito Cheng <kito@0xlab.org>
37018 * builtins.c (expand_movstr): Check movstr expand done or fail.
37020 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
37021 H.J. Lu <hongjiu.lu@intel.com>
37024 * config/i386/i386.md (*lea<mode>): Zero-extend return register
37025 to DImode for zero-extended addresses.
37027 2014-01-19 Jakub Jelinek <jakub@redhat.com>
37029 PR rtl-optimization/57763
37030 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
37031 on the new indirect jump_insn and increment LABEL_NUSES (label).
37033 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
37037 * config.gcc (x86_archs): New variable.
37038 (x86_64_archs): Likewise.
37039 (x86_cpus): Likewise.
37040 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
37041 --with-arch/--with-cpu= options.
37042 Support --with-arch=/--with-cpu={nehalem,westmere,
37043 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
37045 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
37047 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
37048 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
37050 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
37052 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
37054 2014-01-18 Jakub Jelinek <jakub@redhat.com>
37057 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
37058 clear cpp_get_options (parse_in)->warn_unused_macros for
37059 ix86_target_macros_internal with cpp_define.
37061 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
37063 * jump.c (delete_related_insns): Keep (use (insn))s.
37064 * reorg.c (redundant_insn): Check for barriers too.
37066 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
37068 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
37070 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
37072 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
37073 call to $$dyncall when TARGET_LONG_CALLS is true.
37075 2014-01-17 Jeff Law <law@redhat.com>
37077 * ree.c (combine_set_extension): Temporarily disable test for
37078 changing number of hard registers.
37080 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
37082 PR middle-end/58125
37083 * ipa-inline-analysis.c (inline_free_summary):
37084 Do not free summary of aliases.
37086 2014-01-17 Jakub Jelinek <jakub@redhat.com>
37088 PR middle-end/59706
37089 * gimplify.c (gimplify_expr): Use create_tmp_var
37090 instead of create_tmp_var_raw. If cond doesn't have
37091 integral type, don't add the IFN_ANNOTATE builtin at all.
37093 2014-01-17 Martin Jambor <mjambor@suse.cz>
37096 * ipa-cp.c (prev_edge_clone): New variable.
37097 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
37098 Also resize prev_edge_clone vector.
37099 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
37100 (ipcp_edge_removal_hook): New function.
37101 (ipcp_driver): Register ipcp_edge_removal_hook.
37103 2014-01-17 Andrew Pinski <apinski@cavium.com>
37104 Steve Ellcey <sellcey@mips.com>
37107 * config/mips/mips.c (mips_print_operand): Check operand mode instead
37110 2014-01-17 Jeff Law <law@redhat.com>
37112 PR middle-end/57904
37113 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
37114 so that pass_ccp runs first.
37116 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
37118 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
37119 (ix86_adjust_cost): Use !TARGET_XXX.
37120 (do_reorder_for_imul): Likewise.
37121 (swap_top_of_ready_list): Likewise.
37122 (ix86_sched_reorder): Likewise.
37124 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
37126 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37127 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
37128 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
37129 (intel_memset): New. Duplicate slm_memset.
37130 (intel_cost): New. Duplicate slm_cost.
37131 (m_INTEL): New macro.
37132 (processor_target_table): Add "intel".
37133 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
37134 with PROCESSOR_INTEL for "intel".
37135 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
37136 PROCESSOR_SILVERMONT.
37137 (ix86_issue_rate): Likewise.
37138 (ix86_adjust_cost): Likewise.
37139 (ia32_multipass_dfa_lookahead): Likewise.
37140 (swap_top_of_ready_list): Likewise.
37141 (ix86_sched_reorder): Likewise.
37142 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
37143 instead of TARGET_OPT_AGU.
37144 * config/i386/i386.h (TARGET_INTEL): New.
37145 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
37146 (processor_type): Add PROCESSOR_INTEL.
37147 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
37148 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
37150 2014-01-17 Marek Polacek <polacek@redhat.com>
37153 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
37156 2014-01-17 Richard Biener <rguenther@suse.de>
37158 PR tree-optimization/46590
37159 * opts.c (default_options_table): Add entries for
37160 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
37161 all enabled at -O1 but not for -Og.
37162 * common.opt (fbranch-count-reg): Remove Init(1).
37163 (fmove-loop-invariants): Likewise.
37164 (ftree-pta): Likewise.
37166 2014-01-17 Jakub Jelinek <jakub@redhat.com>
37168 * config/i386/i386.c (ix86_data_alignment): For compatibility with
37169 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
37170 decls to at least the GCC 4.8 used alignments.
37173 * tree-nested.c (convert_nonlocal_reference_stmt,
37174 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
37175 of GIMPLE_BIND stmts, adjust associated decls.
37177 2014-01-17 Richard Biener <rguenther@suse.de>
37179 PR tree-optimization/46590
37180 * vec.h (vec<>::bseach): New member function implementing
37181 binary search according to C89 bsearch.
37182 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
37183 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
37184 bitmap pointer again. Make accesses_in_loop a flat array.
37185 (mem_ref_obstack): New global.
37186 (outermost_indep_loop): Adjust for mem_ref->stored changes.
37187 (mark_ref_stored): Likewise.
37188 (ref_indep_loop_p_2): Likewise.
37189 (set_ref_stored_in_loop): New helper function.
37190 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
37191 (memref_free): Adjust.
37192 (record_mem_ref_loc): Simplify.
37193 (gather_mem_refs_stmt): Adjust.
37194 (sort_locs_in_loop_postorder_cmp): New function.
37195 (analyze_memory_references): Sort accesses_in_loop after
37196 loop postorder number.
37197 (find_ref_loc_in_loop_cmp): New function.
37198 (for_all_locs_in_loop): Find relevant cluster of locs in
37199 accesses_in_loop and iterate without recursion.
37200 (execute_sm): Avoid uninit warning.
37201 (struct ref_always_accessed): Simplify.
37202 (ref_always_accessed::operator ()): Likewise.
37203 (ref_always_accessed_p): Likewise.
37204 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
37205 loop postorder numbers here.
37206 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
37209 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
37212 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
37213 on decls for which assemble_alias has been called.
37215 2014-01-17 Nick Clifton <nickc@redhat.com>
37217 * config/msp430/msp430.opt: (mcpu): New option.
37218 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
37219 (msp430_option_override): Parse target_cpu. If the MCU name
37220 matches a generic string, clear target_mcu.
37221 (msp430_attr): Allow numeric interrupt values up to 63.
37222 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
37223 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
37225 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
37227 * config/msp430/msp430.md (popm): Use %J rather than %I.
37228 (addsi3): Use msp430_nonimmediate_operand for operand 2.
37229 (addhi_cy_i): Use immediate_operand for operand 2.
37230 * doc/invoke.texi: Document -mcpu option.
37232 2014-01-17 Richard Biener <rguenther@suse.de>
37234 PR rtl-optimization/38518
37235 * df.h (df_analyze_loop): Declare.
37236 * df-core.c: Include cfgloop.h.
37237 (df_analyze_1): Split out main part of df_analyze.
37238 (df_analyze): Adjust.
37239 (loop_inverted_post_order_compute): New function.
37240 (loop_post_order_compute): Likewise.
37241 (df_analyze_loop): New function avoiding whole-function
37242 postorder computes.
37243 * loop-invariant.c (find_defs): Use df_analyze_loop.
37244 (find_invariants): Adjust.
37245 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
37247 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
37249 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
37250 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
37252 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
37254 * ipa-ref.c (ipa_remove_stmt_references): Fix references
37255 traversal when removing references.
37257 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
37260 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
37262 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
37264 PR middle-end/56791
37265 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
37266 pushing a reload for an autoinc when we had previously reloaded an
37267 inner part of the address.
37269 2014-01-16 Jakub Jelinek <jakub@redhat.com>
37271 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
37273 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
37274 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
37275 when not giving up or versioning for alias only because of
37277 (vect_analyze_data_ref_dependences): Set to true.
37278 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
37280 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
37281 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
37284 PR middle-end/58344
37285 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
37288 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
37289 operand 0 predicate for gathers, use a new pseudo as subtarget.
37291 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
37293 PR middle-end/59609
37294 * lra-constraints.c (process_alt_operands): Add printing debug info.
37295 Check absence of input/output reloads for matched operands too.
37297 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
37299 PR rtl-optimization/59835
37300 * ira.c (ira_init_register_move_cost): Increase cost for
37303 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
37305 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
37307 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
37310 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
37311 non-register objects. Use gen_(high/low)part more consistently.
37314 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
37317 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
37318 endian support, remove tests for WORDS_BIG_ENDIAN.
37319 (p8_mfvsrd_3_<mode>): Likewise.
37320 (reload_gpr_from_vsx<mode>): Likewise.
37321 (reload_gpr_from_vsxsf): Likewise.
37322 (p8_mfvsrd_4_disf): Likewise.
37324 2014-01-16 Richard Biener <rguenther@suse.de>
37326 PR rtl-optimization/46590
37327 * lcm.c (compute_antinout_edge): Use postorder iteration.
37328 (compute_laterin): Use inverted postorder iteration.
37330 2014-01-16 Nick Clifton <nickc@redhat.com>
37332 PR middle-end/28865
37333 * varasm.c (output_constant): Return the number of bytes actually
37335 (output_constructor_array_range): Update the field size with the
37336 number of bytes emitted by output_constant.
37337 (output_constructor_regular_field): Likewise. Also do not
37338 complain if the total number of bytes emitted is now greater
37339 than the expected fieldpos.
37340 * output.h (output_constant): Update prototype and descriptive comment.
37342 2014-01-16 Marek Polacek <polacek@redhat.com>
37344 PR middle-end/59827
37345 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
37346 it is error_mark_node.
37348 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
37350 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
37351 VALID_AVX256_REG_OR_OI_MODE.
37353 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
37355 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
37356 current procedure should be profiled.
37358 2014-01-15 Andrew Pinski <apinski@cavium.com>
37360 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
37361 of moving from/to the STACK_REG register class.
37363 2014-01-15 Richard Henderson <rth@redhat.com>
37366 * reginfo.c (global_regs_decl): Globalize.
37367 * rtl.h (global_regs_decl): Declare.
37368 * ira.c (do_reload): Diagnose frame_pointer_needed and it
37369 reserved via global_regs.
37371 2014-01-15 Teresa Johnson <tejohnson@google.com>
37373 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
37375 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
37377 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
37378 and vmulosh rather than call gen_vec_widen_smult_*.
37379 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
37380 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
37381 (vec_widen_smult_even_v16qi): Likewise.
37382 (vec_widen_umult_even_v8hi): Likewise.
37383 (vec_widen_smult_even_v8hi): Likewise.
37384 (vec_widen_umult_odd_v16qi): Likewise.
37385 (vec_widen_smult_odd_v16qi): Likewise.
37386 (vec_widen_umult_odd_v8hi): Likewise.
37387 (vec_widen_smult_odd_v8hi): Likewise.
37388 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
37389 vmuloub rather than call gen_vec_widen_umult_*.
37390 (vec_widen_umult_lo_v16qi): Likewise.
37391 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
37392 vmulosb rather than call gen_vec_widen_smult_*.
37393 (vec_widen_smult_lo_v16qi): Likewise.
37394 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
37395 rather than call gen_vec_widen_umult_*.
37396 (vec_widen_umult_lo_v8hi): Likewise.
37397 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
37398 rather than call gen_vec_widen_smult_*.
37399 (vec_widen_smult_lo_v8hi): Likewise.
37401 2014-01-15 Jeff Law <law@redhat.com>
37403 PR tree-optimization/59747
37404 * ree.c (find_and_remove_re): Properly handle case where a second
37405 eliminated extension requires widening a copy created for elimination
37406 of a prior extension.
37407 (combine_set_extension): Ensure that the number of hard regs needed
37408 for a destination register does not change when we widen it.
37410 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
37412 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
37413 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
37414 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
37415 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
37416 (avr-*-rtems*): Likewise.
37417 (bfin*-rtems*): Likewise.
37418 (moxie-*-rtems*): Likewise.
37419 (h8300-*-rtems*): Likewise.
37420 (i[34567]86-*-rtems*): Likewise.
37421 (lm32-*-rtems*): Likewise.
37422 (m32r-*-rtems*): Likewise.
37423 (m68k-*-rtems*): Likewise.
37424 (microblaze*-*-rtems*): Likewise.
37425 (mips*-*-rtems*): Likewise.
37426 (powerpc-*-rtems*): Likewise.
37427 (sh-*-rtems*): Likewise.
37428 (sparc-*-rtems*): Likewise.
37429 (sparc64-*-rtems*): Likewise.
37430 (v850-*-rtems*): Likewise.
37431 (m32c-*-rtems*): Likewise.
37433 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
37435 PR rtl-optimization/59511
37436 * ira.c (ira_init_register_move_cost): Use memory costs for some
37437 cases of register move cost calculations.
37438 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
37439 instead of BB frequency.
37440 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
37441 * lra-assigns.c (find_hard_regno_for): Ditto.
37443 2014-01-15 Richard Biener <rguenther@suse.de>
37445 PR tree-optimization/59822
37446 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
37447 (vectorizable_load): Use it to hoist defs of uses of invariant
37448 loads out of the loop.
37450 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
37451 Kugan Vivekanandarajah <kuganv@linaro.org>
37454 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
37457 2014-01-15 Richard Biener <rguenther@suse.de>
37459 PR rtl-optimization/59802
37460 * lcm.c (compute_available): Use inverted postorder to seed
37461 the initial worklist.
37463 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37466 * config/s390/s390.c (s390_preferred_reload_class): Don't return
37467 ADDR_REGS for invalid symrefs in non-PIC code.
37469 2014-01-15 Jakub Jelinek <jakub@redhat.com>
37472 * builtins.c (determine_block_size): Initialize *probable_max_size
37473 even if len_rtx is CONST_INT.
37475 2014-01-14 Andrew Pinski <apinski@cavium.com>
37477 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
37478 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
37479 (cortexa53_tunings): Likewise.
37480 (aarch64_sched_issue_rate): New function.
37481 (TARGET_SCHED_ISSUE_RATE): Define.
37483 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
37485 * ira-costs.c (find_costs_and_classes): Add missed
37486 ira_init_register_move_cost_if_necessary.
37488 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
37491 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
37493 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
37496 * config/i386/i386.c (type_natural_mode): Add a bool parameter
37497 to indicate if type is used for function return value. Warn ABI
37498 change if the vector mode isn't available for function return value.
37499 (ix86_function_arg_advance): Pass false to type_natural_mode.
37500 (ix86_function_arg): Likewise.
37501 (ix86_gimplify_va_arg): Likewise.
37502 (function_arg_32): Don't warn ABI change.
37503 (ix86_function_value): Pass true to type_natural_mode.
37504 (ix86_return_in_memory): Likewise.
37505 (ix86_struct_value_rtx): Removed.
37506 (TARGET_STRUCT_VALUE_RTX): Likewise.
37508 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
37510 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
37511 converting a conditional jump into a conditional return.
37513 2014-01-14 Richard Biener <rguenther@suse.de>
37515 PR tree-optimization/58921
37516 PR tree-optimization/59006
37517 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
37518 hoisting invariant stmts.
37519 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
37520 invariant loads on the preheader edge if possible.
37522 2014-01-14 Joey Ye <joey.ye@arm.com>
37524 * doc/plugin.texi (Building GCC plugins): Update to C++.
37526 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
37528 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
37529 (_mm_rcp28_round_ss): Ditto.
37530 (_mm_rsqrt28_round_sd): Ditto.
37531 (_mm_rsqrt28_round_ss): Ditto.
37532 (_mm_rcp28_sd): Ditto.
37533 (_mm_rcp28_ss): Ditto.
37534 (_mm_rsqrt28_sd): Ditto.
37535 (_mm_rsqrt28_ss): Ditto.
37536 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
37537 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
37538 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
37539 (IX86_BUILTIN_RCP28SD): Ditto.
37540 (IX86_BUILTIN_RCP28SS): Ditto.
37541 (IX86_BUILTIN_RSQRT28SD): Ditto.
37542 (IX86_BUILTIN_RSQRT28SS): Ditto.
37543 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
37544 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
37545 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
37546 (ix86_expand_special_args_builtin): Expand new FTYPE.
37547 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
37548 (srcp14<mode>): Make insn unary.
37549 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
37550 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
37551 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
37552 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
37553 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
37554 Fix rounding: make it SAE only.
37555 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
37557 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
37559 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
37560 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
37561 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
37562 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
37563 (round_saeonly_mask_scalar_operand4): Ditto.
37564 (round_saeonly_mask_scalar_op3): Ditto.
37565 (round_saeonly_mask_scalar_op4): Ditto.
37567 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37569 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
37570 Implement -maltivec=be for vec_insert and vec_extract.
37572 2014-01-10 DJ Delorie <dj@redhat.com>
37574 * config/msp430/msp430.md (call_internal): Don't allow memory
37575 references with SP as the base register.
37576 (call_value_internal): Likewise.
37577 * config/msp430/constraints.md (Yc): New. For memory references
37578 that don't use SP as a base register.
37580 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
37581 "an integer without a # prefix"
37582 * config/msp430/msp430.md (epilogue_helper): Use it.
37584 2014-01-13 Jakub Jelinek <jakub@redhat.com>
37587 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
37588 AVX512F gather builtins.
37589 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
37590 on gather decls with INTEGER_TYPE masktype.
37591 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
37592 directly into the builtin rather than hoisting it before loop.
37594 PR tree-optimization/59387
37595 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
37596 (scev_const_prop): If folded_casts and type has undefined overflow,
37597 use force_gimple_operand instead of force_gimple_operand_gsi and
37598 for each added stmt if it is assign with
37599 arith_code_with_undefined_signed_overflow, call
37600 rewrite_to_defined_overflow.
37601 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
37602 gimple-fold.h instead.
37603 (arith_code_with_undefined_signed_overflow,
37604 rewrite_to_defined_overflow): Moved to ...
37605 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
37606 rewrite_to_defined_overflow): ... here. No longer static.
37607 Include gimplify-me.h.
37608 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
37609 rewrite_to_defined_overflow): New prototypes.
37611 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37613 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
37615 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
37617 * builtins.c (get_object_alignment_2): Minor tweak.
37618 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
37620 2014-01-13 Christian Bruel <christian.bruel@st.com>
37622 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
37623 optimized non constant lengths.
37625 2014-01-13 Jakub Jelinek <jakub@redhat.com>
37628 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
37629 load as __atomic_load_N if possible.
37631 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
37633 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
37635 (rs6000_expand_builtin): Adjust call.
37637 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
37640 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
37641 * config/rs6000/rs6000.c: Include target-globals.h.
37642 (rs6000_set_current_function): Instead of doing target_reinit
37643 unconditionally, use save_target_globals_default_opts and
37644 restore_target_globals.
37646 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
37648 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
37649 (rs6000_expand_builtin): Handle mffs and mtfsf.
37650 (rs6000_init_builtins): Define mffs and mtfsf.
37651 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
37652 (rs6000_mffs): New pattern.
37653 (rs6000_mtfsf): New pattern.
37655 2014-01-11 Bin Cheng <bin.cheng@arm.com>
37657 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
37658 Start narrowing with START. Apply candidate-use pair
37659 and check overall cost in narrowing.
37660 (iv_ca_prune): Pass new argument.
37662 2014-01-10 Jeff Law <law@redhat.com>
37664 PR middle-end/59743
37665 * ree.c (combine_reaching_defs): Ensure the defining statement
37666 occurs before the extension when optimizing extensions with
37667 different source and destination hard registers.
37669 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
37672 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
37673 vtables into the type inheritance graph.
37675 2014-01-10 Jakub Jelinek <jakub@redhat.com>
37677 PR rtl-optimization/59754
37678 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
37679 modes in the REGNO != REGNO case.
37681 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37683 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
37685 2014-01-10 Jakub Jelinek <jakub@redhat.com>
37687 PR tree-optimization/59745
37688 * tree-predcom.c (tree_predictive_commoning_loop): Call
37689 free_affine_expand_cache if giving up because components is NULL.
37691 * target-globals.c (save_target_globals): Allocate < 4KB structs using
37692 GC in payload of target_globals struct instead of allocating them on
37693 the heap and the larger structs separately using GC.
37694 * target-globals.h (struct target_globals): Make regs, hard_regs,
37695 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
37696 of GTY((skip)) and change type to void *.
37697 (reset_target_globals): Cast loads from those fields to corresponding
37700 2014-01-10 Steve Ellcey <sellcey@mips.com>
37703 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
37704 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
37705 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
37707 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
37710 * aarch64-modes.def (CC_Zmode): New flags mode.
37711 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
37712 represents an equality.
37713 (aarch64_get_condition_code): Handle CC_Zmode.
37714 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
37716 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37718 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
37719 extraction in good case.
37721 2014-01-10 Richard Biener <rguenther@suse.de>
37723 PR tree-optimization/59374
37724 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
37725 checking after SLP discovery. Mark stmts not participating
37726 in any SLP instance properly.
37728 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37730 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
37731 when handling a SET rtx.
37733 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37735 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
37736 (cortex-a57): Likewise.
37737 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
37739 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37741 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
37742 non-iwmmxt builtins.
37744 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
37748 * ipa-devirt.c record_target_from_binfo): Take as argument
37749 stack of binfos and lookup matching one for virtual inheritance.
37750 (possible_polymorphic_call_targets_1): Update.
37752 2014-01-10 Huacai Chen <chenhc@lemote.com>
37754 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
37755 kernel strings for Loongson-2E/2F/3A.
37757 2014-01-10 Jakub Jelinek <jakub@redhat.com>
37759 PR middle-end/59670
37760 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
37761 is_gimple_call before calling gimple_call_internal_p.
37763 2014-01-09 Steve Ellcey <sellcey@mips.com>
37765 * Makefile.in (TREE_FLOW_H): Remove.
37766 (TREE_SSA_H): Add file names from tree-flow.h.
37767 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
37768 * tree.h: Remove tree-flow.h reference.
37769 * hash-table.h: Remove tree-flow.h reference.
37770 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
37771 reference with tree-ssa-loop.h.
37773 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37775 * doc/invoke.texi: Add -maltivec={be,le} options, and document
37776 default element-order behavior for -maltivec.
37777 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
37778 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
37779 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
37780 when targeting big endian, at least for now.
37781 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
37783 2014-01-09 Jakub Jelinek <jakub@redhat.com>
37785 PR middle-end/47735
37786 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
37787 var satisfies use_register_for_decl, just take into account type
37788 alignment, rather than decl alignment.
37790 PR tree-optimization/59622
37791 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
37792 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
37793 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
37794 Don't devirtualize for inplace at all. For targets.length () == 1,
37795 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
37797 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
37799 * config/i386/i386.md (cpu): Remove the unused btver1.
37801 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
37803 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
37805 2014-01-09 Jakub Jelinek <jakub@redhat.com>
37808 * tree-core.h (struct target_globals): New forward declaration.
37809 (struct tree_target_option): Add globals field.
37810 * tree.h (TREE_TARGET_GLOBALS): Define.
37811 (prepare_target_option_nodes_for_pch): New prototype.
37812 * target-globals.h (struct target_globals): Define even if
37813 !SWITCHABLE_TARGET.
37814 * tree.c (prepare_target_option_node_for_pch,
37815 prepare_target_option_nodes_for_pch): New functions.
37816 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
37817 * config/i386/i386.c: Include target-globals.h.
37818 (ix86_set_current_function): Instead of doing target_reinit
37819 unconditionally, use save_target_globals_default_opts and
37820 restore_target_globals.
37822 2014-01-09 Richard Biener <rguenther@suse.de>
37824 PR tree-optimization/59715
37825 * tree-cfg.h (split_critical_edges): Declare.
37826 * tree-cfg.c (split_critical_edges): Export.
37827 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
37829 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
37831 * cfgexpand.c (expand_stack_vars): Optionally disable
37832 asan stack protection.
37833 (expand_used_vars): Likewise.
37834 (partition_stack_vars): Likewise.
37835 * asan.c (asan_emit_stack_protection): Optionally disable
37836 after return stack usage.
37837 (instrument_derefs): Optionally disable memory access instrumentation.
37838 (instrument_builtin_call): Likewise.
37839 (instrument_strlen_call): Likewise.
37840 (asan_protect_global): Optionally disable global variables protection.
37841 * doc/invoke.texi: Added doc for new options.
37842 * params.def: Added new options.
37843 * params.h: Likewise.
37845 2014-01-09 Jakub Jelinek <jakub@redhat.com>
37847 PR rtl-optimization/59724
37848 * ifcvt.c (cond_exec_process_if_block): Don't call
37849 flow_find_head_matching_sequence with 0 longest_match.
37850 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
37851 non-active insns if !stop_after.
37852 (try_head_merge_bb): Revert 2014-01-07 changes.
37854 2014-01-08 Jeff Law <law@redhat.com>
37856 * ree.c (get_sub_rtx): New function, extracted from...
37857 (merge_def_and_ext): Here.
37858 (combine_reaching_defs): Use get_sub_rtx.
37860 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
37862 * cgraph.h (varpool_variable_node): Do not choke on null node.
37864 2014-01-08 Catherine Moore <clm@codesourcery.com>
37866 * config/mips/mips.md (simple_return): Attempt to use JRC
37868 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
37870 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
37872 PR rtl-optimization/59137
37873 * reorg.c (steal_delay_list_from_target): Call update_block for
37875 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
37877 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37879 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
37880 two duplicate entries.
37882 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
37885 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
37887 * config/mips/mips.c (mips_truncated_op_cost): New function.
37888 (mips_rtx_costs): Adjust test for BADDU.
37889 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
37891 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
37893 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
37894 (*baddu_si): ...this new pattern.
37896 2014-01-08 Jakub Jelinek <jakub@redhat.com>
37899 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
37901 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
37903 PR middle-end/57748
37904 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
37906 (expand_expr, expand_normal): Adjust.
37907 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
37908 inner_reference_p. Use inner_reference_p to expand inner references.
37909 (store_expr): Adjust.
37910 * cfgexpand.c (expand_call_stmt): Adjust.
37912 2014-01-08 Rong Xu <xur@google.com>
37914 * gcov-io.c (gcov_var): Move from gcov-io.h.
37915 (gcov_position): Ditto.
37916 (gcov_is_error): Ditto.
37917 (gcov_rewrite): Ditto.
37918 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
37919 only part to libgcc/libgcov.h.
37921 2014-01-08 Marek Polacek <polacek@redhat.com>
37923 PR middle-end/59669
37924 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
37926 2014-01-08 Marek Polacek <polacek@redhat.com>
37929 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
37931 2014-01-08 Jakub Jelinek <jakub@redhat.com>
37933 PR rtl-optimization/59649
37934 * stor-layout.c (get_mode_bounds): For BImode return
37935 0 and STORE_FLAG_VALUE.
37937 2014-01-08 Richard Biener <rguenther@suse.de>
37939 PR middle-end/59630
37940 * gimple.h (is_gimple_builtin_call): Remove.
37941 (gimple_builtin_call_types_compatible_p): New.
37942 (gimple_call_builtin_p): New overload.
37943 * gimple.c (is_gimple_builtin_call): Remove.
37944 (validate_call): Rename to ...
37945 (gimple_builtin_call_types_compatible_p): ... this and export. Also
37946 check return types.
37947 (validate_type): New static function.
37948 (gimple_call_builtin_p): New overload and adjust.
37949 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
37950 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
37951 (gimple_fold_stmt_to_constant_1): Likewise.
37952 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
37954 2014-01-08 Richard Biener <rguenther@suse.de>
37956 PR middle-end/59471
37957 * gimplify.c (gimplify_expr): Gimplify register-register type
37958 VIEW_CONVERT_EXPRs to separate stmts.
37960 2014-01-07 Jeff Law <law@redhat.com>
37962 PR middle-end/53623
37963 * ree.c (combine_set_extension): Handle case where source
37964 and destination registers in an extension insn are different.
37965 (combine_reaching_defs): Allow source and destination registers
37966 in extension to be different under limited circumstances.
37967 (add_removable_extension): Remove restriction that the
37968 source and destination registers in the extension are the same.
37969 (find_and_remove_re): Emit a copy from the extension's
37970 destination to its source after the defining insn if
37971 the source and destination registers are different.
37973 PR middle-end/59285
37974 * ifcvt.c (merge_if_block): If we are merging a block with more than
37975 one successor with a block with no successors, remove any BARRIER
37976 after the second block.
37978 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
37980 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
37982 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
37985 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
37986 for 14-bit register offsets when INT14_OK_STRICT is false.
37988 2014-01-07 Roland Stigge <stigge@antcom.de>
37989 Michael Meissner <meissner@linux.vnet.ibm.com>
37992 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
37993 Only check TFmode for SPE constants. Don't check TImode or TDmode.
37995 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
37997 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
38000 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
38002 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
38003 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
38004 rtx is const0_rtx or not.
38006 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
38009 * target-globals.c (save_target_globals): Remove this_fn_optab
38011 * toplev.c: Include optabs.h.
38012 (target_reinit): Temporarily restore the global options if another
38013 set of options are in force.
38015 2014-01-07 Jakub Jelinek <jakub@redhat.com>
38017 PR rtl-optimization/58668
38018 * cfgcleanup.c (flow_find_cross_jump): Don't count
38019 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
38020 to determine what is counted.
38021 (flow_find_head_matching_sequence): Use active_insn_p to determine
38023 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
38025 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
38026 determine what is counted.
38028 PR tree-optimization/59643
38029 * tree-predcom.c (split_data_refs_to_components): If one dr is
38030 read and one write, determine_offset fails and the write isn't
38031 in the bad component, just put the read into the bad component.
38033 2014-01-07 Mike Stump <mikestump@comcast.net>
38034 Jakub Jelinek <jakub@redhat.com>
38037 * tree-core.h (struct tree_optimization_option): Change optabs
38038 type from unsigned char * to void *.
38039 * optabs.c (init_tree_optimization_optabs): Adjust
38040 TREE_OPTIMIZATION_OPTABS initialization.
38042 2014-01-06 Jakub Jelinek <jakub@redhat.com>
38045 * config/i386/i386.h (struct machine_function): Add
38046 no_drap_save_restore field.
38047 * config/i386/i386.c (ix86_save_reg): Use
38048 !cfun->machine->no_drap_save_restore instead of
38049 crtl->stack_realign_needed.
38050 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
38051 this function clears frame_pointer_needed. Set
38052 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
38053 and DRAP reg is needed.
38055 2014-01-06 Marek Polacek <polacek@redhat.com>
38058 * doc/implement-c.texi: Mention that other integer types are
38059 permitted as bit-field types in strictly conforming mode.
38061 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
38063 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
38064 is newly allocated.
38066 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
38068 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
38070 2014-01-06 Martin Jambor <mjambor@suse.cz>
38073 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
38075 * ipa-prop.c (ipa_print_node_params): Fix indentation.
38077 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
38081 * var-tracking.c (add_stores): Preserve the value of the source even if
38082 we don't record the store.
38084 2014-01-06 Terry Guo <terry.guo@arm.com>
38086 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
38088 2014-01-05 Iain Sandoe <iain@codesourcery.com>
38091 * config/darwin.c (darwin_function_section): Adjust return values to
38092 correspond to optimisation changes made in r206070.
38094 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
38096 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
38097 from prefetch_block tune setting.
38098 (nocona_cost): Correct size of prefetch block to 64.
38100 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
38102 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
38103 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
38104 used to save the static chain register in the computation of the offset
38105 from which the FP registers need to be restored.
38107 2014-01-04 Jakub Jelinek <jakub@redhat.com>
38109 PR tree-optimization/59519
38110 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
38111 ICE if get_current_def (current_new_name) is already non-NULL, as long
38112 as it is a phi result of some other phi in *new_exit_bb that has
38115 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
38116 or vmovdqu* for misaligned_operand.
38117 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
38118 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
38119 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
38120 aligned_mem for AVX512F masked aligned load and store builtins and for
38121 non-temporal moves.
38123 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
38125 PR tree-optimization/59651
38126 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
38127 Address range for negative step should be added by TYPE_SIZE_UNIT.
38129 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
38131 * config/m68k/m68k.c (handle_move_double): Handle pushes with
38132 overlapping registers also for registers other than the stack pointer.
38134 2014-01-03 Marek Polacek <polacek@redhat.com>
38137 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
38140 2014-01-03 Jakub Jelinek <jakub@redhat.com>
38143 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
38146 * config/i386/i386.md (MODE_SIZE): New mode attribute.
38147 (push splitter): Use <P:MODE_SIZE> instead of
38148 GET_MODE_SIZE (<P:MODE>mode).
38149 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
38150 (mov -1, reg peephole2): Likewise.
38151 * config/i386/sse.md (*mov<mode>_internal,
38152 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
38153 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
38154 *<code><mode>3, *andnot<mode>3<mask_name>,
38155 <mask_codefor><code><mode>3<mask_name>): Likewise.
38156 * config/i386/subst.md (mask_mode512bit_condition,
38157 sd_mask_mode512bit_condition): Likewise.
38159 2014-01-02 Xinliang David Li <davidxl@google.com>
38161 PR tree-optimization/59303
38162 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
38163 (dump_predicates): Better output format.
38164 (pred_equal_p): New function.
38165 (is_neq_relop_p): Ditto.
38166 (is_neq_zero_form_p): Ditto.
38167 (pred_expr_equal_p): Ditto.
38168 (pred_neg_p): Ditto.
38169 (simplify_pred): Ditto.
38170 (simplify_preds_2): Ditto.
38171 (simplify_preds_3): Ditto.
38172 (simplify_preds_4): Ditto.
38173 (simplify_preds): Ditto.
38174 (push_pred): Ditto.
38175 (push_to_worklist): Ditto.
38176 (get_pred_info_from_cmp): Ditto.
38177 (is_degenerated_phi): Ditto.
38178 (normalize_one_pred_1): Ditto.
38179 (normalize_one_pred): Ditto.
38180 (normalize_one_pred_chain): Ditto.
38181 (normalize_preds): Ditto.
38182 (normalize_cond_1): Remove function.
38183 (normalize_cond): Ditto.
38184 (is_gcond_subset_of): Ditto.
38185 (is_subset_of_any): Ditto.
38186 (is_or_set_subset_of): Ditto.
38187 (is_and_set_subset_of): Ditto.
38188 (is_norm_cond_subset_of): Ditto.
38189 (pred_chain_length_cmp): Ditto.
38190 (convert_control_dep_chain_into_preds): Type change.
38191 (find_predicates): Ditto.
38192 (find_def_preds): Ditto.
38193 (destroy_predicates_vecs): Ditto.
38194 (find_matching_predicates_in_rest_chains): Ditto.
38195 (use_pred_not_overlap_with_undef_path_pred): Ditto.
38196 (is_pred_expr_subset): Ditto.
38197 (is_pred_chain_subset_of): Ditto.
38198 (is_included_in): Ditto.
38199 (is_superset_of): Ditto.
38201 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
38203 Update copyright years.
38205 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
38207 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
38208 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
38209 config/arc/arc.md, config/arc/arc.opt,
38210 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
38211 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
38212 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
38213 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
38214 config/linux-protos.h, config/linux.c, config/winnt-c.c,
38215 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
38216 vtable-verify.c, vtable-verify.h: Use the standard form for the
38219 2014-01-02 Tobias Burnus <burnus@net-b.de>
38221 * gcc.c (process_command): Update copyright notice dates.
38222 * gcov-dump.c: Ditto.
38224 * doc/cpp.texi: Bump @copying's copyright year.
38225 * doc/cppinternals.texi: Ditto.
38226 * doc/gcc.texi: Ditto.
38227 * doc/gccint.texi: Ditto.
38228 * doc/gcov.texi: Ditto.
38229 * doc/install.texi: Ditto.
38230 * doc/invoke.texi: Ditto.
38232 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
38234 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
38236 2014-01-01 Jakub Jelinek <jakub@redhat.com>
38238 * config/i386/sse.md (*mov<mode>_internal): Guard
38239 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
38241 PR rtl-optimization/59647
38242 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
38243 new_rtx into UNSIGNED_FLOAT rtxes.
38245 Copyright (C) 2014 Free Software Foundation, Inc.
38247 Copying and distribution of this file, with or without modification,
38248 are permitted in any medium without royalty provided the copyright
38249 notice and this notice are preserved.